domingo, 15 de mayo de 2011

La nube de Redhat se llama OpenShift

OpenShift es la nube de la empresa RedHat , tiene tres tipos de servicios destinados a diferentes necesidades de los usuarios o empresas:
OpenShift Express: Destinada a desarrolladores ademas que es gratuita y no es escalable , tiene las siguientes caracteristicas.
Supported software
 PHP 5.3.2
 Ruby 1.8.7
 Python 2.6.5
Express platform
 Red Hat Enterprise Linux 6
 SQLite 3.6.20
 Apache HTTP 2.2.15
 128 MB of storage space for application files
 256 MB of RAM
Express client tools requirements
 Git
 Ruby
 OpenSSH

La suscripcion a este servicio no tiene muchas complicaciones, solo que hay que tener en cuenta que las caracteristicas de este servicio son muy limitadas como muchos servicios gratuitos, no hay control de panel para administracion, no se puede agregar dominios solo redhat provee un subdominio (nombredelaaplicacion-nombredelsubdominio.rhcloud.com ) y no se permite que la aplicacion desarrollada se use para produccion.

OpenShift Flex: Destinada a desarrolladores, es gratuita y escalable tiene las siguientes caracteristicas.
Supported Software
 Apache Web Server 2.2.3
 Apache Tomcat 6.0.18
 JBoss Application Server 6.1.0
 Java – JDK 6.0
 PHP 5.2.10
 MySQL 5.1.52
 Memcached 1.4.5
 MongoDB 1.6.5
 Zend Framework 1.10.8
Supported Clouds
 Amazon EC2

Para acceder a este servicio se debe de tener una cuenta en amazon:

Request Access to Flex

We'll need a little information get to you access to the Developer Preview.

    First, we'll need your Amazon account number (e.g. 1234-1234-1234). Your account number will allow us to share the Flex Amazon Machine Images with your account.

OpenShift Power: Destinado para produccion con todas las caracteristicas para desarrollar y poner en funcionamiento aplicaciones en la nube, por el momento no hay forma de adquirir este servicio sin tener contacto directo con el soporte de Redhat.



viernes, 22 de abril de 2011

Problemas para crear el codigo html para los objetos flash ?

Si tiene algun problema al crear el codigo html para asi poder colocar su aplicacion flash en su web, SwfObject es la solucion, permite de una forma sencilla la generacion del codigo necesario para solucionar problemas tan comunes como el modo FullScreen que no funciona correctamente en internet explorer (ie6,ie7).
SwfObject es software libre y maneja estandares, ademas es compatible con la mayoria de navegadores web.
Documentacion en castellano

martes, 22 de marzo de 2011

Proyectos Opensource de Adobe

Talvez pocos son los que conocen de la existencia de una rama opensource en la empresa Adobe. Para sorpresa de algunos Adobe tambien apuesta por el software libre pero asu manera.
Algunos de estos proyectos libres personalmente los uso para el desarrollo de aplicaciones Flash, Air.
Uno de esos proyectos que mas uso es Alchemy que me permite convertir librerias escritas en ANSI C en codigo actionscript 3, ademas flex sdk que me permite desarrollar aplicaciones flash.
La web opensource de adobe
La lista completa de sus proyectos opensource
Publicare algunos ejemplos sobre alchemy en algun nuevo post ya que me parece el mas interesante de sus proyectos.

domingo, 20 de marzo de 2011

Silenciar el pitido que emite la computadora

Aveces es molestoso escuchar el pitido que emite el parlante de la computadora cuando se esta en un terminal y se esta usando el tabulador o se cometio algun error al digitar.
Con este par de comandos(para modo consola y entorno grafico) se silencia el pitido:

setterm -blength 0
xset -b

sábado, 19 de marzo de 2011

Variables de entorno para instalaciones personalizadas

Si esta copilando e instalando nuevas librerias y programas pero no quiere que estas sobreescriban versiones existentes en su sistema operativo Unix. Puede crear una nueva estructura de directorios para instalarlas ahi por ejemplo:
mkdir $HOME/cualquierpath
mkdir $HOME/cualquierpath/bin
mkdir $HOME/cualquierpath/sbin
mkdir $HOME/cualquierpath/lib
mkdir $HOME/cualquierpath/etc
mkdir $HOME/cualquierpath/share
mkdir $HOME/cualquierpath/include

Ahora puede copilar su libreria indicandole donde tiene que instalarlo, para ello es necesario que tenga generado el archivo configure y pasarle la variable siguiente:
./configure --prefix=$HOME/cualquierpath
make ; make install
Para la ejecucion del nuevo programa instalado es necesario modificar la variable de entorno PATH y LD_LIBRARY_PATH
PATH=$HOME/cualquierpath/bin:$PATH
LD_LIBRARY_PATH=$HOME/cualquierpath/lib miprograma

viernes, 18 de marzo de 2011

Drupal 7 y mongodb

Drupal 7 no trae por defecto integracion con la base de datos no relacional mongodb, en el proceso de instalacion solo son mostrados mysql, postgres entre otras, pero en ningun momento de la instalacion aparece mongodb.
La unica forma de poder usar mongodb en drupal 7 es atravez del modulo mongodb pero solo permite la sustitucion de algunas tablas/registros de las bases de datos relacionales como "_watchdog" como lo indica su documentacion:

  • D7: mongodb_cache: Store cache items in mongodb.
  • D7: mongodb_field_storage: Store the fields in mongodb.
  • D7: mongodb_session: Store sessions in mongodb.
  • D6/D7: mongodb_watchdog: Store the watchdog messages in mongodb. Note this needs a core patchapplied or it will create a separate collection for every 404 message. It breaks some unimportant functionality, read the issue on why it was rolled back.
  • D6/D7: mongodb: support library for the other modules
  • D7: mongodb_block: Store block information in mongodb. Very close to the core block API.
  • D7: mongodb_queue: DrupalQueueInterface implementation using mongodb.
No se puede sustituir completamente mysql por ejemplo con mongodb y ademas es un problema tener en funcionamiento al mismo tiempo 2 bases de datos ya que perjudica el rendimiento en el servidor.


Fastcgi en apache

Para poder ejecutar programas o scripts en el servidor apache mediante el modulo fastcgi debe tener en cuenta algunas recomendacion.
Dependiendo de la version del servidor apache que este usando , es necesario activar el modulo mod_fcgid.so y configurar los virtual host en la configuracion de apache para poder ejecutar fastcgi.
En este caso solo se programara en C el ejemplo, tambien se puede usar otros lenguajes de programacion por ejemplo java, perl, tcl, etc.
Existen varios ejemplos que se pueden encontrar por internet pero la gran mayoria no funcionan, es necesario tener instalado la libreria fcgi lo puede obtener atravez de la herramienta que le proporciona su distribucion de linux o puede obtener el codigo fuente en este link http://mirror.star4u.org/ubuntu/pool/universe/libf/libfcgi/libfcgi_2.4.0.orig.tar.gz , en el codigo fuente existe ejemplos que solo hay que copilarlo y hacerlo funcionar.
Por ejemplo echo.c
/*****************************/

/*
* echo.c --
*
* Produce a page containing all FastCGI inputs
*
*
* Copyright (c) 1996 Open Market, Inc.
*
* See the file "LICENSE.TERMS" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
*/
#ifndef lint
static const char rcsid[] = "$Id: echo.c,v 1.5 1999/07/28 00:29:37 roberts Exp $";
#endif /* not lint */

#include "fcgi_config.h"

#include

#ifdef HAVE_UNISTD_H
#include
#endif
extern char **environ;
#include "fcgi_stdio.h"


static void PrintEnv(char *label, char **envp)
{
printf("%s:
\n
\n", label);
for ( ; *envp != NULL; envp++) {
printf("%s\n", *envp);
}
printf("

\n");

}

int main ()
{
char **initialEnv = environ;
int count = 0;

while (FCGI_Accept() >= 0) {
char *contentLength = getenv("CONTENT_LENGTH");
int len;

printf("Content-type: text/html\r\n"
"\r\n"
"FastCGI echo"
"

FastCGI echo

\n"
"Request number %d, Process ID: %d

\n", ++count, getpid());


if (contentLength != NULL) {
len = strtol(contentLength, NULL, 10);
}
else {
len = 0;
}

if (len <= 0) {
printf("No data from standard input.

\n");

}
else {
int i, ch;

printf("Standard input:
\n
\n");
for (i = 0; i <>
if ((ch = getchar()) <>
printf("Error: Not enough bytes received on standard input

\n");

break;
}
putchar(ch);
}
printf("\n

\n");

}

PrintEnv("Request environment", environ);
PrintEnv("Initial environment", initialEnv);
} /* while */

return 0;
}
/*****************************/


Para copilarlo:
gcc -o echo.fcgi echo.c -lfcgi
Tenga en cuenta la extension del archivo (.fcgi) generado debe ser la que se configuro en el apache para poder ejecutar fastcgi.
Lo puede ejecutar en una consola el binario obtenido le mostrara una salida formateada en html, pero la forma correcta es atravez de un navegador web, ejecute http://midominio.com/echo.fcgi

Si tiene alguna duda, consulte la documentacion de fastcgi http://www.fastcgi.com/drupal/node/6