ISDBT en Linux

May 21st, 2010

Mirar televisión en un computador no es nada nuevo a estas alturas, por muy pocos dolares podemos conseguir capturadores de video para PC muy buenos y evitarnos gastar cientos de dolares en un simple televisor. Ademas con esto del ISDBT podremos mirar televisión en cualquier lugar sin la necesidad de cables, por ello si poseemos una notebook deberíamos contar con algun dispositivo de recepción.

Mirando un poco me encontré de que ya hay unos dispositivos compatibles con el querido Linux que reciben bien las señales enviadas por TVPublica en nuestro país. Si visitamos http://www.linuxtv.org/wiki/index.php/ISDB-T_USB_Devices podremos ver una lista de dispositivos USB compatibles con la norma ISDB-T que funcionan sobre Linux. Ahora la pregunta sería cual de ellos soporta el SATVDt (nuestra versión de ISDBT), según gente que tiene la suerte de estar bajo la zona de cobertura, y que probó con algunos de estos dispositivos, dice haber tenido exito con el “Geniatech/MyGica SBTVD Stick S870“.

Este dispositivo se consigue por mercado libre y ronda los 90 Dolares.

Hernan Ordiales cuenta en una lista de correo que tuvo que realizar los siguientes pasos para lograr una configuración éxitosa.

Confirmo que el dispositivo que mencioné ayer
(Geniatech/MyGica SBTVD Stick S870) funciona perfectamente en linux.

Comento lo que tuve que hacer en un ubuntu karmic. Fundamentalmente
seguí lo que decia en esta página:
http://acassis.wordpress.com/2009/09/18/watching-digital-tv-sbtvd-in-the-linux/

más el tema de editar el .config del driver

== Instalar driver ==
(si no se tiene el paquete de mercurial, instalarlo antes)

$ hg clone http://linuxtv.org/hg/v4l-dvb
$ cd v4l-dvb
(Editar el archivo v4l/.config y reemplazar ‘CONFIG_DVB_FIREDTV=m’ por
‘CONFIG_DVB_FIREDTV=n’)
$ make
$ sudo make install

Nota: En esta web
http://linuxtv.org/vdrwiki/index.php/DVB_installation#Requirements_2

explican otra forma de instalar el módulo (driver) para el kernel.

== Sintonizar canales ==
Con esto estuve un buen rato. Ni el vlc, ni el kaffeine me encontraron
canales al hacer la búsqueda. Esto lo solucioné de la misma forma que
en la web que pasé unas líneas antes. Cree un archivo con las
frecuencias de los canales UHF en ch_freq.conf y luego hice un:

$ scan ch_freq.conf > channels.conf

(adjunto estos 2 archivos por si les sirven a alguien)

Luego con ‘vlc channels.conf’ obtuve en la playlist los 4 canales que
detectó el paso anterior, TV Pública SD, HD y 1seg y canal Encuentro
SD.

Se ve perfectamente, el único problema que tengo es que el canal HD se
ve con algunos saltos, pero no se si se debe a que mi máquina no se
esta bancando la tarea de descomprimir con ese codec y a esa
resolución, no parece ser problema del dispositivo ni de la
transmisión (al forzar los 2 procesadores para que trabajen a su
máxima frecuencia, la situación mejoró). El control remoto no lo probé
aún, pero calculo que habrá alguna forma de hacerlo funcionar.

Espero tengan suerte en su instalación y que pronto llegue la cobertura a mi zona :D .

  • Share/Bookmark

Cerca del Final !

April 23rd, 2010

Solo faltan 4 capitulos, como será la vida sin LOST :( . Los dejo con el spot ganador del concurso de la ABC.

  • Share/Bookmark

Curso de Desarrollo Web con PHP

April 16th, 2010

Tengo la alegría de contarles que con la ayuda de la UTN-FRRE estoy pronto a largar una nueva edición del curso de desarrollo web con PHP5, esta vez con la ayuda y colaboración de mi colega Marcos Ibañez.

El temarío fue preparado en base a lo visto en los cursos del año pasado y la experiencia adquirida en el mismo. Nuevamente el curso será dividido en dos partes, incial y avanzado, comenzando la etapa inicial el día 27 de abril.

El temario para la etapa inicial es el siguiente

  1. Introducción al Desarrollo Web
    • La Internet (Direcciones IP, Servicios de Nombre, Servidores Web, Bases de Datos, Browsers, Hostings).
    • El protocolo HTTP
    • El estándar HTML
    • Arquitectura de Aplicaciones Web
    • LAMP
  2. HTML
    • Estructuras de documentos HTML
    • Los estándares de la w3c
    • DOM
    • Tags HTML
    • Formularios HTML
  3. CSS
    • Introducción a las Plantillas de estilo
    • Selectores CSS
    • Aplicar estilos con CSS
    • Inclusión de plantillas de estilos
  4. Introducción a PHP
    • Presentación del Lenguaje
    • El Entorno de Trabajo (Apache, Mysql, Netbeans)
    • Variables y Tipos de Datos
    • Variables Predefinidas
    • Entrada y Salida
    • POST, GET
  5. Estructuras de Datos y Control
    • Condicionales
    • Iterativas
    • Includes y Requires
  6. Funciones
    • Invocación de Funciones
    • Definición de Funciones
    • Alcance de Variables
    • Parámetros por Valor y Referencia
    • Valores de Retorno
    • Funciones Integradas
  7. Diseñar aplicaciones con PHP
    • Organizar el Proyecto
    • Organizar los componentes del sitio
    • Utilizar librerías
    • Utilizar Layouts y Master Pages

La idea es que el alumno conozca las bases para desarrollar sites dinámicos sencillos y posea sólidos conocimientos para continuar su autoaprendizaje en el mundo de PHP5.

La segunda etapa pretende consolidar estos conocimientos añadiendo técnicas avanzadas como la Orientación a Objetos y la interacción con bases de datos Relacionales.

El temario de la segunda etapa es el siguiente.

  1. Bases de Datos Relacionales
    • Introducción al Modelo Relacional
    • Tablas, Atributos, Relaciones
    • Diseño de Modelos de Datos
  2. SQL y MYSQL
    • Lenguaje de Consulta estructurada
    • Creación de Bases de Datos, Tablas, y operaciones con las mismas a través de SQL.
  3. Interacción con MySQL desde PHP
    • Utilización de las API’s para interactuar con bases de Datos con PDO
    • Creación de aplicaciones con backend de datos
  4. Interacción con Formularios
    • Interactuar con Formularios HMTL
    • Controles
    • Inputs y Textarea
    • Selects y Selects Múltiples
    • Radio Buttons
    • Checkbox
    • Lectura de los parámetros del formulario y validación
    • Persistencia de los Datos en MySQL
    • Listados
  5. Sesiones
    • Manejo de Sesiones y Cookies
    • Creación un Login de Usuarios
  6. Orientación a Objetos
    • Definición de Clases
    • Definición de Métodos y Métodos Mágicos
    • Manipulación de Objetos
  7. Orientación a Objetos Herencia y Polimorfismo
    • Herencia
    • Interfaces
    • Polimorfismo

Estan todos invitados a participar del curso, con solo tener alguna noción de algoritmía y programación alcanzará para que pueda aprender todos los conceptos del curso

Los horarios del curso serán por la mañana o por la tarde

- Martes y Jueves de 14:30 a 17:30
- Martes y Jueves de 9:00 a 12:00

El costo del curso será de :

- Alumnos de la UTN : $ 250 por etapa

- No alumnos de la UTN : $ 300 por etapa

Las inscripciones se realizán en:

Inscripción: Alumnos U.T.N.: Secretaría de Asuntos Universitarios – F.R.Re. – U.T.N.
Público en general: Edificio Anexo – F.R.Re. – U.T.N. Av. French y Laprida – TE 426014
Lunes a Viernes: 8:00 a 12:00 / 16:00 a 21:00 hs

El curso tendrá vacantes limitadas, solo 15 alumnos por turno.

  • Share/Bookmark

Pixeles

April 8th, 2010

Un video Priceles, muy bueno. Me trajo tantos recuerdos, snif snif…

La informática ya no es lo que era.

  • Share/Bookmark

Curiosidades de Japon

April 6th, 2010

Muy interesate video sobre japon, vale la pena verlo.

  • Share/Bookmark

Pixart contra Microsoft

March 25th, 2010

Acabo de leer en Viva Linux que la empresa Argentina Pixart comandada por el señor Gabriel Ortiz esta levantando una disputa legal contra la empresa Microsft alegando malas prácticas comerciales. No voy a detallar mucho sobre el tema dado que pueden verlo en los siguientes links

http://www.vivalinux.com.ar/biz/pixart-vs-microsoft?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+vivalinux+%28VivaLinux!%29&utm_content=Google+Reader

http://www.dicosmo.org/MyOpinions/index.php/2010/03/19/98-microsoft-under-fire-in-argentina-it-faces-a-fine-of-more-than-50-million-euros-for-anticompetitive-activities

Pero me alegra mucho ver esta noticia; que las empresas de software del país peleen contra este gigante que coarta la posibilidad de crecimiento de los pequeños productores nacionales llevando un gran valor monetario a las arcas de EEUU. Yo no soy un rebelde que odie a los EEUU pero me parece una acción totalmente innecesaria comprar a Microsoft (o cualquier otra empresa extranjera) siendo que no tenemos un cobre partido al medio para pagar a los desarrolladores locales y contamos con muchas alternativas open source que si bien para muchos no estan a la altura de los productos privativos podría tranquilamente pagarse a desarrolladores locales para que maduren el producto según las necesidades locales.

  • Share/Bookmark

CSS3 en Navegadores

March 25th, 2010

Leyendo mis readers me encuentro con esta tabla donde muestra el nivel de implementación de CSS3 de los navegadores web más famosos hasta el momento. No hay mucho para decir al respecto, la tabla habla por si sola, pero podría cerrar con esto

“Bien Chrome!, IE vos siempre el mismo Hijo de Put…”

Aquí la tabla:

css3Compatibilidad

  • Share/Bookmark

Posiblemente la Próxima Debian Project Leader sea Argentina !

March 22nd, 2010

Voy a tratar de escribir este post pero la emoción que tengo adentro es increíble. Acabo de ver en Viva Linux que la señorita Margarita Manterola esta nominada para ser la próxima DPL.

Para los que no saben quien es Margarita les cuento que es una mujer que trabaja con Debian desde el año 2000, es desarrolladora activa del proyecto Debian desde el 2005 y es miembro activo de Debian Women. Tuve la suerte de conocer a Margarita en la Cafeconf del 2005 , en una charla que brindo sobre como ser desrrollador Debian, al entrar a la charla dije “uu, que sabrá la minita esta”, cuando salí de la charla prometí nunca mas volver a abrir la boca sin saber,  su conocimiento es increíble.

Lo mas importante de todo esto es que Margarita es Argentina, se imaginan que el Proyecto Debian sea coordinado por un Argentino (ina :P ), la verdad que un verdadero orgullo para el software libre y todos los profesionales de sistemas en el país. Podemos decir que esta a la altura de personajes como Ian Murdock, Bruce Perens entre otros.

Desde aca la mejor de las suertes !

Les dejo unos links para que la conozcan.

http://women.debian.org/profiles/#Margarita%20Manterola

http://www.vivalinux.com.ar/articulos/como-ser-una-chica-debian

http://www.marga.com.ar/blog/index.cgi

http://www.itwire.com/opinion-and-analysis/open-sauce/37652-a-debian-first-female-candidate-in-running-for-leader

  • Share/Bookmark

Comenzar un proyecto Symfony 1.2 desde un Sandbox

March 19th, 2010

Esta es una pequeña guía de como encarar un proyecto nuevo con symfony 1.2 desde un sandbox, sobre un sistema Debian, con Apache 2, MySQL corriendo localmente y que utilizaremos como ORM Propel.

Por mas que symfony 1.2 esta viejo para el equipo de Symfony dado que ya no lo tienen para descargar en si lista de downloads, decidí realizar esta guía por que todavía hay gente que lo usa y no piensa migrarlo por el momento. Si estas por empezar desde cero, cero, cero y quieres saber symfony te recomiendo que veas instalar la versión 1.4, esta guía no debería diferenciarse en mucho para esa versión.

Para este ejemplo suponemos que el proyecto se llama mysandbox.com, reemplazar por el nombre que les parezca. Asumimos que será un entorno de prueba y obviamos las medidas de seguridad para hacer más sencillo el ejemplo.

Empezamos

1 – Descargar el Sandbox http://www.symfony-project.org/get/sf_sandbox_1_2.tgz

2 – Copiarlo descomprimido a un directorio para configurar el Vhost de Apache P.Ejemplo : /var/www/mysandbox.com

3 – Configurar el Vhost de Apache para nuestro proyecto, en el caso de debian añadir la siguiente definición de vhost en un archivo dentro de la carpeta /etc/apache2/sites-enabled.

<VirtualHost *:80>
ServerName mysandbox.com
DocumentRoot “/var/www/mysandbox.com/web”
DirectoryIndex index.php
<Directory “var/www/mysandbox.com/web”>
AllowOverride All
Allow from All
</Directory>
</VirtualHost>

Reemplazar los mysandbox.com por el nombre de su directorio y nombre de dominio.

4 – Añadir el nombre dominio de proyecto en su tabla de hosts. En caso de tener el DNS apuntando a su server para el Vhost saltear este paso. En caso de GNU/Linux la tabla de hosts se encuentra en /etc/hosts, deberán añadir una linea como la siguiente.

127.0.0.1  mysandobx.com

Reemplazar mysandbox.com por el nombre de su dominio, el que debe ser igual a la definición de la directiva ServerName en la definición del Vhost.

5 – Reiniciar Apache

/etc/init.d/apache2 reload

6 – Setear los permisos de los archivos del vhost adecuadamente, para salir rápido del paso (SOLO EN DESARROLLO!)

chmod 777 /var/www/plughelp.com -R

NOTA: Para una asignación de permisos segura en un entorno de producción les recomiendo que vean http://articles.slicehost.com/2007/9/18/apache-virtual-hosts-permissions.

En este paso debería tener el sandbox casi listo, si entra en su navegador a la direccion del dominio debería ver la pagina por defecto del proyecto.

http://mysandbox.com

7 – Levantar la base en mysql

#mysql -u root -p #Luego ingresar la password

mysql>create database mysandbox_com;

8 – Configurar el acceso del sandbox a mysql. Para esto debe modificarse el archivo databases.yml y propel.ini

Database.yml : Recuerden que el YML lleva una identación especifica, en esta pagina puede ser altera la identación por ende no copien y peguen esto por que seguramente no les va a funcionar adecuadamente. Verfiquen y cambien los valores del YML que viene por defecto.

dev:
propel:
param:
classname: DebugPDO
test:
propel:
param:
classname: DebugPDO
all:
propel:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: ‘mysql://host=127.0.0.1;dbname=mysandbox_com’
username: root
password: tupass
encoding: utf8
persistent: true
pooling: true

Propel.ini

propel.targetPackage       = lib.model
propel.packageObjectModel  = true
propel.project             = mysandbox.com
propel.database            = mysql
propel.database.driver     = mysql
propel.database.url        = mysql://dbname=mysandbox_com;host=127.0.0.1
propel.database.creole.url = ${propel.database.url}
propel.database.user       = root
propel.database.password   = tupass

; mysql options
propel.mysql.tableType     = InnoDB

propel.addVendorInfo       = true
propel.addGenericAccessors = true
propel.addGenericMutators  = true
propel.addTimeStamp        = true
propel.addValidators       = false

propel.useDateTimeClass       = true
propel.defaultTimeStampFormat = d-m-Y H:i:s
propel.defaultTimeFormat      = H:i:s
propel.defaultDateFormat      = d-m-Y

propel.schema.validate        = false
propel.samePhpName            = false
propel.disableIdentifierQuoting     = false
propel.emulateForeignKeyConstraints = true

; directories
propel.home                    = .
propel.output.dir              = /var/www/production/sfweb/www/cache/symfony-for-release/1.2.10/sf_sandbox
propel.schema.dir              = ${propel.output.dir}/config
propel.conf.dir                = ${propel.output.dir}/config
propel.phpconf.dir             = ${propel.output.dir}/config
propel.sql.dir                 = ${propel.output.dir}/data/sql
propel.runtime.conf.file       = runtime-conf.xml
propel.php.dir                 = ${propel.output.dir}
propel.default.schema.basename = schema
propel.datadump.mapper.from    = *schema.xml
propel.datadump.mapper.to      = *data.xml

; builder settings
propel.builder.peer.class              = plugins.sfPropelPlugin.lib.builder.SfPeerBuilder
propel.builder.object.class            = plugins.sfPropelPlugin.lib.builder.SfObjectBuilder
propel.builder.objectstub.class        = plugins.sfPropelPlugin.lib.builder.SfExtensionObjectBuilder
propel.builder.peerstub.class          = plugins.sfPropelPlugin.lib.builder.SfExtensionPeerBuilder
propel.builder.objectmultiextend.class = plugins.sfPropelPlugin.lib.builder.SfMultiExtendObjectBuilder
propel.builder.mapbuilder.class        = plugins.sfPropelPlugin.lib.builder.SfMapBuilderBuilder

propel.builder.addIncludes  = false
propel.builder.addComments  = true
propel.builder.addBehaviors = true

9 – Con eso deberías tener listo tu sandbox para comenzar a programar. El metacomando de symfony puede usarse desde el root del proyecto con ./symfony

10 – Como Seguir, algunas de las cosas a saber. Puedes seguir esta guía desde el capítulo 4 del libro para continuar aprendiendo

http://www.symfony-project.org/book/1_2/04-The-Basics-of-Page-Creation

Otra alternativa es ver esta pequeña introducción

http://www.symfony-project.org/tutorial/1_2/en/my-first-project

Cosas que deberías dominar

- Definir el esquema

- Generar

- build-model

- build-forms

- build-filters

- build-sql

- build-schema

- data-load

- insert-sql

- Crear Aplicaciones

- Crear Modulos

- Limpiar la cache ./symfony cc

A symfonear

Les dejo este post en texto plano por si quieren ver los ejemplos tal cual como son sin problemas de identación Descarga

  • Share/Bookmark

Cambiar Tabs por espacios en VIm

March 19th, 2010

Después de programar un buen tiempo uno se da cuenta que los tabs no son muy piolas, y menos cuando uno edita un fuente con varios tipos de editores (Netbeans, VIm, Gedit, Kate, Quanta en mi caso) dado que cada editor interpreta el tab a su manera. Para ello la solución más sencilla es cambiar los tabs por espacios, es decir que al apretar tab se inserten un número de espacios representativos a un tab.

Para setear en VIm el tab por espacios deben añadir dentro su archivo de configuración (/etc/vim/vimrc)  las siguientes opciones

set expandtab
set tabstop=2

Con eso basta y sobra, cierren y vuelvan a abrir el editor de la bestia y listo.

Mas info en

http://vim.wikia.com/wiki/Converting_tabs_to_spaces

  • Share/Bookmark