Google Apps Engine level cupu

Banyak aplikasi yang bagus-bagus tersedia di cloud computing, seperti microsoft healthvault, Retail—Epicor , Google Apps Premier Edition, Microsoft Office Live Small Business, AdvancedMD, WebEx, Construction—CMiC, Banking—OpenChannel, dan QuickBooks. Bagaimana jika aplikasi yang kita inginkan tidak tersedia?, ya buat sendiri. Bisa menggunakan google apps engine dengan dua pilihan bahasa pemgrograman, java dan python. Piliha mana enaknya, java atau python? sebagai perbandingan hosting aplikasi java perbulan sekitar US$10, sedangkan python sekitar US$2.

Sebelum memulai review sedikit tentang cloud computing.
Untuk memulai, pertama kali unduh  Google App Engine development kit, yang berlokasi di http://code.google.com/appengine/downloads.html. SDK sudah termasuk  web server application that simulates untuk App Engine environment. Kali ini kita coba dengan dua perintah
dev_appserver.py  development web server
appcfg.py Used to upload app ke App Engine

mari kita buat aplikasi hi malang, pertama buat direktori himalang. buat dua file himalang.py dan app.yaml.
himalang.py berisi
import webapp2

class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers[‘Content-Type’] = ‘text/plain’
self.response.write(‘Selamat siang malang, apa kabar hari ini?’)

app = webapp2.WSGIApplication([(‘/’, MainPage)],
debug=True)

app.yaml berisi

application: himalang
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
– url: /.*
script: himalang.app

setelah itu testing script dan jalankan webserver dengan perintah
dev_appserver.py himalang/

hasilnya lihat pada localhost:8080

Continue reading

Install Django

Django adalah framework yang digunakan untuk membuat website, tapi ini dasarnya python. Untuk install sangat sederhana bisa dengan pip, atau dengan kompile source. Instal pip ada di tulisan sebelumnya.

pip install Django

setelah install coba aktifkan python dan test apakah instalasi django sudah berhasil.

Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
>>import django
>>> print(django.get_version)
>>> print(django.get_version())
1.4.2

kalau sudah seperti itu berarti djangonya sudah terinstall, selanjutnya?? *terserah* 😀

Socket yang simple dengan python

Coba kirim hello manis melalui soket, Sebelum menulis kode perlu diketahui pada python terdapat class method dan intance nethod. FYI kalau pakai windows perlu install dulu tapi kalau pakai mac os atau linux sudah dari sononya ada.

class method :
Socket Low-level networking interface (per the BSD API)
socket.socket(family, type) Create and return a new socket object
socket.getfqdn(name) Convert a string quad dotted IP address to a fully qualified domain name
socket.gethostbyname(hostname) Resolve a hostname to a string quad dotted IP address
socket.fromfd(fd, family, type) Create a socket object from an existing file descriptor

instance method:

sock.bind( (adrs, port) ) Bind the socket to the address and port
sock.accept() Return a client socket (with peer address information)
sock.listen(backlog) Place the socket into the listening state, able topend backlog outstanding connection requests
sock.connect( (adrs, port) ) Connect the socket to the defined host and port
sock.recv( buflen[, flags] ) Receive data from the socket, up to buflen bytes
sock.recvfrom( buflen[, flags] ) Receive data from the socket, up to buflen bytes, returning also the remote host and port from which the data came
sock.send( data[, flags] ) Send the data through the socket
sock.sendto( data[, flags], addr ) Send the data through the socket
sock.close() Close the socket
sock.getsockopt( lvl, optname ) Get the value for the specified socket option
sock.setsockopt( lvl, optname, val ) Set the value for the specified socket option

Test dulu pakai python interpreter,

>>> import socket
>>> socket.gethostbyname('www.ub.ac.id')

Selanjutnya coba buat tcp stream server simpan dalam file stream.py

import socket
srvsock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
srvsock.bind( (' ', 2000) )
srvsock.listen( 5 )
while 1:
clisock, (remhost, remport) = srvsock.accept()
str = clisock.recv(100)
clisock.send( str )
clisock.close()

Kemudian buat pengirim.py
import socket
clisock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
clisock.connect( ('', 23000) )
clisock.send("Hello Manis\n")
print clisock.recv(100)
clisock.close()

Ngetesnya jalankan didua terminal yang berbeda, satu jalankan python stream.py dan satunya jalankan python pengirim.py. Apakan hello manis sukses dikirim?. Untuk membuktikannya tambahkan print pada stream.py.

........
clisock.send( str )
print str
clisock.close()

bagaimana hasilnya? Sekian dulu simple socket programing dengan python. 😀

pip

Ini salah satu hal keasikan di python, terdapat sebuah tool bernama pip yang berfungsi untuk menginstall package. Sama halnya dengan easy_install tetapi dengan beberapa fitur tambahan. Dia dapat bekerja dengan beberapa repository tidak hanya pypi seperti Git, Mercurial, and Bazaar. Pip dibuat untuk berkerja di lingkungan Virtualenv, dengan menyertakan option – E/–Environment maka dia akan menginstall suatu pake ke sebuah lingkungan yang diberikan.

Pada ubuntu tinggak install python-pip dari repository. Untuk penggunaannya pip install nama-paket, pip uninstall nama-paket, atau pip searce nama-paket. Lebih detile lihat di manualnya man pip #RTFM

pasang virtualenv di oneiric

Virtualenv adalah sebuah paket yang digunakan untuk membuat sebuah environment python terisolasi dimanapun kita mau, didistribusikan sebagai python egg. Bisa diinstall dengan Setuptools, tapi disini saya menginstall dengan third party packages “easy_install”. karena dependencies akan terdownload secara otomatis.

Langkah pertama unduh skrip instalasi di,

http://peak.com/dist/ez_setup.py.

kemudian dengan periviledge root jalankan,

#python ez_setup.py

tunggu sampai selesai, perintah tersebut akan melakukan unduh terhadap beberapa paket. Setelah selesai lanjutkan menginstal virtualenv dengan easy_install

#easy_install virtualenv

done?? klo sudah gak ada err..!!! berarti sudah bisa membuat virtual environment. caranya??? RTFM dong 😀

ah itu perkataan khas teman saya.. bete abis dengernya ~_~..
untuk membuat virtual environment gunakan opsi berikut.

$virtualenv –no-site-package text

Btw jangan gunakan root mode untuk membuat virtualenv. Di oneiric simsalabim lancar 😀

#happyCoding