sábado, 21 de noviembre de 2009

Social Media - Asuncion Digital Week - Paraguay

He vuelto nuevamente luego de muuucho tiempo

En esta ocasion les traigo un video que rescate gracias a Vivian, filmada por Randallflag (alias de Adrian) del Asuncion Digital Week, este en particular filmado el dia 19 de Noviembre (de 2009).

Y me parecio muy importante poder compartirlo con Uds.




Es muy importante que los empresarios, y la gente en general empiecen a tomar conciencia de lo importante del social media.

Saludos!.

viernes, 11 de septiembre de 2009

Carlos Zayas Guggiari: Un debate con consenso conocido

Carlos Zayas Guggiari: Un debate con consenso conocido

Creo que merece la pena que esto sea leido por todos ya que la libertad es un derecho de todo ser racional (e inclusive aquellos que creen serlo pero no lo son).

Yo personalmente prefiero las licencias basadas en BSD, ya que para mi opinion son las mas libres, aunque el objetivo fundamental de la licencia GPL es que el software libre y sus derivados continuen siendolo, pero para mi ya queda a cargo del que implementa dichos codigos, yo normalmente lo dejo como se diría, "a conciencia".

Pd. creo que la frase que saque en el primer párrafo es de la película Transformers y fue enunciada por Optimus Prime.

martes, 11 de agosto de 2009

Servidor SVN con usuarios y permisos de repositorios

Hola nuevamente, recientemente he abierto un nuevo blog que se dedicará netamente a lo que es php, dicho blog cuya direccion es http://aprendefacilphp.blogspot.com/ será entonces el lugar donde publique mis codigos de php y muestre lo poco que sé. ;P

Bueno, para empezar con nuestro tema quisiera darles una breve explicación de lo que es el SVN o Sistema de Control de Versiones, este sistema fue "diseñado" para sustituir al CVS (Sistema Concurrente de Versiones). Lo que permite es que varias personas trabajando en un mismo proyecto (ya sea de programación o no) puedan escribir sus respectivos archivos, realizar modificaciones e inclusive solucionar problemas sin temor a que se sobre-escriban los fuentes. Por ej. Yo tengo dos compañeros mas de trabajo, y todos estamos trabajando en un proyecto de desarrollo web, cada uno de nosotros trabaja en un área específica, pero a veces uno encuentra un problema en el código del otro y lo soluciona, pero que ocurre si el otro estaba trabajando en el mismo archivo, pues ahi es donde surge el sistema, Cuando alguien empieza a trabajar en un archivo (en este caso existente) al descargarlo se dice que se descargó en un número de versión digamos en este caso el 89 y al mismo tiempo mi compañero tambien descargó ese mismo número de versión, cuando yo suba mis modificaciones (ya que lo hago primero) el archivo pasará a la versión 90, y cuando mi compañero quiera subir sus cambios, el sistema le notificará que hay una versión mas reciente y que el archivo que el descargó tiene una anterior, notificándole asi que puede haber un conflicto, normalmente el sistema descarga ambos archivos y permite al usuario "corregir" o tomar los cambios de uno sin afectar al otro, una vez solucionado se suben los nuevos cambios y el archivo pasa a pertenecer a la version 91. Ese es sólo un ej. Hay varios mas así por ejemplo, podemos tener branchs o saltos o ramas de versiones que a partir de un número determinado sigue en paralelo al otro, esto por ej, cuando se desarrollan sistemas para clientes, y necesitan ser iguales en la base pero diferentes en algunos detalles, pues este sistema lo facilita, asi como tambien luego permite hacer un merge o mezcla de ambos para obtener una version conjunta de ambos. Bueno, no seguiré explicando porque se hará muy largo esto, no soy muy bueno con la teoría así que les sugiero pregunten a papá google que pueden hacer con el SVN y prueben, que echando a perder se aprende ;P

Bueno, luego de mucho tiempo de haber puesto en práctica este tutorial http://slackdhabyx.wordpress.com/2007/08/28/activar-subversion-con-apache-en-slackware-12/ siempre quise que pudiera haber un cierto tipo de limitación de acceso a los usuarios, es decir. Por ejemplo:

Tengo 7 repositorios con software que es de mi empresa, pero quiero sacar un nuevo proyecto público(nótese que en este caso uso proyecto como repositorio indistintamente) pero quiero que participe más gente y no quiero montarlo en otro servidor, quiero que esté en el mio. Pues como lo tenia según ese tutorial no lo iba a poder hacer, ya que una vez que creo el usuario, este puede acceder a cualquiera de los proyectos y descargarlos sin problemas, pues entonces me puse a investigar con google y econtré este otro tutorial http://svn-access-mana.sourceforge.net/ que sugiere que use un archivo de limitacion de acceso al usuario(no sólo al repositorio sino que inclusive a una carpeta solamente), con este archivo pues, se me facilitó todo, pues puedo restringir el acceso tanto de lectura como de escritura por repositorio.

Bueno a continuación pongo como tengo estructurado mis archivos de configuración:
en mi archivo de configuracion del apache ademas de los modulos del svn que se cita en el primer blog pongo el codigo de la siguiente manera

<Directory "/repositorio/svn">
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Location /repositorios>
DAV svn
SVNParentPath /repositorio/svn
#nueva linea
AuthzSVNAccessFile /etc/svn/users-access-file
#fin de nueva linea
SVNListParentPath on
AuthType Basic
AuthName "Repositorio SVN"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
Con esa "nueva linea" que se agregó permito que se restrinja el acceso a los usuarios definidos en el archivo de autenticación svn

y a continuación pongo el script de configuración
/etc/svn/users-access-file

[/]
* =
[repo1:/]
p431i7o = rw
user2 = rw
user3 =
[repo2:/]
p431i7o = rw
user2 = r
user3 = r
[repo3:/]
p431i7o = rw
user2 =
user3 = r
  • con esto en la repo1 tanto yo como el user2 tenemos permiso de lectura y escritura mientras que se le deniega el acceso al user3
  • en la repo2 todos tenemos permiso de lectura pero solo yo puedo escribir
  • y en la repo3 podemos leer solamente el user3 y yo luego el user2 no puede acceder

Puede parecer una pequeñez esto, pero me llevo como 2 horas encontrar esta respuesta (luego de habermelo propuesto) y creo que esto a alguien le servirá.

Una vez mas recomiendo leer previamente el primer blog, para poder tener montado el servidor svn y un repositorio de ejemplo, luego ya podran continuar con este ejemplo :)

Si te gustó el post pues deja un comentario, y si no te gustó igual déjalo que con críticas constructivas podemos mejorar el mundo :)

jueves, 9 de julio de 2009

Aplicaciones p2p en java con JXTA

Hola amig@s del mundo, me he decidido nuevamente a publicar un texto despues de un largo tiempo (espero no haya sido demasiado), pero quiero mantener este espacio y para hacerlo hay que publicar ;p

Bueno, a lo que vine, actualmente estoy trabajando en lo que vendria a ser mi proyecto de final de grado, tambien conocido como tesina o tesis dependiendo del contexto en el que hablemos. El programa en el que estoy trabajando tendrá que ver con el uso de aplicaciones en p2p y para ello voy a utilizar la libreria JXTA, uso el termino libreria porque creo que es el mas apropiado, ya que para ser considerado un framework creo que le faltaria un poco mas de "maduración".

En fin, me he topado con un tutorial de esta libreria a principios de este año (2009) y lo he estado leyendo "lentamente" y de hecho varias veces "interrumpido" por los quehaceres de todos los dias.

Para los que no conozcan, les explicaré en la forma que yo entendí, lo que hace el JXTA, ahora que me acuerdo, siempre lo mencionan como la "Especificacion" ya que pretende ser la base para el desarrollo de aplicaciones p2p, y desenmarañar la forma en la que estas se desarrollan, ya que casi todas las aplicaciones, desarrolladas por diferentes programadores o grupos de estos, lo hacen "a su manera" y lo que tenemos como resultado es que todos "reinventan la rueda" una y otra vez para lograr la conectividad y ese tipo de cosas (disculpen mi poco tecnisismo).

Entonces como decia, lo que pretende es establecer las normas y estandares como para que a partir de la especificacion, se pueda desarrollar en los distintos lenguajes (C,C++,java,python,etc), para demostrar el funcionamiento de la especificación se eligió java, no me pregunten porque ni quien/es lo decidió/eron.

Bueno, como dije en un principio, yo tome la decisión de hacer mi proyecto en java y utilizar esta especificación como base para esta, actualmente sigo con la investigación de como funciona, luego de tener un pequeño y tonto tropezon (leia un tutorial para la versión 2.4 utilizando la libreria 2.5) supongo que por tonto perdi unas cuantas horas procurando hacer funcionar los ejemplos, pero no todo es malo, sirvió para entender algunos pasos que dieron para llegar a la versión 2.5 y entender "como funcionan" algunas de las partes que lo integran.

Luego de esto tengo planeado desarrollar una aplicación basica de interconexion entre dos computadoras a través de internet y transmitir mi primer "hello world" o "hola mundo!" junto con algún fichero que me encuentre por ahi.

El funcionamiento, aclaro como yo entiendo hasta el momento, es el siguiente.
Todas las comunicaciones son a través de los llamados adversitements que se transmiten utilizando siempre XML.

Existen varios protocolos que dominan el funcionamiento, y estos son:
* PDP (Peer Discovery Protocol) - utilizado por los peers para anunciar sus recursos por ej. otros peers, grupos de peers, pipes (canales de comunicacion) o servicios.
* PIP (Peer Information Protocol) - utilizado por los peers para obtener información de estado (tiempo online, estado, tráfico reciente, etc) de otros peers.
*PRP (Peer Resolver Protocol) - Permite a los peers enviar una consulta genérica a uno o más peers y recibe una respuesta (o multiples) a la consulta. Estas pueden ser dirigidas a todos los peers, a un grupo de peers, o a un conjunto selecto dentro de este. A diferencia del PDP y PIP, los cuales son usados para consultar informacion específica y predefinida, este protocolo permite a los servicios del peer definir e intercambiar información de forma arbitraria como se necesite.
* PBP (Pipe Binding Protocol) - Usado por los peers para establecer una comunicación virtual, o pipe, entre uno omas peers. El PBP es usado por un peer y ligado a dos o mas conexiones finales (pipe endpoints)
* ERP (End point routing protocol) - Usado por los peers para hallar rutas (caminos o path) a los puertos de destino de otros peers. La información de ruteo incluye una ordenada secuencia de ID's de peers repetidores que pueden ser usados para enviar un mensaje al destino. (Por ejemplo, el mensaje puede ser entregado al Peer A el cual lo repite al Peer B, que lo reenviará al destino final).
* RVP (Rendezvous Protocol) - Usado por los 'Edge Peer' (creo que son peers que se encuentran al final de una ruta, tras un NAT o un firewall) para resolver recursos, propagar mensajes, y anunciar recursos locales. Usado por los peers rendezvous para organizarse con otros peers rendezvous, compartir la tabla hash distribuida de espacio de direcciones, y propagar mensajes de forma controlada.

NOTA: esta lista y descripcion de protocolos lo extraje y traduje de la guia para programadores hecha por SUN microsystems. Link a la guia aqui.

Como no he encontrado mucha informacion o ejemplos complejos de esta especificacion en java pretendo cuando termine mi proyecto publicarlo bajo licencia libre, quizas GPL o BSD, no se aun, de hecho no he revisado la licencia bajo la cual se libero la especificacion en java, tendré que adaptarme a ella quizas. Pero si publicare los fuentes que yo cree para hacer mi aplicación, y en sucesivos post ire mostrando mis avances.

Llegando a la parte final de este post les ruego, que si consiguen mas informacion (comunidades, ejemplos, informacion o lo que sea referenciado a esto) publiquen un comentario con esa información, no solo me ayudaran a mi sino a todo aquel que luego busque mas información al respecto.

Me despido nuevamente hasta una proxima publicacion.

martes, 21 de abril de 2009

Entretenimiento Virtual

Hola amigos...
hace mucho que no publico nada, y hoy se me ocurrio contarles de un sitio que un par de amigos me han recomendado visitar, y creo que está bastante bueno ver
se trata del sitio
este sitio es uno bastante original, se trata de un sitio de peleas virtuales, pero con la excepcion de que no hacemos nada realmente, cada jugador tiene unas habilidades basicas iniciales y algunas veces con alguna arma...
Luego de haber escogido al jugador/a y cambiar su look, esta listo para "desafiar" a algun otro participante en una pelea.

Cada jugador va subiendo de nivel y ganando puntos de experiencia segun vaya juntando peleas de este tipo.Asi se pueden tener hachas, barras, cuchillitos, espadas, tridentes, redes e inclusive puedes tener alguna mascota que te ayude durante la pelea.

Realmente al comienzo tengo que ser sincero,no me atrajo ni un poquito, luego le di una segunda oportunidad y me cayo mejor... luego de las tres primeras peleas ya empece a ver porque le gustaba a la gente.

Les recomiendo lo visiten, aqui tienen un enlace donde pueden encontrar mi usuario para "desafiarme" jaja... http://p431i7o.elbruto.es

Espero les guste, no les explico todo lo que tiene (doyos, torneos, historial de peleas...etc) porque no tengo muchas pilas hoy


Saludos..

jueves, 12 de febrero de 2009

Mack 3

Se viene el Mack 3
Manga
Anime
Cosplay
Karaoke
3 Edicion

Se llevará a cabo los dias 28 de febrero y 1 de marzo (un dia antes de mi cumple) jeje
Lugar: Centro Paraguayo Japones

Hora: desde las 14
Entradas Anticipadas: 25000 Guaraníes (por los dos dias)
Entradas Generales: 15000 Guaraníes

Habrá concursos de Cosplayers, karaokes, muchos mangas, dibujos y comidas japonesas


Para contactos pueden hacerlo con
- Diego:
msn: dieguiariel@hotmail.com,
Gtalk: dieguiariel@gmail.com
Cel: 0961814834

-Mahoro:
msn: josefinadedasso@hotmail.com
gtalk: rosajosefina@gmail.com
Cel: 0961675476

No se lo pierdan, vayan agendandolo para esas fechas...

jueves, 22 de enero de 2009

Gestor de Contenidos CMS basado en CodeIgniter

Buenas Nuevas amigos de la red!!!

En el grupo de codeigniter en español link ha surgido la idea de construir nuestro propia version de un gestor de contenidos (CMS) para que tengan una idea, pueden pensar en algo como joomla!, drupal, post-nuke, etc.

La idea surgió luego de un post del compañero Marcelo Espinola, esto todo paso a una votacion en el grupo donde se decidió desarrollar la propia version del grupo de un CMS.

El proyecto por el momento se llama codeigniter-es-cms y puede ser encontrado en google code. Link

En el momento que este lista las primeras versiones del sitio en su version beta, creo que sera publicado en el sitio www.codeigniter.com.es o en algun sitio que el grupo decida.

Es muy entusiasmante la idea, en especial para mi, ya que yo en el pasado (un año atras aproximadamente) comence un proyecto similar, pero solo desarrollado por mi para el Centro de Informacion y Cultura CIE. Link.

Este sitio ya cuenta con sistema de articulos, calendario de eventos, encuestas, suscripcion a boletines mensuales, Enlaces de interes organizados por categorias, servicios ofrecidos instituiciones de distintos ramos organizados por categorias, y un sistema de feed para los articulos publicados.

Obviamente es un sistema bastante sencillo pero me llevo como 4 meses desarrollarlo. Pero creo que esta idea de crear un CMS propio es una de las mejores que hemos tenido. Combinará todos los conocimientos que poseemos tanto del mismo framewor CI, asi como de gestores de contenidos que conocemos, en mi caso, joomla! y PostNuke, junto con los conocimientos que tenemos de javascript, css, ajax y php en general.

Todavia no tenemos una fecha de desarrollo inicial, y muchos menos para el rc (release candidate), ni siquiera que objetivos a corto plazo debera tener el sistema, pero, la rueda ya esta girando, es solo cuestion de tiempo para que ganemos velocidad.

Con el paso del tiempo ire publicando los avances que tengamos.

Saludos amigos!