viernes, 5 de noviembre de 2010

Ruby: Tutorial: Hello Name

Fuente: Little Book of Ruby



Paso a Paso:

1. Creación del fichero helloname.rb

print( 'Enter your name: ' )
name = gets()
puts( "Hello #{name}" )


2. Ejecutar desde la línea de comandos

ruby helloname.rb




Apuntes:

  • Uso de print para mostrar un string sin que se produzca un cambio de línea posterior (retorno de carro), de tal forma que la introducción del nombre se haga en la misma línea
  • Uso de gets para leer una cadena introducida por el usuario (hasta la pulsación de Enter)
  • Asignación de la entrada del usuario a una variable (name)
  • No se ha necesitado declarar la variable name anteriormente, ni asignarle un tipo explícitamente
  • Inclusión de la variable name dentro de cadenas dobles, de tal forma que se muestre el contenido de la misma (#{name})

Ruby: Tutorial: Hello World!

Fuente: Little Book of Ruby



Paso a Paso:

1. Creación del fichero helloworld.rb

puts 'Hello, World!'


2. Ejecutar desde la línea de comandos

ruby helloworld.rb




Apuntes:

  • Ejemplo típico, casi obligatorio, en el que se muestra el texto "Hello, World!"

Ruby interactivo

  • Permite ejecutar instrucciones del lenguaje línea a línea
  • Se lanza escribiendo en la linea de comandos irb
  • Se sale escribiendo exit o quit


Fuentes:
  • Little Book of Ruby (Huw Collingbourne)
  • Ruby Fácil (Diego F. Guillén Nakamura)

Ruby

  • Lenguaje de programación multiplataforma, interpretado, reflexivo y orientado a objetos
  • Creado por el programador japonés Yukihiro "Matz" Matsumoto
  • Inspirado en Perl y Python
  • Presentado públicamente en 1995
  • Diseñado para la productividad y la diversión del programador
  • Todos los tipos de datos son un objeto
  • Las variables siempre son referencias a objetos, no los objetos mismos
  • Sensible a las mayúsculas


Fuentes:
  • Wikipedia: Ruby
  • Little Book of Ruby (Huw Collingbourne)
  • Ruby Fácil (Diego F. Guillén Nakamura)

jueves, 28 de octubre de 2010

GAE: webapp.WSGIApplication

  • Se creará una instancia de webapp.WSGIApplication para manejar las peticiones
  • Una instancia de WSGIApplication podrá manejar múltiples URLs, dirigiendo la petición (request) a diferentes clases de RequestHandler según su patrón URL
  • La instancia será inicializada mediante una lista que mapea URLs a controladores (RequestHandler)
  • El parámetro debug solicita a la aplicación que muestre mensajes de error en la ventana del navegador cuando el controlador (RequestHandler) lance una excepción
  • El parámetro debug se tiene en cuenta únicamente en desarrollo (cuando se está ejecutando mediante el servidor de desarrollo). Cuando la aplicación está online, no se mostrarán los mensajes de error en el navegador, aunque el parámetro de debug sea True
  • Tanto el fichero de configuración (app.yaml) como la aplicación (WSGIApplication), pueden mapear direcciones URLs para manejar la petición, por lo que dependerá de cómo el programador quiera organizar su código


Fuentes:
  • Programming Google App Engine (Dan Sanderson)
  • Developing with Google App Engine (Eugene Ciurana)

GAE: Tutorial: Clock (2)

Aprendiendo: Google App Engine
Fuente: Programming Google App Engine (Dan Sanderson)



Screenshot:




Paso a Paso:

1. Creación del directorio del proyecto clock

2. Creación del fichero clock/main.py

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
import datetime

class MainPage(webapp.RequestHandler):
  def get(self):
    time = datetime.datetime.now()

    self.response.headers['Content-Type'] = 'text/html'
    self.response.out.write('The time is: %s' % str(time))

application = webapp.WSGIApplication([('/', MainPage)], debug=True)

def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()


3. Creación del fichero clock/app.yaml

application: clock
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: main.py


4. Ejecutar la aplicación del servidor

dev_appserver.py clock


5. Visitar la url http://localhost:8080




Apuntes:
  • Mejora del Tutorial: Clock haciendo uso del framework webapp
  • Se crea una aplicación (application) para la gestión de peticiones. Instancia de la clase webapp.WSGIApplication
  • La aplicación es inicializada mediante una lista que mapea URLs a controladores
  • Uso de la class RequestHandler (MainPage) para la gestión de una petición del usuario
  • Uso del método RequestHandler.get para devolver una página HTTP (self.response)

GAE: WebApp

  • Google App Engine incluye un framework web simple, llamado webapp
  • Bastante bueno para los proyectos pequeños
  • Carece de las características de los frameworks más establecidos (Django, web2Py, Pylons...)


  • Programming Google App Engine (Dan Sanderson)
  • Developing with Google App Engine (Eugene Ciurana)