Pensando en Red nada es tan fácil como parece serlo

18ene/100

Live USB

Hace unos días un amigo me trajo un netbook que le habían regalado, tenía instalado Linux y quería que le explicara un poco. La distribución que tenía era Linpus. No la conocía, por lo que le hice el cambio a xubuntu.

La instalación con un LiveCD era imposible, este juguete no tenía lector y aunque a día de hoy todos los equipos son botables por USB nunca había necesitado hacerlo hasta entonces. Lo mejorcito que he encontrado para hacer un usb bootable es UNetbootin, muy fácil de utilizar. Esta aplicación está en los repositorios de ubuntu y por lo tanto la instalación es muy sencilla.

sudo aptitude install unetbootin

Aquí os dejo una captura del programa para que podáis ver la sencillo que sería crear un USB bootable con cualquier distribución.

Etiquetado con: , , No hay comentarios
18ene/100

¿Qué está pasando con Internet? I

Así es! ¿qué es lo que está ocurriendo? El Manifiesto, la SGAE, Ramoncín...

Muchos usuarios de Internet no están informados, y menos aquellos usuarios domésticos que no intervienen mucho en la 2.0. No me gustaría caer en escribir este post orientado a la política, pero realmente se están vulnerando derechos y promoviendo leyes a "escondidas".

Ya he hablado de la SGAE en un post anterior, el Manifiesto de internet al que algunos usuarios que "representaban" a los Internautas en reuniones con las altas esferas, yo desde luego no decidí quien me tenía que representar pero por lo menos había quien intentaba defender intereses. Sus twits de esas semanas fueron muy seguidos, pero ¿que ha pasado?

Me gusta la iniciativa que ha tomado @joanballester con su documento colaborativo pro manifiesto, en donde está participando mucha gente.

Luego tenemos la cruzada de Ramoncin®, contra meneame.net y 20minutos una marca registrada a finales del año pasado. Pero lo que más triste me parece, es la imagen de un artista en contra de la libertad de expresión.

Que vamos a esperar de la SGAE... hay cientos de noticias que hablan profundamente sobre esta entidad, pero tengo que reconocer que a mi también me gustaría tener un amigo que fomentara una ley que beneficiara mi empresa,  así es fácil. Hay cientos de miles de emprendedores que luchan a diario para conseguir por lo que están apostando, pero un buen contacto siempre lo es todo.

Me preocupa que se está consiguiendo el poder de cerrar páginas web sin orden judicial y que puedan vetar las conexiones de Internet de los usuarios así por amor al arte, porque alguien sentado detrás de una mesa lo decide, y esta persona sin poder judicial. Simplemente con poder administrativo motivado por la conveniencia.

Mucho se ha hablado de la piratería en Internet, del P2P, que la música es arte y trabajo... Los modelos de negocio se tienen que ir adaptando a los nuevos tiempos. Spotify, iTunes ya lo están haciendo en la industria musical. La popularización de Internet en usuarios domésticos está obligando a que las industrias discográficas tengan que evolucionar un modelo de negocio con el que están acostumbrados a subsistir con el mínimo esfuerzo.

Un artista, gana más en un concierto que vendiendo sus discos y claro está que los conciertos de muchos artistas tienen más espectadores porque les han escuchado por Internet, tal vez no han comprado su disco pero le han escuchado y cuando tienen la posibilidad de ir a su concierto van! haciendo que este artista gane dinero.

Otro punto de vista también muy comentado es el cine, pero el ejemplo que podemos exponer es de Avatar. La película más descargada por P2P y a la par la que ha batido record en taquilla.

No debemos permitir que exista esta entidad "SGAE". En Internet un Internauta ha declarado la guerra a esta entidad con 2 bemoles :-)

Si el albañil que levanta una pared no cobra siempre que esa pared está levantada, porqué permitimos que lo hagan los artistas. Es cierto que tienen que vivir, siempre que trabajen cobrarán como lo hacemos la mayoría de los mortales para llegar a fin de mes. Aunque el invento de los derechos de autor, beneficia más a las entidades intermedias entre el artista y los canales de distribución.

Para ir cerrando "la chapa", me preocupa que se hable mucho en Internet y poco en el resto de los medios. Que se aprueben leyes a escondidas...

13ene/107

Spotify en Ubuntu 9.10 Karmic Koala

Aunque no me gustaba la idea al final me he dejado llevar por el servicio de spotify en linux utilizando wine. No me hacía mucha ilusión, todo sea dicho, pero era la única manera de poder utilizar el servicio. Es curioso, tienen versión para Windows y Mac pero no para Linux O_o! claro los "friki-linux" que utilicen wine...

En la web oficial: http://www.spotify.com/es/help/faq/wine/ podemos ver un mini how to de como hacer funcionar spotify.exe con wine. Siguiendo al "dedillo" este how to con Ubuntu 9.10 Karmic Koala no me ha funcionado.

El sonido se entrecortaba constantemente y era prácticamente imposible el poder escuchar una canción.

Bien, como lo solucioné... pues en primer lugar desinstale el wine de los repos la versión 1.0.1

sudo aptitude remove wine

Pasos a seguir:

1. Edita el fichero /etc/apt/source.list

sudo gedit /etc/apt/source.list

2. Agrega estas lineas al final del fichero

deb http://ppa.launchpad.net/neil-aldur/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/neil-aldur/ppa/ubuntu karmic main

3. Añadimos las claves para los nuevos repositorios

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D3E49C82

4. Refrescamos la lista de repositorios

sudo aptitude update

5. Instala Wine 1.2

sudo aptitude install wine1.2

Una vez finalizada la instalación de wine vamos a configurarlo en "Aplicaciones -> Wine -> Configure Wine" o ejecutando winecfg en consola.

Y ahora a disfrutar de toda su música! :-)

1ene/1014

Configurar postfix con gmail

Antes con instalar el paquete de postifx podías enviar desde tu máquina local correos a tu cuenta de e-mail, solían entrar en spam, por lo que indicándole a gmail que no era spam ya se podía hacer pruebas de desarrollo de envío de correos.

Ahora parece ser que no, por lo que comencé la búsqueda de un how to para solventar el problema y cómo no, nos encontramos con nuestro amigo @ZiTAL del que ya he mencionado un how to en este blog sobre la instalación de oci8 en debian. @ZiTAL es un debianita profundo ^_^ y siempre le podemos encontrar en la comunidad Debian-es investigando y ofreciendo el resultado de sus búsquedas. Los how to que suele publicar funcionan a la perfección, algo difícil de encontrar en comunidad hispana.

Una prueba de que es un debianita profundo es el tatuaje que luce en su pierna, y os puedo asegurar que esta imagen no es un foto-montaje, es auténtico.

Así que paso a citar la configuración, que aunque en su post menciona que lo está haciendo en un debian etch yo lo he seguido a la perfección para Ubuntu 9.10:

Instalación de paquetes:

apt-get install postfix mailx

Editar el archivo /etc/postfix/main.cf , borrar todo lo que pone y añadir estas entradas:

  # SMTP relayhost
  relayhost = [smtp.gmail.com]:587
  ## TLS Settings
  smtp_tls_loglevel = 1
  smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
  smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
  smtp_tls_key_file = /etc/postfix/certs/mykey.pem
  smtp_use_tls = yes
  smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
  smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
  smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
  smtpd_tls_received_header = yes
  smtpd_use_tls = yes
  # configuracao tls
  smtp_use_tls = yes
  smtp_sasl_auth_enable = yes
  smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
  smtp_sasl_security_options = noanonymous
  smtp_sasl_tls_security_options = noanonymous
  # alias de mapeamento interno para externo
  smtp_generic_maps = hash:/etc/postfix/generic

Crear archivo de auntentificacion para gmail, /etc/postfix/sasl_passwd

[smtp.gmail.com]:587    usuario@gmail.com:contraseña

Creando archivo de alias, /etc/postfix/generic

root@localhost.localdomain	usuario@gmail.com

aqui tenemos que cambiar el localhost por el nombre de la maquina y el localdomain por el dominio local, lo podemos ver en /etc/hosts y tendremos una cosa asi:

...
nuestra_IP	nombrelocalhost.nombredominio	nombrelocalhost
...

cambiando permisos y cifrando los archivos:

chmod 600 /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/generic
postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/generic

Creando los certificados:

mkdir /etc/postfix/certs/
cd /etc/postfix/certs/
cd certs
openssl dsaparam 1024 -out dsa1024.pem
openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem
ln -s mycert.pem CAcert.pem
openssl req -x509 -new -days 3650 -key /etc/postfix/certs/mykey.pem -out /etc/postfix/certs/mycert.pem
rm dsa1024.pem

Reiniciando servicio postfix:

/etc/init.d/postfix reload

Probando:

echo "contenido coreeo" | mail -s "asunto" usuario@correo.com

Nota, yo tenia el openssl instalado de antes, si necesitais instalarlo:

apt-get install openssl ssl-cert

Enlace del hilo de esdebian.org

20dic/091

Métodos mágicos en PHP5

Desarrollar en PHP5 con orientación a objetos cada vez es más parecido a desarrollar con Java, los "javeros" siempre comentan que PHP no hace más que "copiar" y la verdad es que razón no les falta ^_^ pero una de las particularidades que tiene el desarrollar con POO en PHP5 son los métodos mágicos. Los usan cada vez con más frecuencia los frameworks de desarrollo en PHP5 y es por la flexibilidad que ofrecen en los desarrollos.

Quien no ha utilizado en algún momento en PHP5 el new stdClass(), al hacer una instancia de esta clase predefinida en el core de PHP5 estamos creando una clase estándar en donde las propiedades se generan de manera dinámica.

En el ejemplo del que mostraré a continuación se trata de una clase estándar donde encapsularemos el acceso a las propiedades de la clase. Utilizaremos el la encapsulación y el principio de la ocultación en la Programación Orientada a Objetos para el desarrollo de esta clase con métodos mágicos. No exponiendo el acceso a las propiedades en ámbito público.

La clase que vamos a crear no entiende de las posibles propiedades que puede tener el objeto, ni tampoco de los valores que almacenará y menos de acciones sobre propiedades. Simplemente almacenará N valores en diferentes propiedades de manera dinámica, simulando el comportamiento de "stdClass".

/**
* Clase estándar con propiedades de ámbito privado, en donde
* para acceder a las propiedades es necesario invocar métodos
* set/get bien para inicializar la propiedad o recuperar.
*
* @author mariotux
* @date 20/12/2009
*/
class MyStdClass {
private $properties;
private function __get($name) {
$name = strtolower($name);
if (array_key_exists ( $name, $this->properties)) {
return $this->properties [$name];
}else{
throw new Exception('Unknown property  '. $name);
}
}
private function __set($name, $value) {
$name = strtolower($name);
if(count($value) == 1){
$this->properties [$name] = $value[0];
}else{
$this->properties [$name] = $value;
}
}
public function __call($name, $arguments) {
$methodType = substr($name, 0, 3);
$nameMethod = substr($name,3);
switch ($methodType){
case 'get':{
return $this->$nameMethod;
break;
}
case 'set':{
$this->$nameMethod = $arguments;
break;
}
default:{
throw new Exception('Unknown method  '. $name);
}
}
}
public function __construct() {
$this->properties = array ();
}
}

Cómo podemos observar en la clase, en cuanto se intenta invocar a un método que no sea get o set generamos una excepción, al igual que también lo hacemos cuando se intenta acceder a una propiedad que no ha sido inicializada al invocar el método get de la propiedad. En el set no realizamos la comprobación ,ya que al estar asignando un valor a una propiedad siempre la trataremos como una propiedad nueva en caso de que no exista.

Este es un ejemplo de como utilizar métodos mágicos, en donde sólo estamos utilizando __construct, __call, __set, __get pero existen más métodos mágicos que podríamos utilizar para extender el comportamiento de la clase.

Etiquetado con: , , , , 1 Comentario
10dic/090

Microsoft se vuelve a marcar un tanto

Seguridad al político que determina su contratación, buenos comerciales, o todavía sigue pesando más su pasado en el mundo del software... Pero es una lástima que nuevamente se vuelva a invertir dinero público en licencias de Microsoft. Ya comenté en un post anterior, decidirse por el software libre implicaría la creación de empleo y aumento del PIB.

Jueves 10 de Diciembre a las 12.00h
La Secretaria de Estado de Educación y Formación Profesional, Eva
Almunia, y la presidenta de Microsoft Ibérica, María Garaña, suscriben
mañana, jueves 10 de diciembre, a las 12 horas, un acuerdo de
colaboración en el marco del programa de innovación educativa Escuela
2.0.

Enlace  oficial

Que ven en el entorno político que no les convence el uso del Software Libre, la falta de una entidad que les de una garantía, si no invierten para que se pueda crear... En España ya tenemos muchas empresas que son partners de Ubuntu y con certificaciones emitidas por Canonical. ¿Qué es lo que no convence? OpenOffice es una suite que no tiene nada que envidiar al resto.

Pero para asegurar el cargo a veces es mejor firmar con el grande, antes que tomar una decisión arriesgada (para el mundo de la política). Para la foto siempre queda bien tener detrás un logotipo de una gran corporación...

Actualizado

Imagen del momento, gracias a despuesdegoogle.comacuerdo_microsoft_educacion

7dic/092

¿Por qué usar Symfony?

Empezaremos por 10 razones por las que una empresa debería utilziar Symfony Framework en sus desarrollos de PHP, citando:

  1. Escalable: Symfony es infinitamente escalable si se disponen de los recursos necesarios. Yahoo utiliza Symfony para programar aplicaciones con 20 millones de usuarios y 12 idiomas ¿de verdad necesitas más?
  2. Probado: Symfony ha sido probado con éxito durante varios años en aplicaciones muy diferentes. Desde sitios web con millones de usuarios (del.icio.us, Yahoo Bookmarks, Yahoo Answers) hasta otros miles de sitios pequeños y medianos.
  3. Soporte: Symfony sigue una política de tipo LTS (long term support). Las versiones estables se mantienen durante 3 años sin cambios pero con una continua corrección de los errores conocidos. Tus clientes estarán siempre contentos y a ti no te costará nada hacerlo.
  4. Licencia: Symfony utiliza una licencia MIT, con la que puedes hacer aplicaciones web comerciales, gratuitas y/o de software libre.
  5. Compromiso: la empresa que ha creado Symfony no vive del framework, sino de las aplicaciones que hace con él. Esto significa que a ellos les interesa tanto como a tí aspectos como el rendimiento, la buena documentación, el soporte muy largo, etc.
  6. Código: Desde su primera versión Symfony ha sido creado para PHP 5, desechando la versión PHP 4 (que ha sido declarada obsoleta recientemente). Echa un vistazo a su código fuente y verás lo bien que se puede llegar a programar con PHP.
  7. Seguro: Se puede controlar hasta el último acceso a la información e incluye por defecto protección contra ataques XSS y CSRF.
  8. Documentado: se trata del framework PHP mejor documentado: miles de páginas en el wiki oficial, tutoriales de hasta 250 páginas y un libro gratuito de casi 500 páginas. Además, el libro está completamente traducido al español.
  9. Calidad: su código fuente incluye más de 8.000 pruebas unitarias y funcionales. ¿Vas a jugártela utilizando otro framework con pocas pruebas unitarias o que ni siquiera las utilice?
  10. Internacionalización: Se pueden crear aplicaciones en varios idiomas. La internacionalización está integrada en el framework, funciona bien, sigue los estándares (XLIFF), es muy completa y está probada en aplicaciones reales.
¿No has terminado de convencerte? El aplicar una una hoja de estilo para desarrollo, no siempre es sencillo y si tienes un gran equipo es más complicado. Todo programador tiene sus manías, sean buenas o malas, pero todos sabemos identificar el código fuente de un compañero de trabajo tras haber colaborado en algún proyecto.
A la hora de codificar en Symfony inculca las buenas prácticas a la hora de desarrollar, donde no encontrarás deberías encontrarte una consulta a pelo, si no que tiene que pasar siempre por su ORM y en las acciones de los módulos sólo la lógica de los objetos. Si, parece muy sencillo decirlo pero cuando somos pocos y estamos todos de acuerdo no hay problema, pero y cuando no es así...
Es un Framework CRUDL, pensado para el desarrollo ágil y es divertido programar con él ya que no tienes que "preocuparte" por cosas básicas y repetitivas que podemos ir desarrollando en uno y otro y otro proyecto :-) , sólo la lógica!
Vale, todavía no... que prefieres Zend porque el framework es el "Oficial". Convencete que lo oficial no siempre es lo mejor, tampoco es que sea malo pero compara:
- La documentación de Zend no es tan extensa como la de Symfony.
- Zend tenía su propio ORM, pero se ha dado por vencido y va a implantar Doctrine.
- El abandono del ORM própio de Zend fue por falta de "potencia de desarrollo", la comunidad de Symfony es más grande, más fuerte.
- Si, en internet todos andamos con el Inglés para arriba y abajo... pero la documentación de Symfony está en varios idiomas, y su comunidad es muy activa.

Todavía no estás convencido? bien, la mejor manera es que analices tus necesidades y te pongas con la documentación de Symfony, el libro está muy bien pero donde más rápido vas a ver su potencia es en su ejemplo práctico Jobeet. Cuéntame tu impresión cuando estés en el 5º capítulo :-D

Etiquetado con: , , 2 Comentarios
4dic/092

Sintetizar texto a voz con Festival en Web

En este post doy por hecho que sabemos hacer la instalación del servicio de Festival en nuestro equipo linux, si no es así siempre podéis pasar por Festival, de texto a voz en linux.

Después de unos post "filosóficos" hoy pasamos nuevamente a la parte ténica, en donde con un par de ficheros podremos generar un fichero mp3 sintetizado con Festival mediante un texto de un formulario web.

El ejemplo que expongo a continuación es una página web sencilla que tras rellenar el texto en un textarea lo envía a si misma y retorna la descarga de un fichero mp3 con el texto sintetizado, siempre que tengamos el servicio de festival configurado.

El ejemplo de página web sería:

<?php
if($_POST['texto']){
   $filename = md5($_POST['texto']);
   $txtFile=$filename;
   $mp3File=$filename.".mp3";
   $fp = fopen($txtFile, 'w');
   fwrite($fp,$_POST['texto']);
   fclose($fp);
   exec("./lanza.sh $txtFile");
   if(file_exists($mp3File)){
      $fp = fopen($mp3File,'r');
      if (filesize($mp3File)) {
        $mp3 = fread($fp, filesize($mp3File));
      }
      fclose($fp);
   }
   if(isset($mp3)){
      header('Content-Type: audio/x-mp3');
      header('Content-Disposition: attachment; filename="'.$mp3File);
      header('Content-Length: '. filesize($mp3File));
      echo $mp3;
      unlink($mp3File);
      unlink($txtFile);
   }
}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
 <head>
   <title>Demo</title>
 </head>
<body>
 <h1>Demo</h1>
 <form action="" method="post">
   <textarea name="texto" rows="10" cols="50"></textarea>
   <br />
   <input type="submit" name="enviar" value="enviar" />
 </form>
</body>
</html>
<?
}
?>

Como podemos ver, lanzamos un script para generar el fichero mp3, que es la parte más importante ya que cualquier programador y más si hablamos de alguien experto en PHP puede observar que el código es realmente sencillo. Pero lo más divertido fue crear el script sh para generar el fichero mp3.

#!/bin/sh
TEXT=`cat $1`
PAR1="(Parameter.set 'Wavefiletype 'riff)n"
PAR2="(let ((utt (Utterance Text "$TEXT"))) (begin (utt.synth utt) (utt.save.wave utt "$1.wav"))) n"
echo Inicio festival!
echo $PAR1$PAR2 | festival -b --pipe --language spanish
lame -hf $1.wav $1.mp3
rm $1.wav

Aquí en el script, lo que hacemos es indicarle a Festival que la salida la queremos en un fichero Wav. De todas formas no tenemos todo resuelto! tenemos que generar el mp3, y con lame lo hacemos de una manera sencilla :-)

Espero que os pueda ser de utilidad esta mini-receta, cualquier duda siempre podéis plasmarla en un comentario.

Etiquetado con: , , 2 Comentarios
3dic/091

La SGAE, visión de negocio seguro

Que visionario fue el creador de SGAE, una empresa privada con competencias juridicas administrativas amparada por la ley y la que impone el importe sancionador para llenar su cuenta de capital.

No todos los derechos de autor por los que SGAE cobra y/o sanciona, son reportados al autor en cuestión. Incluso cuando el autor niega el derecho de cobro, todo el mundo conoce el famoso caso de un concierto benéfico donde el autor no cobraba y la SGAE quería sacar tajada!

Lo peor de todo esto es que el dinero que se recauda, el famoso canon por cada dispositivo con capacidad de almacenamiento digital, es para una entidad privada.

Si ya estamos pagando un canon por todo, ¿estamos pagando los derechos de autor de las obras que se puedan consumri de manera ilegal? por lo tanto, ¿tenemos derecho a consumirlas?

Lo que me parece una vergüenza es que sea una entidad privada la que pueda recaudar estos impuestos, y no la administración pública. Aunque podamos estar o no de acuerdo con pagar un canon, por lo menos lo recaudado iría a parar a las arcas del estado, teniendo más fondos para subvenciones, inversiones... etc... Pero de esta manera lo que hacemos es llenar los bolsillos de unos pocos gracias a la contribución de todos.

Si tengo que estar pagando un canon, preferiría que el cobro lo hiciera la administración antes que una entidad privada. Sólo tenemos que hacer una búsqueda en Google para ver el conformismo general.

Etiquetado con: , 1 Comentario
2dic/090

Desarrollo web orientado a servicios

Aunque no me considero de los "viejos" en Internet está claro que todo el que está envuelto en el desarrollo de aplicaciones web y/o usuario de los "últimos" servicios disponibles se estará dando cuenta.

Facebook, en su día fue una novedad y es cierto que ahora tiene muchos usuarios registrados y en donde puedes encontrar a mucha gente al igual que mantenerte en contacto. Pero entrar en Facebook es una locura, que si fulanito es tal pelicula... No obstante el post no va orientado hacia la funcionalidad de Facebok.

Tengo claro que el "futuro" de los desarrollos de aplicaciones web y/o servicios sociales tienen que tener una orientación a servicios web. El ejemplo claro lo podemos encontrar en Twitter. Una aplicación Web que tras publicar un API para desarrollar, la comunidad de desarrolladores y/o empresas de software le han sacado partido lanzando un sinfin de aplicaciones y widgets para el uso del servicio. No solo hace más cómodo en parte el utilizar este servicio, si no que deja a la mano del usuario final como quiere utilizarlo.

Estoy seguro que si para utilizar Twitter sólo se pudiera mediante su web, el éxito no sería tan rotundo!

No sólo de aplicaciones web sociales vive el hombre! también de productos, ya no tanto los desarrollos a medida que hasta hace un par de años era lo que se imponía en el desarrollo de aplicaciones o páginas web a nivel corporativo. Ahora se busca la estandarización y la creación de un producto que agilice la tarea. Aquí es donde viene el tema!

Si un producto web lo orientamos a servicios, teniendo "mini" productos Web descentralizamos el servicio y su mantenimiento. Todo esto no solo condiciona el desarrollo si no también la infraestructura que lo soporte.

Está muy al día el conceptualizar a la Web 3.0 como la Web Semantica, pero creo que antes de llegar hasta la Web Semantica tenemos que tener "un Internet" más usuable, más accesible sin depender de dispositivos/ordenadores en particular. Una revolución en la comunicación tiene que venir dada por la estrategia de los proyectos que verán la luz en Internet.

Page optimized by WP Minify WordPress Plugin