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.
¿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...
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! ![]()
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
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.
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.
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.com
¿Por qué usar Symfony?
Empezaremos por 10 razones por las que una empresa debería utilziar Symfony Framework en sus desarrollos de PHP, citando:
- 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?
- 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.
- 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.
- Licencia: Symfony utiliza una licencia MIT, con la que puedes hacer aplicaciones web comerciales, gratuitas y/o de software libre.
- 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.
- 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.
- Seguro: Se puede controlar hasta el último acceso a la información e incluye por defecto protección contra ataques XSS y CSRF.
- 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.
- 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?
- 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.
- 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 ![]()
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.
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.
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.

