使用  Google AppEngine 建立个人信息中心 weibo.com/sagasw 2011-11
编程对我而言,就是永远玩不腻的玩具 - sagasw
Agenda <ul><li>1 )云计算那些事儿 </li></ul><ul><li>  </li></ul><ul><li>2 ) GoogleAppEngine 简介 </li></ul><ul><li>  </li></ul><ul><...
调查 <ul><li>1 ) Python 语言? </li></ul><ul><li>  </li></ul><ul><li>2 ) Google AppEngine ? </li></ul><ul><li>  </li></ul><ul><...
1 )云计算那些事儿  
<ul><ul><li>IaaS (Infrastructure as a Service)   </li></ul></ul><ul><ul><ul><ul><li>  Amazon EC2 , Microsoft Azure </li></...
云平台比较 <ul><li>http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf </li></ul>
调查结果  -  公有云计算平台使用
  新浪微博  @_ 浪潮之巅 _ : 中国很多大公司 ( 主要是央企 ) ,对云计算理解就是 IDC 和设备。 美国的 case 都是应用。美国这点认识比较一致: IDC 和最基础的东西让 Google , Facebook 和 Amazon...
 
http://addons.heroku.com/
2 ) Google AppEngine 简介  
Google AppEngine <ul><li>云计算平台。支持 Go, Python, Java (JRuby, Rails etc.) ,有免费 Quota 。 </li></ul><ul><li>  </li></ul><ul><li>...
<ul><li>适用于: </li></ul><ul><li>Wiki,CMS, 博客 , 微博 , 手机游戏后台 , 应用服务器 , 问答网站 , 电子书发布 ,SNS,  网店 , 工作流 </li></ul><ul><li>不适合:  <...
Django WebApp2  Tornado     <ul><li>https://github.com/facebook/tornado/tree/master/demos/appengine </li></ul>Google AppEn...
GAE 支持的 Python libraries <ul><li>BeautifulSoup, FeedParser, PythonTwitter, Readability </li></ul><ul><li>PIL, PyCrypto, lx...
Java on AppEngine <ul><li>Play! Framework </li></ul><ul><li>     http://www.slideshare.net/gasolin/play-framework-on-googl...
JRuby on  Google AppEngine <ul><li>code.google.com/p/appengine-jruby/ </li></ul><ul><li>github.com/jruby/jruby-rack </li><...
Lua on Google AppEngine <ul><li>http://code.google.com/p/aelua/ </li></ul><ul><li>http://code.google.com/p/jillcode/ </li>...
 
GAE SDK 1.5.5 Changes (Latest 1.6.0) <ul><ul><li>Python 2.7  支持 </li></ul></ul><ul><ul><li>支持多线程,可使用 threading </li></ul><...
<ul><li>GAE 编程优化心得   </li></ul><ul><ul><li>尽量使用 MemCache </li></ul></ul><ul><ul><li>组合 GoogleAppEngine & VPS  </li></ul></...
Google AppEngine  后台管理
3 ) GAE  建立个人信息中心  
常用的个人信息服务列举 <ul><ul><li>TwitterWeb 客户端,同步到新浪腾讯微博 </li></ul></ul><ul><ul><li>RSS  聚合阅读 </li></ul></ul><ul><ul><li>获取网页,解析短网...
已实现的功能及实现方式 <ul><li>1 )选择现成代码修改( Doodle, V2ex, GaeBBS ) </li></ul><ul><li>2 )同步发推 , 新浪微博功能, t.co 短网址  </li></ul><ul><li>3 ...
同步到新浪微博 <ul><li>   import  mechanize </li></ul><ul><li>   br = mechanize.Browser()   br.open(&quot;http://abcd.com/weibosd...
BeautifulSoap <ul><li>from BeautifulSoup import BeautifulSoup VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br', 'img', ...
抓取网页  ( Webproxy )   https://gist.github.com/1298152
 
 
 
推特客户端
 
https://gist.github.com/1312657 XMPP gtalk 聊天机器人
网页内容监控,发送邮件( 139.com )
免费 Quota 统计
 
实例一 发送 flickr 图片到新浪微博 <ul><li>Cron 任务采集 flickr 的 explore 图片 </li></ul><ul><li>访问图片网址,获取 favor 信息(确定是否 post ) </li></ul><ul...
 
 
示例二  Mobile01 阅读 <ul><li>分析网页内容 </li></ul><ul><li>设计抓取方式 </li></ul><ul><li>HTML readability  </li></ul><ul><ul><li>viewtex...
 
 
 
 
总结 <ul><li>好玩很重要 </li></ul><ul><li>云计算平台值得投入时间了解学习 </li></ul><ul><li>推荐使用 Python + Tornado </li></ul><ul><li>组合 WebService...
Q & A   
Upcoming SlideShare
Loading in...5
×

Using google appengine_final

962

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
962
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
12
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Using google appengine_final

  1. 1. 使用 Google AppEngine 建立个人信息中心 weibo.com/sagasw 2011-11
  2. 2. 编程对我而言,就是永远玩不腻的玩具 - sagasw
  3. 3. Agenda <ul><li>1 )云计算那些事儿 </li></ul><ul><li>  </li></ul><ul><li>2 ) GoogleAppEngine 简介 </li></ul><ul><li>  </li></ul><ul><li>3 ) GAE 搭建个人信息中心 </li></ul><ul><li>4 )相关资源介绍 </li></ul>
  4. 4. 调查 <ul><li>1 ) Python 语言? </li></ul><ul><li>  </li></ul><ul><li>2 ) Google AppEngine ? </li></ul><ul><li>  </li></ul><ul><li>3 )云计算平台? </li></ul>
  5. 5. 1 )云计算那些事儿  
  6. 6. <ul><ul><li>IaaS (Infrastructure as a Service)   </li></ul></ul><ul><ul><ul><ul><li>  Amazon EC2 , Microsoft Azure </li></ul></ul></ul></ul><ul><ul><li>PaaS (Platform as a Service)  </li></ul></ul><ul><ul><ul><ul><li>  GoogleAppEngine , SinaAppEngine , HeroKu, DotCloud </li></ul></ul></ul></ul><ul><ul><li>SaaS (Software as a Service) </li></ul></ul><ul><ul><ul><ul><li>Zoho , Google Apps ,易度  </li></ul></ul></ul></ul>
  7. 7. 云平台比较 <ul><li>http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf </li></ul>
  8. 8. 调查结果 - 公有云计算平台使用
  9. 9.   新浪微博 @_ 浪潮之巅 _ : 中国很多大公司 ( 主要是央企 ) ,对云计算理解就是 IDC 和设备。 美国的 case 都是应用。美国这点认识比较一致: IDC 和最基础的东西让 Google , Facebook 和 Amazon 去做。    http://weibo.com/2142166543/xtKu40qgP
  10. 11. http://addons.heroku.com/
  11. 12. 2 ) Google AppEngine 简介  
  12. 13. Google AppEngine <ul><li>云计算平台。支持 Go, Python, Java (JRuby, Rails etc.) ,有免费 Quota 。 </li></ul><ul><li>  </li></ul><ul><li>优点: </li></ul><ul><ul><ul><li>  UrlFetch,Memcache,TaskSchedule </li></ul></ul></ul><ul><ul><ul><li>XMPP,Mail,Cron </li></ul></ul></ul><ul><ul><ul><li>  MapReduce,Channel </li></ul></ul></ul><ul><ul><ul><li>  支持 OAuth 认证或 Google 账号 </li></ul></ul></ul><ul><ul><ul><li>  Image 处理 </li></ul></ul></ul><ul><ul><ul><li>  域名绑定 </li></ul></ul></ul><ul><ul><ul><li>  易使用,易管理 </li></ul></ul></ul><ul><ul><ul><li>  免费限额大方 </li></ul></ul></ul><ul><li>缺点 :  </li></ul><ul><ul><ul><li>  无全文搜索 </li></ul></ul></ul><ul><ul><ul><li>  调整后的付费方案 </li></ul></ul></ul><ul><ul><ul><li>  需要熟悉新 SQL 操作方式 </li></ul></ul></ul>
  13. 14. <ul><li>适用于: </li></ul><ul><li>Wiki,CMS, 博客 , 微博 , 手机游戏后台 , 应用服务器 , 问答网站 , 电子书发布 ,SNS, 网店 , 工作流 </li></ul><ul><li>不适合: </li></ul><ul><li>音频视频服务 , 大文件 , 密集计算 </li></ul>Google AppEngine 适用业务领域
  14. 15. Django WebApp2 Tornado     <ul><li>https://github.com/facebook/tornado/tree/master/demos/appengine </li></ul>Google AppEngine Web Framework
  15. 16. GAE 支持的 Python libraries <ul><li>BeautifulSoup, FeedParser, PythonTwitter, Readability </li></ul><ul><li>PIL, PyCrypto, lxml 等等 </li></ul><ul><li>什么样的 library 可直接用于 GAE ? </li></ul><ul><ul><li>不依赖 C 扩展 </li></ul></ul><ul><ul><li>不使用数据库 </li></ul></ul><ul><ul><li>不访问本地资源 </li></ul></ul><ul><li>http://pypi.python.org/pypi </li></ul>
  16. 17. Java on AppEngine <ul><li>Play! Framework </li></ul><ul><li>     http://www.slideshare.net/gasolin/play-framework-on-google-app-engine </li></ul><ul><li>     https://github.com/guillaumebort/play-gae </li></ul><ul><li>Scala Lift Framework </li></ul><ul><li>     http://lift-example.appspot.com/ </li></ul><ul><li>     http://www.scala-lang.org/node/1826 </li></ul><ul><li>JavaScript </li></ul><ul><li>     http://www.appenginejs.org/ </li></ul>
  17. 18. JRuby on  Google AppEngine <ul><li>code.google.com/p/appengine-jruby/ </li></ul><ul><li>github.com/jruby/jruby-rack </li></ul><ul><li>                     </li></ul>
  18. 19. Lua on Google AppEngine <ul><li>http://code.google.com/p/aelua/ </li></ul><ul><li>http://code.google.com/p/jillcode/ </li></ul><ul><li>http://code.google.com/p/kahlua/ </li></ul><ul><li>https://github.com/krka/kahlua2 </li></ul><ul><li>http://sourceforge.net/projects/luaj/ </li></ul>
  19. 21. GAE SDK 1.5.5 Changes (Latest 1.6.0) <ul><ul><li>Python 2.7 支持 </li></ul></ul><ul><ul><li>支持多线程,可使用 threading </li></ul></ul><ul><ul><li>支持并发请求 </li></ul></ul><ul><ul><li>支持更多 Python lib ( PIL v1.1.7 )。 </li></ul></ul><ul><ul><li>前台请求的时间 30 秒增加到 60 秒, URLFetch 请求时间从 10 秒增加到 60 秒。 TaskQueue 响应时间增加。 </li></ul></ul><ul><li>From Keakon's blog </li></ul>
  20. 22. <ul><li>GAE 编程优化心得 </li></ul><ul><ul><li>尽量使用 MemCache </li></ul></ul><ul><ul><li>组合 GoogleAppEngine & VPS </li></ul></ul><ul><ul><li>通过 webservice 访问 VPS 数据库, GAE 缓存结果 </li></ul></ul><ul><ul><li>使用 google 或 VPS 搭建搜索功能 </li></ul></ul><ul><ul><li>Nginx 反向代理 GAE (必须的) </li></ul></ul><ul><li>  VPS seller and coupon </li></ul><ul><li>         http://www.lowendbox.com/   </li></ul><ul><li>  Install Debian, Nginx in VPS </li></ul><ul><li>         http://www.howtoforge.com/   </li></ul>
  21. 23. Google AppEngine 后台管理
  22. 24. 3 ) GAE 建立个人信息中心  
  23. 25. 常用的个人信息服务列举 <ul><ul><li>TwitterWeb 客户端,同步到新浪腾讯微博 </li></ul></ul><ul><ul><li>RSS 聚合阅读 </li></ul></ul><ul><ul><li>获取网页,解析短网址 </li></ul></ul><ul><ul><li>Cron Jobs </li></ul></ul><ul><ul><li>在线个人笔记,在线个人博客 </li></ul></ul><ul><ul><li>网络小说阅读 </li></ul></ul><ul><ul><li>推送文章到 Kindle </li></ul></ul><ul><ul><li>每日定时发送天气短信给自己或家人 </li></ul></ul><ul><ul><li>生日提醒(邮件,聊天工具,短信等) </li></ul></ul><ul><ul><li>监控 iPhone 预订网页的内容变化 </li></ul></ul><ul><ul><li>相册 </li></ul></ul><ul><ul><li>Webproxy </li></ul></ul>
  24. 26. 已实现的功能及实现方式 <ul><li>1 )选择现成代码修改( Doodle, V2ex, GaeBBS ) </li></ul><ul><li>2 )同步发推 , 新浪微博功能, t.co 短网址 </li></ul><ul><li>3 )定期采集 RSS </li></ul><ul><li>4 )支持 Google Reader share </li></ul><ul><li>5 ) HackerNews 全文阅读 </li></ul><ul><li>6 )网页内容变化,通过短信提醒 </li></ul><ul><li>7 )支持 XMPP 协议( gtalk )客户端自动聊天 </li></ul><ul><li>8 )网络小说 web client </li></ul><ul><li>9 )发送 Flickr 每日 interesting 图片到新浪微博 </li></ul>
  25. 27. 同步到新浪微博 <ul><li>  import mechanize </li></ul><ul><li>  br = mechanize.Browser()   br.open(&quot;http://abcd.com/weibosdk/weibopost.php&quot;)   br.select_form(nr=0)   strform = status.encode('utf-8')   br.form['text'] = str   br.submit() </li></ul><ul><li>需要 VPS 上搭建微博 PHP SDK 作中转 </li></ul><ul><li>或者使用 SinaAppEngine 作为中转 </li></ul><ul><li>  </li></ul>
  26. 28. BeautifulSoap <ul><li>from BeautifulSoup import BeautifulSoup VALID_TAGS = ['strong', 'em', 'p', 'ul', 'li', 'br', 'img', 'ol', 'blockquote'] def sanitize_html(value):     soup = BeautifulSoup(value)     for tag in soup.findAll(True):         if tag.name not in VALID_TAGS:             tag.hidden = True     return soup.renderContents() </li></ul>
  27. 29. 抓取网页 ( Webproxy )   https://gist.github.com/1298152
  28. 33. 推特客户端
  29. 35. https://gist.github.com/1312657 XMPP gtalk 聊天机器人
  30. 36. 网页内容监控,发送邮件( 139.com )
  31. 37. 免费 Quota 统计
  32. 39. 实例一 发送 flickr 图片到新浪微博 <ul><li>Cron 任务采集 flickr 的 explore 图片 </li></ul><ul><li>访问图片网址,获取 favor 信息(确定是否 post ) </li></ul><ul><li>建立 task ,投递到 taskqueue (使用 ETA ) </li></ul><ul><li>在 SAE 上搭建中转服务 </li></ul><ul><li>Mechanize 模拟 form submit 访问 SAE </li></ul><ul><li>Fix bug ,调整参数 </li></ul>
  33. 42. 示例二 Mobile01 阅读 <ul><li>分析网页内容 </li></ul><ul><li>设计抓取方式 </li></ul><ul><li>HTML readability </li></ul><ul><ul><li>viewtext.org, </li></ul></ul><ul><ul><li>www.instapaper.com/m?u = </li></ul></ul><ul><ul><li>Readitlaterlist api </li></ul></ul><ul><li>下载图片 </li></ul><ul><li>添加文章 </li></ul>
  34. 47. 总结 <ul><li>好玩很重要 </li></ul><ul><li>云计算平台值得投入时间了解学习 </li></ul><ul><li>推荐使用 Python + Tornado </li></ul><ul><li>组合 WebService, API 的 Mashup 设计思路 </li></ul>
  35. 48. Q & A  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×