星期日, 6月 22, 2008

如何使用Google App Engine

README
Copyright 2008 Google Inc.
All rights reserved.
App Engine SDK - Development tools for Google App Engine
CONTENTS
========
* Installing on Mac OSX
* Installing on Windows
* Installing on Linux and other platforms
* Running the SDK
* Using the SDK
INSTALLING ON Mac OSX
=====================
1) Download and install Python 2.5 from http://www.python.org/download/
2) Download the SDK installer from http://code.google.com/appengine/downloads
3) Install the SDK by double-clicking on the GoogleAppEngine.dmg file and
running the installer.
INSTALLING ON WINDOWS
=====================
1) Download and install Python 2.5 from http://www.python.org/download/
2) Download the SDK installer from http://code.google.com/appengine/downloads
2) Install the SDK by double-clicking on the GoogleAppEngine.msi file and
running the installer.
INSTALLING ON LINUX AND OTHER PLATFORMS
===============================
1) Download and install Python 2.5 from http://www.python.org/download/
2) Download the SDK zip file from http://code.google.com/appengine/downloads
3) Unpack the zip file.
RUNNING THE SDK
=========================
You can run the SDK with the following command:
dev_appserver.py [options]
Application root must be the path to the application to run in this server.
Must contain a valid app.yaml or app.yml file.
Options:
--help, -h View this helpful message.
--debug, -d Use debug logging. (Default false)
--clear_datastore, -c Clear the Datastore on startup. (Default false)
--address=ADDRESS, -a ADDRESS
Address to which this server should bind. (Default
localhost).
--port=PORT, -p PORT Port for the server to run on. (Default 8080)
--datastore_path=PATH Path to use for storing Datastore file stub data.
(Default /tmp/dev_appserver.datastore)
--history_path=PATH Path to use for storing Datastore history.
(Default /tmp/dev_appserver.datastore.history)
--require_indexes Disallows queries that require composite indexes
not defined in index.yaml.
--smtp_host=HOSTNAME SMTP host to send test mail to. Leaving this
unset will disable SMTP mail sending.
(Default '')
--smtp_port=PORT SMTP port to send test mail to.
(Default 25)
--smtp_user=USER SMTP user to connect as. Stub will only attempt
to login if this field is non-empty.
(Default '').
--smtp_password=PASSWORD Password for SMTP server.
(Default '')
--enable_sendmail Enable sendmail when SMTP not configured.
(Default false)
--auth_domain Authorization domain that this app runs in.
(Default gmail.com)
--debug_imports Enables debug logging for module imports, showing
search paths used for finding modules and any
errors encountered during the import process.
USING THE SDK
=======================
For instructions on getting started with Google App Engine, please see the
Google App Engine Getting Started Guide
http://code.google.com/appengine/docs/gettingstarted

星期二, 6月 10, 2008

GAE的使用者認證

在google app engine上開發程式,可以使用google帳號來認證
http://code.google.com/appengine/docs/gettingstarted/usingusers.html

/*************程式碼*******************/

from google.appengine.api import users

class MainPage(webapp.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, ' + user.nickname())
else:
self.redirect(users.create_login_url(self.request.uri))

/*************程式碼*******************/

上面的程式主要是使用google 使用者認證的API
如果有登入的話就執行(說聲hello使用者)

self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, ' + user.nickname())
如果沒有的話
就轉向到google的認證網頁,進行官方的認證手續。
self.redirect(users.create_login_url(self.request.uri))

經過測試在本地測試時,因為沒有google資料庫的原因
所以不用輸入密碼,如果你測試覺得很奇怪的話,將它
上傳至appspot就會正常認證。

星期一, 6月 09, 2008

2008年6月程式語言的趨勢


看圖說故事!!
目前程式語言的排名,前五名分別是
java c c++ php VB
php現在已經如雨後春筍般,發展開來
也擠進20名來~!!
python受到google App Engine的照顧
似乎只成長一名,沒有如預期中的成長那樣多。


星期五, 6月 06, 2008

GAE遭破解不一定要使用google平台,試試AppDrop

日前吵的沸沸揚揚google app engine目前傳出被人破解可以不用上傳到
google的雲端中,即可在本地運行,Grabb.it網站的聯合創始人Chris Anderson
在他的努力下,一個名為“AppDrop"並基於Apache2.0開源協議軟體就這樣誕生了
目前實做目標是將google app engine導入Amazon的 EC2虛擬機中運行!!!
這能說~~~多了一種自由的選擇吧,不然看起來還滿有軟體人的反骨精神,
目前進度另人滿意,有興趣的人可以去研究一下AppDrop的原始碼

目前研究還是有瓶頸所在,因為GAE內建資料庫是使用BigTable,但是目前AppDrop
實做則是以文件檔案的方式來儲存,所以運行的效率還是會有一定程度的差異。

在Google上託管你的應用

在Google上託管你的應用


簡介

今天晚上第二次CampFireOne上Google Code將會宣布App Engine——給Web開發人員提供的託管平台。這一服務將會進入封閉測試階段,10000名開發人員將被允許參加進來,可謂”先到先嘗”。

今天晚上第二次CampFireOne上Google Code將會宣布App Engine——給Web開發人員提供的託管平台。這一服務將會進入封閉測試階段,10000名開發人員將被允許參加進來,可謂”先到先嘗”。



終 於等到了Google平台。傳說Google的服務器服務以及開發工具已經有好幾年了。自從Amazon Web Services提供了很好的類似服務之後我們都知道Google加入進來是遲早的事(下一個是Microsoft無疑)。 App Engine和AWS的服務比較不完全相同,Amazon發布的是一套獨立的服務,你可以使用它們創造一個通用計算平台,這些服務可以共同工作,但並不綁 在一起。



App Engine則幾乎是一個Web應用引擎。將很多類似AWS在獨立包中提供的功能綁到一起:類似S3的存儲功能,類似EC2的自擴展和處理能力,以及類似 SimpleDB的數據庫功能。 App Engine同時還提供一些AWS沒有的能力比如Python環境、Google API,以及有可能的部分免費服務。 App Engine更像是其他一些Web平台服務,比如Bungee Labs(類似但有自己的語言),Heroku(支持Rails),還有氣數已盡的Zimki(它支持服務器端JavaScript,請參考Radar文 章)。



App Engine包括可擴展的數據存儲(基於BigTable和GFS,可以參看TechCrunch星期五的報導,這將允許應用擴展到數百萬行數據的數百萬 用戶級別),Python運行時環境——受Django(模板系統)影響極大,以及一個開源Python日誌系統。 App Engine針對應用可以提供自擴展和故障恢復的能力。全球配置設定則提供了認證、分析和對Google服務API的訪問。還有可下載的SDK,能夠進行 本地開發和調試。本地開發的應用移到Web上只需要一條命令。



所有的應用將會在appspot.com域名 下。每個開發人員目前有三個應用ID。應用上載後就是http://application-id.appspot.com。開發人員當然可以把自己的域 名指過來。你可以在application gallery看到當前的一組應用。我喜歡appspot這個域名,這是對Blogspot的一種敬意,和Jotspot也很貼合。



App Engine最初包括幾個API。 User API允許應用認證Google帳戶。 Mail API允許應用發郵件——從開發人員註冊的郵件地址發送。其他API則允許與數據庫的交互以及從URL抓取內容。



該 服務最開始是免費的,還提供500MB的存儲空間以及針對每月5百萬頁的充足帶寬和處理器能力。一些部分的服務將會永遠免費(具體有多少會在測試期間確 定)。流行的應用最終是要為它的成功付費的。我猜未來Adsense帳號會連到應用上,這樣App Engine的費用就可以從那裡支付了。



另外值得指出的是App Engine不是一個通用計算平台。它不是打算為批處理使用。它是一個請求驅動的平台。我能想像一些AppSpot前端會使用EC2作批處理。



還 要注意使用Python的情況。我提過的每一個託管平台都選擇了一個特定語言。 Google選擇了Python而且所有Python內置工具似乎受Django(一個Python Web框架)影響極大。 App Engine未來將會與其他Python框架兼容(這些在文檔中有所提及:EZT,Cheetah, ClearSilver,Quixote,Django,CherryPy)。



我喜歡Google的方式。他們很清楚Google需要更多的人在Web上(更多的頁面意味著更多的廣告)。他們為需要建立快捷應用的用戶提供平台,真正的問題是:當應用成功後還會留在這裡嗎?



發這個帖子的時候我正在CampFireOne,Google將會在這裡宣布App Engine。如果你有任何問題要問可以貼在評論里或直接在Twitter上發信息給我。我會替你們問。



Google會在5月24日舊金山的Web 2.0Expo上介紹App Engine。這一部分會議對任何佩戴Expo徽章的人開放。 Google還將在5月28-29日自己的會議Google I/O上介紹App Engine。

本文轉譯取自譯言堂,並台灣在地化

星期三, 6月 04, 2008

Erlang程式設計

最近又上翻書客閒晃,赫然發現~~~真的是赫然
蔡學鏞先生翻譯Erlang了!!!,書名是Erlang程式設計

這個語言要找資源!!平常很多資料都是從對岸的網站而來~~

我有也買一本原文的!!但是看到~~蔡先生的中文翻譯書
一定要支持一下,也歡迎大家~~~多多研究一下erlang
嚐嚐瑞典的味道吧!



erlang相關討論
http://groups.google.com/group/erlang_taiwan?hl=zh-TW





書皮的樣子↓↓



星期二, 6月 03, 2008

google app engine & heroku

google app engine 以下簡稱GAE是google推出的新服務,也是讓使用者
自己寫網頁程式,然後推入雲端裡去運算,聽起來十分神奇,沒錯!!

這是趨勢,也是讓許多網站代管商聞風色變,殺手級應用

無獨有偶日本的heroku也推出相同的服務,應當說heroku先推出後!!
後來才有GAE,heroku推出初期,就曾經試用過,對於初學ruby on rails的我
感到神奇,線上編輯 線上除錯 資料庫服務也給妳 也給你網站空間 !!又不用錢~~~

時再讓你捏了一把冷汗,那我們還要虛擬網站商做什麼??

虛擬網站商的空間被無限的壓縮,然而同一時期GAE 開始推出一萬個帳號
給使用者搶註,沒錯!!!就是這樣~~~感覺很像百貨公司 週年慶吧!!就跟gmail
推出一樣,但是這一次是限量的!!!到了最近又開始手機號碼換試用帳號,透過
使用者的口耳相傳,這個服務在特定團體間流行了起來(這裡指的特定團體指的是
google愛好者、雲端愛好者!!!當然不是孫悟空!!還有平行運算愛好者!!),大家都想
到雲裡撥雲見霧看熱鬧!!,該說這個階段!!是個分水嶺吧~~~不用想太多!!!很多的事
都有大哥處理好了!!!!這樣大家的確都甘於當小弟了,也沒有那麼多的資源可以給大哥
拼,只能點點頭說~~~~大哥是對的,看著雲來了!!但心理去使充滿擔心,沒有一股抗
衡的力量,可以說是網路界的一黨獨大,完全的權利,也是完全的責任!!

以後可能都是大哥說了算!!!

google app engine vs heroku=google vs amazon=python vs ruby

這一次的戰爭,還沒有看到!!微軟~~~
他會甘於當小弟嗎?


GAE的訂價策略

CPU每一核心工時的售價為0.1~0.12美元,每月每GB的儲存空間售價為0.15~0.18美元,每月每GB的對外頻寬售價為0.11~0.13美元,每月每GB的對內頻寬為0.09~0.11美元。