Your SlideShare is downloading. ×
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Using google appengine_final
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Using google appengine_final

942

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×