Sunday, November 18, 2012

Create database mongodb



create database mongodb.

show dbs

use creditos //crea la base de datos si no existe.

db.dummy.save({field: 'dummy fields for db'})

y listo db.dummy.findOne()

obtiene un registros. y al hacer show dbs  muestra la base de datos creditos y cuanto ocupa.

creditos    0.203125GB
cube_development    0.203125GB
local    (empty)
test    0.953125GB

si se quiere especificar otro directorio donde almacenar la información:

mongodb\bin\mongod  --dbpath /ruta/de/data/

Wednesday, November 14, 2012

Formatos y el comando tr



Recientemente me han asignado un proyecto, me dieron un archivo con N GB de tamaño, no era mucho, pero estaba mal formateado, era un tsv, pero mezclaba espacios con tab, ¡la locura! editarlo imposible con 2Gb de RAM, y mi maquinita viejita, lo ideal era subirlo a alguna Base de Datos, y poder tratar con el desde ahí. 

Entonces conocí tr, un comando de unix, que permite sustituir los separadores por otros, en este caso primero sustituí los espacios por otro caracter, y luego sustituí los tabs por este caracter y listo el archivo luego quedó bien formateado, y listo para subir.

sería algo así:

tr ' ' ',' < archivoAFormatear.tsv  > archivoSalidaFormateado.csv

otra cosa importante a comentar, ejecutar un shell script de mongodb es fácil, una maravilla, al menos en linux :) lo anoto acá para recordarlo. xD

mongo < scriptshell.js

El dibujo fue hecho entre un momento de ociosidad y de infancia, conozcan al  sr Brown. xD

otra comando útil entre los formatos entre windows y linux es la herramienta, ayuda a formatear ese molesto \r\n en un \n:

dos2unix -n fileoriginal.tsv  fileunix.tsv

de esta forma no elimina el original. y lo almacena en fileunix.tsv



Thursday, November 1, 2012

Renderizado de los gráficos en R es lento.


Ayer actualicé mi máquina, y bueno pasó  que cada vez que realizaba una gráfica no se actualizaba el gráfico en la ventana de R, supongo que por alguna actualización de Xorg o el driver, supongo que alguna configuración habrá cambiado, por lo que el renderizado era lento, muy muy lento.

preguntando al tío Google, existe una forma de modificar las opciones de las X para R, siempre y cuando se tenga acceso al servidor  de las X.

leí que esta opción es más rápida:

X11.options(type="Xlib")

y esta opción no esta disponible si no se tiene la librería. Tiene más caracteristicas pero no es tan rápida como Xlib.


X11.options(type="cairo")

Para más información:
http://stat.ethz.ch/R-manual/R-patched/library/grDevices/html/x11.html

Monday, October 8, 2012

Cambiando directorio de Datos Postgresql.




Por defecto el directorio de datos en archlinux, está en la siguiente ruta:

/var/lib/postgresql

Ahora quiero mover esto a otra particion:

en

/misperoles

1 - entonces lo primero que debo hacer es hacer un respaldo de las bases de datos que se encuentran en el motor.

2 - cambio el directorio en el archivo de configuración postgresql.conf.

3 - Muy Importante, los permisos de ese directorio debe pertenecer a postgres (el usuario con el cual lo creaste al momento de instalar).

4 - reiniciar el servidor.

5 - y cruzar los dedos, hehe mentira..

6 - Dependiendo de la distribución, el script que permite reiniciar o detener hay que modificarlo.

y bueno anoto acá como ejecutar cosas por línea de comando ya que por la vía gráfica es muy pesado trabajar con muchos registros, no es big data pero si va más rápido por la consola.

psql -d database -f SQLcommand.sql
psql -f PGdumpPlain.sql







Saturday, October 6, 2012

Importando datos a PostgreSQL o MySQL


PostgreSQL.

copy creditosmes95 from '/var/tmp/95percent.csv' delimiter ',' copy creditosmes95 from '/var/tmp/95percent.csv'  WITH NULL AS 'NA' delimiter ','
copy original from '/var/tmp/p1_conclase.txt'  WITH NULL AS '' delimiter ';'
lo mejor es leer la documentación oficial.http://www.postgresql.org/docs/8.2/static/sql-copy.html
MySQL
LOAD DATA INFILE 'hipparcos.csv'  -->  está en /var/lib/mysql/BASEDEDATOINTO TABLE hipparcos FIELDS TERMINATED BY ';';

Documentación de mysql: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Haciendo un backup de alguna Base de Dato.
mysqldump.exe -h 127.0.0.1 -uUser -pVeryDifficultPass databaseName
NOTA: La imagen es de http://cheezburger.com

Monday, October 1, 2012

Pasar una matriz a un vector.


 
Una matrix de 10x10 => resultará un vector de 100 elementos.
 
mx <- code="code">matrix(rnorm(100,1:100),10,10)
vec <- code="code">c(mx)
 
En mi caso estoy usando una matriz de distancia, para obtener la distribución de las distancias y ver en que punto de corte se considera una estrella perteneciente a Hyades o no. Esto lo subiré después y más ordenado. La imagen es tomada de: http://hubblesite.org/newscenter/archive/releases/2012/37/image/a/format/large_web/

Thursday, September 27, 2012

Dataset UCI Machine learning con R


> install.packages("HDclassif")

y  ¡listo!

> data(wine)
> data(iris)
> data(diabetes)   #Este viene con la librería  "mclust"

Sunday, September 9, 2012

Recuperar archivos borrados en tu sd o unidad de almacenamiento










Anteriormente había usado photorec en win porque la máquina no era mía, y funciona perfecto, en este caso lo utilicé para ver si podía recuperar la foto del gato que está como imagen adjunta a este artículo. Es un gato que hermoso :) y vale la pena instalar la aplicación, esta viene en esos cds de backtrack instalada por defecto, hasta hace no mucho.

En linux por defecto  se montan las particiones, para saber a que /dev pertenece una partición montada, se ejecuta:

mount

sudo dd if=/dev/sdb1 of=/media/misperoles/memorycard.img bs=2048

photorec  /media/misperoles/memorycard.img

luego seleccionas que tipo de formato tiene el filesystem donde las vas a almacenar luego que las recupere, en mi caso ext4 (también tiene soporte NTFS) en otra carpeta de misperoles, /media/misperoles/recuperadas, y listo se presiona shift - C y empieza a recuperar las fotos.






Monday, September 3, 2012

Enviar correos con cake y Gmail.



0) tener soporte ssl en apache.
     Descomentar línea
     LoadModule ssl_module modules/mod_ssl.so
     verificar que exista el archivo  modules/mod_ssl.so

1) crear la cuenta que vas a usar para enviar emails: usuario@gmail.com
2) editar los parametros de configuración.

 //acá estoy en el controlador.
$this->Email->from  = 'usuariofrom@correo.com';
$this->Email->replyTo =  'usuariofrom@correo.com';
$this->Email->subject = 'Este es el asunto';
$this->Email->content = 'Contenido'; 
$this->Email->sendAs = 'html'

// sólo para gmail.
$this->Email->smtpOptions = array(
                                                       'port'=>'465',
                                                       'timeout'=>'30',
                                                       'host' => 'ssl://smtp.gmail.com',
                                                       'username'=>'usuario@gmail.com',
                                                       'password'=>'',
                                               );

//envío.
$this->Email->send($this->Email->content )  o $this->Email->send();

y listo.
Esta fue la torta de mi cumple :) ñumi ñumi.

Thursday, August 16, 2012

Sobre árboles, específicamente j48.


Los árboles de decisiones son utilizados frecuentemente.

- Permiten hacer búsqueda no exhaustivas, en un espacio de versiones.

- Reciben en sus atributos parametros nominales y continuos. Pero siempre es recomendado discretizar los parametros continuos, para que tenga mejor desempeño, y el porcentaje de correctitud sea mejor.

- Dependiendo de los parámetros de entrada, -c en weka varía la confianza y tomando en cuenta si el conjunto de datos pasó por un preprocesamiento de datos (discretizar, filtrar, limpiar datos, manejo de missing values) el porcentaje de correctitud mejorará.

- Para visualizar el sobreajuste que realizan los árboles de decisiones se realizó un experimento, donde se variaba la confianza desde 0.01 hasta 0.5 en 0.01 los resultados obtenidos en cuanto a correctitud y profundidad del árbol fueron graficados. y se pudo observar que existe un pto en el cual el porcentaje de correctitud con el conjunto de datos de prueba llega a estar cerca del porcentaje de correctitud con el conjunto de datos de entrenamiento. Siendo este punto el mejor arbol ya que no se sobreajusta a la data de entrenamiento, sino más bien por su generalidad  al momento de utilizar la data de prueba permite mantener de forma cercana los porcentajes de correctitud.

- Es un algoritmo robusto, en cuando a factores de ruido (falsos positivos) y atributos con sin valores (missing values)

Los scripts utilizados están en: git hub

No es la mejor forma de realizarlo, se usó de todo, por el poco tiempo y como es necesaria la entrega de resultados. Se terminó así. :)

Los conceptos son tomados de libro Machine learning , Mitchell

Wednesday, August 15, 2012

Utilizando algoritmo apriori. con R


En síntesis:

cuando nos entregan la data, (tablas) 

- Limpiar, strings, colocar todo en minuscula, establecer formato de fechas iguales, ordenar, eliminar o analizar datos que pudiesen ser outlier, establecer formato de precios iguales, establecer formato de cantidades, limpiar los string que contienen ubicaciones, y comentarios.

- Discretizar los valores continuos, se dice de los valores continuos la edad, precios, cantidades ya que "Apriori" sólo trabaja con valores nominales. Se utilizó el algoritmo de clusters k-means para agrupar los valores en rangos. ver clustering.r

- Establecer un archivo con las uniones de las tablas, este archivo próximamente será una matriz de transacciónes, donde las columnas corresponden al producto y cada fila es una transacción. Realmente se realizaron varios archivos y se crearon columnas nuevas conforme requeriamos conocer más sobre el comportamiento de las compras del cliente.

- Para obtener los formatos se utilizó un script muy muy básico en python, requiere mejoras.. xD pero es funcional a nuestra data.

- Se instalaron los paquetes arules, arulessecuences, y "arulesViz" para graficar las reglas.

- Ejecutar script arules.r cambiando los parametros de entrada, por ejemplo el archivo que va a leer, este archivo tiene que tener formato basket también admite single. En weka el formato es arff, por ende tiene que ser preprocesado, el csv tiene un formato tabular. En el modeler recibe el formato single, y basket no difuso.

- Ejeutar script arulessecuences.r para ver que productos implican una compra a futuro. es decir por ejemplo si alguién compra una pizarra acrílica entonces próximamente necesitará nuevos marcadores..


scripts en R y alguno en python

acá u post en inglés un poco más largo: algoritmo Apriori R

Cosas para recordar sobre reglas de asociación.



Las reglas de asociación nos permiten establecer relaciones entre diferentes elementos que conforman un conjunto de transacciones, la clásica historia para plantear un ejemplo de la utilidad de reglas de asociaciones, son los supermercados, ellos manejan altos volumenes de transacciones y muchísimos productos. Entonces si queremos visualizar que productos son llevados en conjunto con frecuencia, necesitamos utilizar reglas de asociación.

Un caso muy comentado en google, es el caso de la regla que asociaba los pañales con la cerveza, para más información acá: Pañales y Cerveza datamining).  No es una regla muy explicita, sin embargo se obtiene con las frecuencias, siendo esto un hecho, y de acuerdo a esto se establecieron promociones, ubicación de artículos en el supermercado, entre otras acciones para mejorar las ventas de sus productos.

Actualmente existen muchos programas para utilizar reglas de asociación, probé varios, el que decidas usar depende de la cantidad de data.

- orange, tiene una interfaz qt  que es linda, pero con muchos artículos (muchas columnas en la transacción) la velocidad de respuesta es lenta, más si tienes una máquina bastante pobre como  la mía. Sin embargo orange lo puedes usar desde scripts sin interfaz gráfica, importando las librerías. Está bueno si sabes programar en python :) 

- weka, puede ser usado sin interfaz gráfica, ya que también es pesado y su tiempo de respuesta puede ser muy lento a medida que tiene más productos las transacciones, además puede configurar que utilice mayor cantidad de memoria RAM, más ram para weka  esto mejora un poco, pero igual con grandes cantidades de datos, luego tienes leer las salidas. Es buena opción. 
sería bash e invocaciónes al jar de weka.

- R ,  paquete arules, y arules secuences, son muy útiles, para buscar reglas de asociación, y patrones de secuencia.  me pareció sencillo de implementar para el caso, y bastante rápido, incluso más rápido que weka.

- Rapid miner, tiene reglas de asociación (invoca la api de weka :-s), el detalle es que es Java y su interfaz gráfica es pesada (mucha memoria ram), por lo que al tener muchas transacciones y columnas (productos) tarda en devolver las reglas, y secuencias. Se puede añadir más memoria ram, sin embargo este sería el más lento de los mencionados. 

- Modeler, es privativo, y no tengo licencia, pero igual lo usé en el laboratorio. y no es tan rápido como R.

Métricas, de esta comparación, no las guardé en un archivo, ya que el objetivo del post no es comparar, sino recordarme algunos tópicos de las reglas de asociación que tuve que realizar para el trabajo práctico. Otro día será..

Formatos para reglas de asociación.

Formatos para obtener reglas de asociación.
Single:

IDtransaccion1, Producto1
IDtransaccion1, Producto2
IDtransaccion1, Producto3
IDtransaccion1, Producto4

Basket:

IDtransaccion1, Producto1, Producto2, Producto3, Producto4
IDtransaccion2, Producto1, Producto6, 
IDtransaccion3, Producto1, Producto2, Producto3, Producto4, Producto5,  Producto6

Basket no difuso:

IDtransaccion1, Producto1, Producto2, Producto3, Producto4
IDtransaccion2, Producto1, Producto2, Producto3, Producto4
IDtransaccion3, Producto1, Producto2, Producto3, Producto4
IDtransaccion4, Producto1, Producto2, Producto3, Producto4
IDtransaccion5, Producto1, Producto2, Producto3, Producto4

En Modeler, Transacional es el formato single. Y Tabular es el formato basket no difuso, es decir sus columnas siempre son iguales , y sus valores tienen ausencia o presencia de productos.

weka puede recibir un archivo csv, sin embargo requiere ser transformado a su formato natico arff, y recibe el formato basket difuso y no difuso.

En orange, recibe el formato basket, difuso y no difuso, pero separado con tabs.

R lee formato basket (difuso o no) y single.

La tetera me recuerda a kettle, que sirve para organizar, y preprocesar la data antes de ejecutar cualquier algoritmo.

Sunday, August 12, 2012

Hacer un logs de todas las acciones realizadas en la línea de comando, terminal, consola.


A menudo me pasa que estoy haciendo alguna instalación  de un programa y quiero replicarlo en la computadora de algún compañer@ de clases, quizás por no tener la misma estructura de directorios, permisología de algunos archivos, o los archivos que leia el script en la computadora del compañer@ estaban vacíos. Pasan errores de capa 8 muy a menudo y supones que son tan tontos que no deberían pasar pero pasan.. :-|

El comando script permite grabar todo lo que ejecuten en la consola (terminal, línea de comando o como lo digan). Entonces cuando te digan que lo ejecutan y no funciona, y  no es algún@ compañer@ que tienes cerca para ver en su computadora, y no imaginas pedir ssh (por alguna razón).  puedes comentarle que ejecute el comando script y luego reproduzca los pasos que realizó para la instalación, ejecución de algún script, o lo que necesites que reproduzca.

user@hostname~ $ script archivodondeguardarlog.txt
user@hostname~ $ls
COPYING         changelogs           remoteExperimentServer.jar  weka.ico
README          data       
user@hostname~ $chroot dir
user@hostname~ $ cd weka

Para finalizar  el comando script
user@hostname~ $ exit

y luego que te envíe el archivo,  archivodondeguardarlog.txt
este archivo si lo revisas con un editor de texto vim, gedit, o kate, tiene caracteres especiales. Para visualizarlo de la misma forma que aparecieron en la terminal, se deben visualizar con cat.

 user@hostname~ $ cat archivodondeguardarlog.txt

Para ejecutar lo que contiene el script, Ojo ojito ojo.. (alguna vez tuve un profesor en la universidad que decía esa frase cuando teníamos que estar pendiente de algo.) En su ejecución deben tener creadas todas las variables, y directorios que estan mencionados en el script:

 user@hostname~ $ script -c archivodondeguardarlog.txt

foto: Yoda, que la fuerza te acompañe..

Friday, July 6, 2012

Utilizar R con Rapid Miner


- Instalar los plugins de weka y R para la interfaz de rapid miner.
- Luego instalar desde la consola de R , el paquete rJava..
  1. install.packages("rJava")
    Ejecutar el siguiente comando para conocer la ruta de los directorios donde son almacenados los paquetes, uno de ellos pertenece al paquete rJava por lo que necesitamos recordarlo para utilizarlo con RapidMiner.
  2. .libPaths()
  3. Luego se indica en el Rapidminer la ruta donde se encuentra rJava.

Thursday, June 21, 2012

cosas viejas pero hoy se me olvidó como hacer

Eliminar caracteres ^M con vim
con estas teclas obtengo el carácter, en modo comando de vim, esto es lo que me costó recordar:


                      ctrl + v  
                      ctrl + m

sustituyo :
                      1,$s/^M//g

Bueno dejo acá para recordar como eliminar carácteres ^M.


Wednesday, June 20, 2012

kettle en linux.

La idea es tener ¿cómo? instalarlo. Es muy simple.
pero.. pueden pasar cosas como estas:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x0000000000000000, pid=10045, tid=140606626641664


claro, por supuesto.. muy intuitivo..
cambias de jvm entre versiones y da igual.

entonces gracias a google conseguí el foro de pentaho, con el mismo problema:

http://bit.ly/LCBgGe

sólo que el dueño del foro tiene el derecho de borrar editar entre otras cosas cualquier item, o post, así lo añado acá para recordarme más adelante por si acaso:

Abrir o crear este directorio:

~/.kettle

Crear o editar el archivo

~/.kettle/.spoonrc

añadiendo la línea:

ShowWelcomePageOnStartup=N
y listo. todo por hoy. 


Tuesday, May 15, 2012

Aprendiendo..


Apuntes de una clase que está interensante, se llama Aprendizaje Automático.

     Uno de los libros a tomar en  cuenta en el curso  es machine learning de Tom Mitchell, libro viejo pero bueno para ser introductorio en el tema de aprendizaje automático. El primer capitulo es un abreboca sobre cómo analizar los problemas para ser resueltos por el aprendizaje automático. Y nos deja pensativos sobre en que cosas más podemos aplicar aprendizaje automático para llegar a una solución aproximada de un problema.

Entre los ejemplos citados sobre el uso de aprendizaje automático comentaba:
        El hecho de predecir la tasa de recuperación de neumonía de los pacientes en un hospital, un uso muy frecuente hoy en día es el empleado para detectar el uso fraudulento de tarjetas de créditos, enseñar a jugar a una computadora , el hecho que vehiculos puedan conducir solos hoy en día también lo mencionan en el libro, de 1997.

Las predicciones se realizan en base  los resultados teóricos (Casi dogmas de Fé). Teniendo en cuenta que "Los resultados teóricos han sido desarrollados para representar las relaciones fundamentales entre la cantidad de data observada en los ejemplos de entrenamiento, el número de hipótesis a considerar y el error esperado de las hipótesis aprendidas".
  Todo esto forma un conjunto de características que representa el aprendizaje automático:
        Existe una clase (una tarea).
        La medida mejora en su ejecución (gana experiencia),
        El origen de su experiencia.

De esta forma se establece una nomeclatura, una forma de escribir como definir un problema de aprendizaje automático, o como diseñarlo.

Estos son los datos básicos:

La Clase Tarea T:         Tarea a ejecutar.
La Medida de mejora:  ¿Cómo sé que estoy aprendiendo? una medida cuantificable que define casos positivos de aprendizaje.
Origen de los datos:      ¿Donde obtienes los datos?

Extendiendo la información del diseño:

1 La Clase de Tarea.
2 La medida de mejora.
3 El origen del aprendizaje.
4 El tipo exacto de conocimiento a ser aprendido (Función Objetivo).
5 una representación para este objetivo de conocimiento. (Representación de la función objetivo, reglas, funciónes polinómicas, redes neuronales) Esto es una parte clave. y de compensación.
6 un mecanismo de aprendizaje (¿Cómo?)

Luego se presentan otras características a tomar en cuenta, como el peso de las variables o atributos. Esto es un poco de teoría. En cuanto a la práctica si tenemos curiosidad, de ¿cómo podemos usar esto', puedes revisar:

Pybrain

http://scikit-learn.org/

http://pyml.sourceforge.net/

http://www.fing.edu.uy/inco/grupos/pln/prygrado/InformeGO.pdf


Paper que habla sobre el modelo bayesiano para modelar el aprendizaje automatico.

weka


cualquier búsqueda de cpan con machine learning servirá.
Igualmente en Python, puedes conseguir otro módulo que te llame la atención y no esté mencionado acá: http://ur1.ca/98xy0

Tuesday, March 13, 2012

CUPS para recordar..

Activar la impresora.

Comprende aceptar trabajos ó tareas (jobs) en la cola, y habilitar la impresora para los trabajos.
 
lpadmin -E -p HP_Deskjet_F4100_series

lpadmin -E -p Deskjet_F4100


Listar los trabajos (jobs).

lpq
lpstat -u
lpstat -t


Eliminar trabajos.

cancel [jobsid]
lprm [jobid]

Para recordar siempre lo necesito cuando se coloque en pausa la impresora en la casa. Y mi hermano necesite  imprimir.  usualmente uno se acostumbra a las interfaces gráficas, pero no está de más saber y tener esto anotado por acá.

Monday, February 20, 2012

Pie de limón.


Hula esto son unos ricos pie. Que trajo elvio durante los últimos dias en el mppee. Buenísimos. Se hacen encargos..

Orinoco. El musical:)


De todo un poco. Cosas viejas pero buenas.

Estos eran la gente de gaelica.


Suena genial.

Zarathrusta ya lo sabia..


XD

Que grosero zarathustra.


Leyendo por ahi..

Calipso :)


Gente bailando en el trabajo como parte de su estrategia por hacer sentir las costumbres y una especie de arraigo naciónal.

Tuesday, February 7, 2012

Existen los vagones rosa.. :O



En America Latina existen los vagones rosa, en Brasil sólo son habilitados en las horas picos, increible esa iniciativa. En Japón tenía conocimiento que existian pero acá  en América lo desconocía completamente.

Fuente: http://ur1.ca/81p2y

Sunday, January 29, 2012

space invader Caracas ^^


Cosas de Domingo, desde un punto de vista distinto.
Seguramente han pasado por acá, algún ocioso habrá hecho esto.

Saturday, January 28, 2012

Dotcloud una alternativa para desarrollos

Dotcloud Es una plataforma que te permite hacer la implementación

de tu proyecto de una forma fácil. Admite varios lenguajes y te permite 

tener hasta dos proyectos de forma gratuita, de manera que eres libre de 

elegir que herramientas, framework deseas utilizar para tu aplicación.

Recuerda leer los términos y condiciones para el uso del servicio, tiene

ciertas limitaciones sin embargo en general para probar esta bien.

Pueden utilizar las cuentas premium y añadir un dominio en específico,

lo único que tendría que hacer es instalar el CLI de dotcloud, esta en 

hecho en python.
1 - Instalar el CLI. (Instalando el CLI)  
$sudo easy_install pip && sudo pip install dotcloud 

2 - Configurar la llave, se ejecuta $dotcloud setup uego te dice donde buscar la llave..
Enter your api key (You can find it at http://www.dotcloud.com/accounts/settings):


$dotcloud create nombre_aplicacion creas el directorio donde se encontrará la aplicación:  
$mkdir miaplicacion
 
dentro del directorio miaplicacion coloco todos los archivos necesarios
de mi aplicación esto depende del lenguaje de programación, ó framework utilizado.
en python con web2py quedaría así:  
 
dotcloudtest 
|---dotcloud.yml
|---hellopython
|---|--- Todos los archivos del source de web2py
|---|--- wsgi.py (esto es un enlace a wsgihandler.py)

En perl con mojolicious::lite así
dotcloudtest
|---dotcloud.yml
|---helloperl(rutaraiz,directorio)
|---|---app.psgi 
|---|---Makefile.PL
|---|---myapp.pl
|---|---static
|---|---public (Esto es un enlace a static) 
El archivo dotcloud.yml básicamente se compone de..
www: type: python (or perl)
approot: directorioraízdelaaplicacion 

Luego que están todos estos archivos de la aplicación:
se suben al servidor de dotcloud mediante el comando  

$dotcloud push miaplicacion directorio_a_subir 

Para ver que pasa, si no se ve tu aplicacióne en el url, revisar los logs:
$dotcloud logs nombredeaplicacion.www y eso es todo. Por cierto también incluye el soporte de base de dato, pero no se que tan bueno es..

Acá encontrarás la estructura de archivos para perl:

https://github.com/j3nnn1/tools/tree/master/dotcloud-test

Para instalar el ejecutable en el entorno cygwin:

1) easy_install:

 $ wget http://peak.telecommunity.com/dist/ez_setup.py
 python ez_setup.py

2) pip

easy_install pip

3) ahora si dotcloud
pip install dotcloud

Y taráaaan:
Python: http://blog-j3nnn1.dotcloud.com/  (web2py)
Perl: http://kintrini-j3nnn1.dotcloud.com/ (mojolicious)

Este articulo está desactualizado ya que se realizó antes de junio 2012, e introdujeron un nuevo sistema. Próximamente crearé una nuevo, con el nuevo sistema.

http://docs.dotcloud.com/0.4/guides/flavors/#legacy  

Nota: Dotcloud no te deja descargar los archivos que una vez subistes. Ojo con eso, alternativa que si te deja es heroku.

Otro post de alguién que utiliza dotcloud, este está actualizado: 
http://blogs.perl.org/users/david_oswald/2012/08/creating-a-perl-web-application-on-dotcloud.html

Dotcloud desde el 25 de Abril del 2013, dejó de prestar free hosting, hoy en día se requiere de una tarjeta de crédito en la cual facturar el servicio.
: - (

: - (

Monday, January 2, 2012

Recapitulando y nuevas intenciones del 2012


Tiempo sin dedicarle a esto, rápidamente reviso sobre el post de enero del 2011:

Libros leídos:
Tiempos difíciles (Charles Dickens),
Ginebra (Rosalind Miles) Este fue prestado por nini,
La princesa de ebolí (no recuerdo el autor :-s ya lo obsequié) ,
Releí Mundo Feliz (Aldous Huxly) antes de obsequiarlo,
Juana de arco (no recuerdo el autor :-s ya lo obsequié),
El psicoanalista,
El caliban y la bruja,(Este libro es gratuito está en la página: http://traficantes.net/) ,
En el principio fue la linea de comandos. (Este también se encuentra en la página: http://traficantes.net/)
sospecha (Mike McQuay)
refugio.(Rob Chilson)
intruso. (Robert Thurston)
Nemesis  (Asimov).
las olas (Virginia Wolf)

Me quedan por terminar de leer:

Así habló Zaratustra.
El mago.
Text mining with perl.
Game programming with python, lua, and ruby.

Quedan por comprar: :(
La soledad de los numero primos.
Los pilares de la tierra.
Un mundo sin fin.
la suerte esta echada,
Los caminos de la libertad(la edad de la razon, el aplazamiento, la muerte en el alma).

películas pendientes:
El cubo.
El muro.

         En general lei algo, más sé que pude haber leido un poquito más cuestión de organizarme, los viajes en metro ayudan muchisimo a leer libros, y el transporte en general. Bueno algunos ya los he obsequiado, me parece que el libro se presta para realizar eso, ya que estar en una biblioteca personal sin ser leido no tiene mucho sentido (exceptuando libros que son buenos y normalmente son releídos con frecuencia). 

      Los libros se encuentran para hablarnos transmitirnos ciertos enfoques del autor, a veces basados en hechos reales, en fin tienen muchos propósitos a transmitir y bueno por eso, tengo cómo principio obserquiarlos, siempre y cuando vayan a ser obsequiados nuevamente de la misma forma que se recibió. también es genial los intercambios que se organizan municipalmente en chacao y en sucre, donde  puedes intercambiarlos.

       Por ahora tengo que terminar los que me quedan pendiente, a la noche actualizo el post. y continuo sobre mi revisión del 2011, y bueno a comenzar el 2012.


Fotografía: Rueda celta del año. sacado del libro Ginebra. me pareció curioso como muchas festividades de acá concuerdan con las fetividades cristianas. :P