<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog tech-nico.com &#187; Flash</title>
	<atom:link href="http://www.tech-nico.com/blog/category/programacion/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tech-nico.com/blog</link>
	<description>Informacion Tecnológica, Cultural y de la vida misma.!  Programacion Web: Ajax / XML / Php / Mysql / Flash MX / ActionScript / Javascript / CSS - WISP: Wi-Fi / Mikrotik / Ubiquiti / Routerboards / Seguridad.....</description>
	<lastBuildDate>Fri, 03 Feb 2012 22:23:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Flash CS3: Arma tu propio Datagrid con Tooltips</title>
		<link>http://www.tech-nico.com/blog/flash-cs3-arma-tu-propio-datagrid-con-tooltips/</link>
		<comments>http://www.tech-nico.com/blog/flash-cs3-arma-tu-propio-datagrid-con-tooltips/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 21:26:56 +0000</pubDate>
		<dc:creator>soporte</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[asp]]></category>
		<category><![CDATA[datagrid]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.tech-nico.com/blog/?p=216</guid>
		<description><![CDATA[Después de tanto tiempo sin postear, me decidí por traerles un Datagrid (Flash) que tuve que armar en un apuro cuando necesitaba terminar uno de mis trabajos. La aplicación era muy sencilla: Imprimir datos de un Stored Procedure de SQL Server, por medio de un archivito &#8230; <a href="http://www.tech-nico.com/blog/flash-cs3-arma-tu-propio-datagrid-con-tooltips/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Después de tanto tiempo sin postear, me decidí por traerles un Datagrid (Flash) que tuve que armar en un apuro cuando necesitaba terminar uno de mis trabajos. La aplicación era muy sencilla: Imprimir datos de un Stored Procedure de SQL Server, por medio de un archivito en ASP, que parseado por Flash mostrara datos en pantalla.</p>
<p>Y aquí fue donde se presentaron los contratiempos: Mostrar los datos en un Datagrid puede parecer algo sumamente sencillo. Pero, en mi caso, al ser tanta la cantidad de columnas que debía mostrar, si quería lograr algunos detalles como por ejemplo 1 tooltip, (o seleccionar el ultimo registro con otro color), se tornaba algo bastante inflexible.</p>
<p>El Datagrid nativo de Flash sinceramente me hizo perder bastante tiempo y no logre hacer nada de lo que quería. &#8220;Llenar el datagrid fue fácil, <del>el resto imposible</del> :p&#8221;. Supuse que alguien tenia que haber armado algo en la red. Pero no encontre nada.</p>
<p><img class="size-medium wp-image-218 alignleft" title="Aplicación terminada." src="http://www.tech-nico.com/blog/wp-content/uploads/2011/07/app_rian-300x225.jpg" alt="" width="300" height="225" /></p>
<p>Aqui va el datagrid creado.</p>
<p><strong>Es bastante mas liviano</strong> pero a la hora de configurarlo, (al no ser un componente), <em>hay que modificar mucho codigo</em>.</p>
<p><strong>A Futuro:</strong> Le falta pulir muchas cosas: Scroll vertical y horizontal y/o paginacion. Y armarlo como componente.</p>
<p>Creo que el uso es bastante puntual. Pero seguramente mas de uno ha perdido tiempo. Enjoy!.</p>
<p><a href="http://www.tech-nico.com/blog/Flash CS3 - Datagrid Propio.rar">Descarga de archivos</a></p>
<p>___________________</p>
<p>nicolas <a href="http://www.tech-nico.com/blog">Tech-nico.com/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-nico.com/blog/flash-cs3-arma-tu-propio-datagrid-con-tooltips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galeria de Fotos Flash II con Comentarios</title>
		<link>http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/</link>
		<comments>http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 20:00:15 +0000</pubDate>
		<dc:creator>soporte</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[fotolog]]></category>
		<category><![CDATA[guestbook]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.tech-nico.com/blog/?p=172</guid>
		<description><![CDATA[Por suerte la Galeria de Fotos en Flash y PHP (con thumbs GD) y lectura de folders tubo mucha aceptación; así que aquí va la &#8220;Versión del Galery en flash con comentarios&#8221; tipo fotolog Como varios me lo han pedido, aqui esta la version del galery en &#8230; <a href="http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Por suerte la <a style="color: #333333; text-decoration: none; display: block; font-weight: bold;" title="Galeria de Fotos en Flash y PHP (con thumbs GD) y lectura de folders." rel="bookmark" href="http://www.tech-nico.com/blog/galeria-de-fotos-en-flash-y-php-con-thumbs-gd-y-lectura-de-folders/">Galeria de Fotos en Flash y PHP (con thumbs GD) y lectura de folders</a> tubo mucha aceptación; así que aquí va la &#8220;Versión del Galery en flash con comentarios&#8221; tipo fotolog <img src='http://www.tech-nico.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Como varios me lo han pedido, aqui esta la version del galery en flash con comentarios.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">El sistema de comentarios se basa en 1 solo archivo PHP llamado guestBook.php que se conecta a la base de datos e interactua con flash como gateway para postar comentarios o leerlos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Tiene filtro de malas palabras, y para el que quiere tambien puede habilitar las lineas para que te avise por mail que alguien posteo un comment.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Con respecto a la base de datos: Esta hecho para mysql, y consiste de tan solo una sola tablita.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">CREATE TABLE `fotolog` (</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`name` CHAR( 200 ) NOT NULL ,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`nombrefoto` CHAR( 200 ) NOT NULL ,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`email` VARCHAR( 200 ) NULL ,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`comments` LONGTEXT NULL ,</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">`time` TIME NULL</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">) ENGINE = innodb COMMENT = &#8216;comentarios galery comment&#8217;;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">El funcionamiento es sencillo pero poco robusto <img src='http://www.tech-nico.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Como las fotos no estan en la base de datos; tome en cuenta el nombre de la foto como ID, por lo tanto hay que tener mucho cuidado con los nombres de fotos duplicados.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Ademas; como no hay ningun Admin para administrar la galeria o comentarios, si eliminamos una foto por FTP el comentario &#8220;no se elimina&#8221;, entonces van quedan registros perdidos en la tabla de la base de datos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Con una galeria que no tenga demaciado movimiento no va a haber problema (como fue en mi caso), pero si hay mucho trafico de fotos que se suben y se eliminan podria aparecer comentarios huerfanos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Configuracion:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Abrir archivo guestBook.php y modificar las lineas siguientes por las de tu base de datos.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$DBhost = &#8220;localhost&#8221;;   // servidor</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$DBuser = &#8220;root&#8221;;            // usuario</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$DBpass = &#8220;&#8221;;            // clave</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$DBName = &#8220;fotolog&#8221;;            // nombre base de datos</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$table = &#8220;fotolog&#8221;;             // nombre tabla base de datos</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$numComments = 5;       // cantidad de comentarios por pagina.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">To DO // Para hacer</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Lo ideal seria armar un mini admin que muestre las fotos y te permita eliminar la foto con el comentario relacionado.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Agregando un campito mas de &#8220;activate&#8221; podriamos mostrar los comentarios que solo esten aprobados.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Modificar BadWords desde el admin.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Agregar filtros de metacaracteres para evitar el sql injection.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Descargar Fla Modificado y guestBook.php</div>
<p>El sistema de comentarios se basa en 1 solo archivo PHP llamado <strong>guestBook.php</strong> que se conecta a la base de datos e interactua con flash como gateway para postear comentarios o leerlos.</p>
<p><strong><span style="font-weight: normal;"><img class="size-medium wp-image-173 alignnone" style="margin-left: 5px; margin-right: 5px;" title="galery_comment" src="http://www.tech-nico.com/blog/wp-content/uploads/2009/12/galery_comment-300x243.gif" alt="galery_comment" width="300" height="243" /></span>Tiene filtro de malas palabras</strong>, y para el que quiere también puede habilitar las lineas para envié por mail un aviso en caso de que haya comentarios nuevos.</p>
<p>Con respecto a la base de datos:  Esta hecho para mysql, y consiste de tan solo una sola tablita.</p>
<p><em>CREATE TABLE `fotolog` (<br />
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,<br />
`name` CHAR( 200 ) NOT NULL ,<br />
`nombrefoto` CHAR( 200 ) NOT NULL ,<br />
`email` VARCHAR( 200 ) NULL ,<br />
`comments` LONGTEXT NULL ,<br />
`time` TIME NULL<br />
) ENGINE = innodb COMMENT = &#8216;comentarios galery comment&#8217;;</em></p>
<p><strong>El funcionamiento es sencillo pero poco robusto <img src='http://www.tech-nico.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </strong></p>
<p>Como las fotos <span style="text-decoration: underline;">no </span><span style="text-decoration: underline;">están</span> en la base de datos; tome en cuenta el nombre de la foto como ID, por lo tanto hay que tener mucho cuidado con los nombres de fotos duplicadas.<br />
Ademas, como no hay ningún Admin para administrar la galería o comentarios, si eliminamos una foto por FTP, el comentario &#8220;no se elimina&#8221;, entonces van quedan registros perdidos en la tabla de la base de datos.<br />
Con una galeria que no tenga demaciado movimiento no va a haber problema (como fue en mi caso), pero si hay mucho trafico de fotos que se suben y se eliminan podria aparecer comentarios huerfanos.</p>
<p><strong>Configuracion:</strong></p>
<p>Abrir archivo <em>guestBook.php</em> y modificar las lineas siguientes por las de tu base de datos.</p>
<p>$DBhost = &#8220;localhost&#8221;;   // servidor<br />
$DBuser = &#8220;root&#8221;;            // usuario<br />
$DBpass = &#8220;&#8221;;            // clave<br />
$DBName = &#8220;fotolog&#8221;;            // nombre base de datos<br />
$table = &#8220;fotolog&#8221;;             // nombre tabla base de datos<br />
$numComments = 5;       // cantidad de comentarios por pagina.</p>
<p><strong>To DO // Para hacer</strong></p>
<ul>
<li>Lo ideal seria armar un mini admin que muestre las fotos y te permita eliminar la foto con el comentario relacionado.</li>
<li>Agregando un campito mas de &#8220;activate&#8221; podriamos mostrar los comentarios que solo esten aprobados.</li>
<li>Modificar BadWords desde el admin.</li>
<li>Agregar filtros de metacaracteres para evitar el sql injection.</li>
</ul>
<p><a href="http://www.tech-nico.com/blog/galery_S-Comentar.zip">Descargar Fla Modificado y guestBook.php</a></p>
<p>________________<br />
<a href="http://www.tech-nico.com/blog/">tech-nico.com/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Galeria de Fotos en Flash y PHP (con thumbs GD) y lectura de folders.</title>
		<link>http://www.tech-nico.com/blog/galeria-de-fotos-en-flash-y-php-con-thumbs-gd-y-lectura-de-folders/</link>
		<comments>http://www.tech-nico.com/blog/galeria-de-fotos-en-flash-y-php-con-thumbs-gd-y-lectura-de-folders/#comments</comments>
		<pubDate>Wed, 20 May 2009 14:07:58 +0000</pubDate>
		<dc:creator>soporte</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.tech-nico.com/blog/?p=132</guid>
		<description><![CDATA[Hace mucho tiempo tuve que crear una galería de fotos en flash y PHP ( que me saco de muchos apuros ). Lo particularmente bueno de esta galería es que levanta las fotos on the fly desde carpetas del servidor &#8230; <a href="http://www.tech-nico.com/blog/galeria-de-fotos-en-flash-y-php-con-thumbs-gd-y-lectura-de-folders/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace mucho tiempo tuve que crear una galería de fotos en flash y PHP ( que me saco de muchos apuros ).<a href="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/galeria_flash.gif"><img class="size-medium wp-image-134 alignnone" style="border: 0pt none; margin: 2px 9px;" title="galeria_flash" src="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/galeria_flash-300x191.gif" alt="" width="300" height="191" /></a></p>
<p><strong>Lo particularmente bueno de esta galería es que levanta las fotos on the fly desde carpetas del servidor que creemos o ya estén creadas. Entonces el cliente mismo puede generar galerías de fotos simplemente creando carpetas por FTP y haciendo copy paste de las imágenes que desea subir. Algo muy practico y sencillo para los clientes no entendidos.<br />
</strong>Mi propósito principal fue evitar que alguien tenga que editar un FLA&#8230; o un XML o mas engorroso aun tener que armar un admin con upload para el manejo de la galería.</p>
<p>Características de la galería:</p>
<ul>
<li>Usa Flash para precarga de fotos.</li>
<li>Lee varias carpetas de fotos.</li>
<li>Paginación de fotos (20 x página).</li>
<li>Librería GD de php para generar los thumbs con cacheo para agilizar la carga.</li>
<li>No usa base de datos ni XML.</li>
<li>Fácil configuración y mantenimiento.</li>
</ul>
<p>Dentro de la carpeta &#8220;galery&#8221; debe haber 5 archivos y 1 carpeta llamada &#8220;images&#8221;. Se recomienda no cambiar el nombre de la carpeta. (De lo contrario la galería no funciona).</p>
<p><strong>galery_tech_nico.fla</strong><br />
Archivo editable de Flash contenedor de la galería de fotos.</p>
<p><strong>galery_tech_nico.swf</strong><br />
Este archivo es la galería de fotos compilada y lista para embeber en tu web.</p>
<p><strong>folderImages.php</strong><br />
Recibe como parámetro un string (&#8220;nombre de carpeta&#8221;) y recorre en el servidor las imágenes que esta contenga. Finalmente devuelve sus rutas a flash.</p>
<p><strong>folders.php</strong><br />
Recorre todo el directorio &#8220;images&#8221; y devuelve a flash los nombres, rutas, tamaño de cada una de las fotos y además la cantidad de fotos por directorio.</p>
<p><strong>thumb.php</strong><br />
Recibe varios parámetros como alto, ancho, etc. y devuelve la imagen resampleada para generar los thumbnail de la galería.</p>
<p><strong>INSTALACION:</strong><br />
1) Editar archivo <strong>galery_tech_nico.fla</strong>.<br />
Escribe el nombre de tu dominio</p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/config.gif"><img class="alignnone size-medium wp-image-135" title="config" src="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/config-300x220.gif" alt="" width="300" height="220" /></a></p>
<p>2) Editar <strong>folderImages.php</strong> y <strong>folders.php</strong>.</p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/floderimages.gif"><img class="alignnone size-medium wp-image-136" title="floderimages" src="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/floderimages-300x28.gif" alt="" width="300" height="28" /></a></p>
<p>Esta versión también tenia para postear comentarios en las fotos. Pero esa parte usa una base de datos MySQL así que verán que en el archivo de flash esta comentado. (Si alguien los necesita subo los archivos.).<br />
Se que tiene muchas cosas por mejorar, pero ya cumplió su ciclo <img src='http://www.tech-nico.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
<p>GALERIA CON COMENTARIOS:<br />
<a href="http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/"> http://www.tech-nico.com/blog/galeria-de-fotos-flash-con-comentarios-php/</a></p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2009/05/galery.rar">descargar galery</a></p>
<p>Nicolas<br />
______________________<br />
www.tech-nico.com/blog</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-nico.com/blog/galeria-de-fotos-en-flash-y-php-con-thumbs-gd-y-lectura-de-folders/feed/</wfw:commentRss>
		<slash:comments>56</slash:comments>
		</item>
		<item>
		<title>Embeber Objetos Audio y Video con Ajax usando swfobject</title>
		<link>http://www.tech-nico.com/blog/75/</link>
		<comments>http://www.tech-nico.com/blog/75/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 05:09:35 +0000</pubDate>
		<dc:creator>soporte</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[trucos]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[player]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[wp_player]]></category>

		<guid isPermaLink="false">http://www.tech-nico.com/blog/?p=75</guid>
		<description><![CDATA[Algo realmente curioso e interesante es ver que el wp-standalone-player utiliza la funcion Javascript para embeber Objetos Flash usando DOM creado por &#8220;Geoff Stearns, Michael Williams, y Bobby van der Sluis&#8221; Casualmente es muy util para los que quieran embeber &#8230; <a href="http://www.tech-nico.com/blog/75/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Algo realmente curioso e interesante es ver que el wp-standalone-player utiliza la<br />
funcion Javascript para <a href="http://code.google.com/p/swfobject" target="_blank">embeber Objetos Flash usando DOM creado por &#8220;Geoff Stearns, Michael Williams, y Bobby van der Sluis&#8221;</a><br />
Casualmente es muy util para los que quieran embeber Objetos Flash mediante AJAX.<br />
Es un problema muy tipico el querer embeber video de youtube y que el innerHTML no funcione. (Sinceramente da muchos dolores de cabeza).<br />
Pero con este pequeño include llamado player.js de tan solo 11kb solucionamos todos nuestros problemas y podemos embeber indistintamente Objetos Flash (SWF) Locales, como URL de Objetos, como es el caso de los videos de Youtube.</p>
<p>Vamos a aclarar que salio una version de &#8220;<a title="WordPress Standalone Player" href="http://wpaudioplayer.com/standalone" target="_blank">WordPress Audio Player</a>&#8220; version standalone. Por lo tanto podemos customizarla y usarla en cualquiera de nuestros sitios webs (aunque no tengan WP instalado).</p>
<p><strong>Entonces hasta aca tenemos:</strong><br />
- Funcion JS para embeber objetos flash con DOM de 11 Kb.<br />
- Reproductor de audio WordPress Audio Player (Standalone)<br />
- Y una funcion para incluir Objetos Flash (mas especificamente Videos Youtube)</p>
<p><strong>Aqui abajo les muestro como implementarlo:</strong></p>
<blockquote><p><span style="color: #808080;"><em>&lt;!&#8211; HEADER &#8211;&gt;<br />
&lt;script src=&#8221;player/player.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
</em></span><br />
<em><span style="color: #808080;">&lt;script type=&#8221;text/javascript&#8221;&gt;  <br />
</span></em><em><span style="color: #808080;"> // VIDEO DE YOUTUBE<br />
 function show_video(element_descripcion, video_objeto, video_descripcion){<br />
     var div_element_descrip = document.getElementById(element_descripcion); <br />
     <span style="color: #ff9900;">audioplayer_swfobject.embedSWF</span>(video_objeto, &#8220;main_video&#8221;, &#8220;295&#8243;, &#8220;237&#8243;, &#8220;9.0.0&#8243;);<br />
     div_element_descrip.innerHTML = video_descripcion;<br />
 }</span></em></p>
<p><em><span style="color: #808080;"> // WP_STANDALONE_PLAYER ( la siguiente linea, invoca el audioPlayer )<br />
        </span><span style="color: #ff9900;">AudioPlayer.setup(&#8220;</span></em><a href="http://&lt;?php"><em><span style="color: #808080;">http://&lt;?php</span></em></a><span style="color: #808080;"><em> echo $tudominio; ?&gt;/player/player.swf&#8221;, {  <br />
                width: 290  <br />
        });   <br />
&lt;/script&gt;</em> </span></p></blockquote>
<p> Son 2 funciones totalmente distintas; la primera, <span style="color: #808080;"><em>show_video( )</em></span><span style="color: #000000;">, es la que usaremos para embeber video.  Y <span style="color: #808080;"><em>AudioPlayer.setup( )</em>,</span> es la que invoca al reproductor de audio. Lo que tienen en comun, es que ambas funciones utilizan el mismo Include <em><span style="color: #808080;">player.js</span></em> con el que embeben los tags usando DOM.</span></p>
<p><strong>En el Body:</strong></p>
<blockquote><p><span style="color: #808080;"><em>&lt;!&#8211; BODY &#8211;&gt;<br />
</em> <span style="text-decoration: underline;">&lt;!&#8211; audio player &#8211;&gt;</span><br />
<em><strong>&lt;p id=&#8221;audioplayer_1&#8243;&gt;Alternative content&lt;/p&gt;  <br />
</strong>&lt;script type=&#8221;text/javascript&#8221;&gt; <br />
                 AudioPlayer.embed(&#8220;audioplayer_1&#8243;, {soundFile: &#8220;</em></span><a href="http://&lt;?php"><span style="color: #808080;"><em>http://&lt;?php</em></span></a><span style="color: #808080;"><em> echo $tudominio;?&gt;/&lt;?php echo $ruta_de_tu_audio .&#8217;/&#8217;. $nombre_archivo; ?&gt;&#8221;,transparentpagebg: &#8220;yes&#8221;,titles: &#8220;descripcion del audio&#8221;});   <br />
&lt;/script&gt;</em>                                    </span></p>
<p><span style="color: #808080;"><em> </em><span style="text-decoration: underline;">&lt;!&#8211; video player &#8211;&gt;</span><br />
<em>&lt;script type=&#8221;text/javascript&#8221;&gt; <br />
          show_video(&#8216;video_descripcion&#8217;, &#8217;http://www.youtube.com/v/codigovideo&#8217;,  &#8216;la descripcion del video desde la base de datos&#8217;);<br />
&lt;/script&gt;<br />
</em><strong><em> &lt;div id=&#8221;main_video&#8221;&gt;&lt;/div&gt;<br />
 &lt;div id=&#8221;video_descripcion&#8221;&gt;&lt;/div&gt;</em></strong></span> </p></blockquote>
<p><span style="color: #000000;"><strong>Multiples Instancias:<br />
</strong><br />
Los contenedores para cada reproductor son los que estab en <strong>negrita</strong>.<br />
</span><span style="color: #000000;">Para agregar multiples reproductores de audio, solo basta con cambiar el ID del contenedor y duplicar el codigo. Para el caso del reproductor de video habria que hacer unas minimas modificaciones en la funcion <em><span style="color: #808080;">show_video( )</span></em></span><span style="color: #000000;"><span style="color: #000000;">, y pasandole como parametro el identificador del DIV podriamos tener multiples reproductores de video.</span></span></p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/12/video_player.gif"><img class="alignnone size-medium wp-image-77" title="Video Player" src="http://www.tech-nico.com/blog/wp-content/uploads/2008/12/video_player.gif" alt="" width="300" height="269" /></a></p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/12/audio_player.gif"><img class="alignnone size-medium wp-image-76" title="wp_player (standalone)" src="http://www.tech-nico.com/blog/wp-content/uploads/2008/12/audio_player.gif" alt="" width="288" height="63" /></a></p>
<p>Bien!. veran que es muy facil!!!</p>
<p><strong>UN TIP &gt; USAR YOUTUBE COMO SERVIDOR DE VIDEO STREAM:</strong><br />
Esto es para los que ahorramos ancho de banda. (Hoy en dia los que tienen reproductores de video propios insertados en su sitio web, estimo que es porque el sitio les da mucha ganancia)  <img src='http://www.tech-nico.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
Lo que yo hice fue guardar toda las rutas de los videos de youtube en mi base de datos. Para ello, se me presento un inconveniente; las URL&#8217;s de los videos son diferentes a la URL de publicacion que estan en los tags.. se entiende?.</p>
<p>Ejemplo: esta es la URL del video que esta en la barra de direcciones del navegador, <a href="http://www.youtube.com/watch?v=Mxo9D_aTrx4">http://www.youtube.com/<span style="color: #ff0000;">watch?v=Mxo9D_aTrx4</span></a>. <em>(Esta URL NO FUNCIONA!).</em><br />
pero si miramos la URL del objeto a insertar:</p>
<p><span style="color: #808080;"><code>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="</code><br />
</span><a href="http://www.youtube.com/v/G8whC4Me8d4&amp;hl=en&amp;fs=1%22%3E%3C/param%3E%3Cspan"><span style="color: #808080;">http://www.youtube.com/<span style="color: #ff0000;">v/G8whC4Me8d4&amp;hl=en&amp;fs=1</span>&#8220;&gt;&lt;/param&gt; &lt;param</span></a><span style="color: #808080;"> name=&#8221;allowFullScreen&#8221; value=&#8221;true&#8221;&gt;&lt;/param&gt;&lt;param name=&#8221;allowscriptaccess&#8221; value=&#8221;always&#8221;&gt;&lt;/param&gt; &lt;embed src=&#8221;</span><a href="http://www.youtube.com/v/G8whC4Me8d4&amp;hl=en&amp;fs=1"><span style="color: #808080;">http://www.youtube.com/v/G8whC4Me8d4&amp;hl=en&amp;fs=1</span></a><span style="color: #808080;">&#8221; type=&#8221;application/x-shockwave-flash&#8221; allowscriptaccess=&#8221;always&#8221; allowfullscreen=&#8221;true&#8221; width=&#8221;425&#8243; height=&#8221;344&#8243;&gt;&lt;/embed&gt;&lt;/object&gt;<br />
</span><br />
Ja, si!  es totalmente distinta; en mi caso, necesitaba guardar solo la URL en el campo de la Base de datos, entonces <strong>lo que hice fue armar una expresion regular que me devuelva la URL del video de forma limpia</strong>.</p>
<p><code>function validate_youtube(text_element) {<br />
if (text_element.value != ""){<br />
var matches = "";<br />
var expression = /((http:\/\/)|(www\.[^ \[\]\(\)\n\r\t]+)|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})\/)([^ \[\]\(\),;\"'&lt;&gt;\n\r\t]+)([^\. \[\]\(\),;\"'&lt;&gt;\n\r\t])|(([012]?[0-9]{1,2}\.){3}[012]?[0-9]{1,2})/gi;<br />
var rx = new RegExp(expression);<br />
var str = text_element.value;<br />
matches = str.match(rx);<br />
text_element.value=matches[0];<br />
}<br />
}</code></p>
<p>La podes agregar en el textfield con el evento onChange, entonces cuando hagas &#8220;Copy/Paste&#8221; del codigo &lt;object&#8230;/object&gt; en el textbox de tu CMS, obtendras la URL on the fly.</p>
<p>Esto ultimo tambien podria hacerce mucho mejor con el API de google para Youtube, y se podrian obtener hasta los comentarios de los videos (estuve viendo el codigo y no es para nada dificil). Pero yo necesitaba una solucion sencilla y rapida, asi que dejamos el API para el Upgrade del sitio.</p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/12/player.rar">descargar archivos</a></p>
<p>Nicolas. <a href="http://www.tech-nico.com/blog/2008/12/03/75/">tech-nico.com/blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-nico.com/blog/75/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pinger Tool v2.0 // Reportar estado del Servicio</title>
		<link>http://www.tech-nico.com/blog/pinger-v20-reportar-el-estado-del-servicio-para-un-isp-en-tiempo-real/</link>
		<comments>http://www.tech-nico.com/blog/pinger-v20-reportar-el-estado-del-servicio-para-un-isp-en-tiempo-real/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 03:46:18 +0000</pubDate>
		<dc:creator>soporte</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[ping]]></category>
		<category><![CDATA[snmp]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[wisp]]></category>

		<guid isPermaLink="false">http://www.tech-nico.com/blog/?p=26</guid>
		<description><![CDATA[&#8220;Tool para reportar en tiempo real el estado de tu Red o Servicio, reduciendo reclamos telefónicos innecesarios, mediante la creacion de un componente que embeberas en la pagina web inicial de tu empresa.&#8221; Hace algunos años tuve la necesidad de &#8230; <a href="http://www.tech-nico.com/blog/pinger-v20-reportar-el-estado-del-servicio-para-un-isp-en-tiempo-real/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Tool para reportar en tiempo real el estado de tu Red o Servicio, reduciendo reclamos telefónicos innecesarios, mediante la creacion de un componente que embeberas en la pagina web inicial de tu empresa.&#8221;</em></p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pinger_SM_basic.swf"></a></p>
<p>Hace algunos años tuve la necesidad de implementar en uno de mis sitios, algun sistema o especie de SNMP que sea capás de <strong>mostrar en tiempo real el estado de la red troncal de internet a los clientes</strong>.</p>
<p>Mas bien, la idea era reducir llamadas telefónicas innecesarias, ya que si el problema esta en el Carrier, o Telefónica <span style="text-decoration: line-through;">aprovechamos para decir que esta andando pésimo</span>, o que tengamos un problema nosotros mismos, en fin, <strong>estamos mostrandole al cliente &#8220;en tiempo real&#8221;, que hay un corte en tal tramo de la red o en nuestro carrier de internet.</strong></p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pingerv1.jpg"><img class="alignnone size-medium wp-image-37" title="pingerv1" src="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pingerv1-300x79.jpg" alt="" width="300" height="79" /></a></p>
<p>Googleando&#8230; no pude encontrar ninguna solución sencilla que represente dicha utilidad. &gt;Todos los SNMP que publican estados de servicios en WEB, son mas bien para usos de Admins, y no para clientes finales, entonces vienen demaciado completos y/o complejos.</p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pingerv2.jpg"><img class="alignnone size-medium wp-image-35" title="pingerv2" src="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pingerv2-300x33.jpg" alt="" width="300" height="33" /></a></p>
<p>Aqui debajo el ejemplo: En este caso ( al estar corriendo sobre un hosting pago y compartido ) tienen desactivado el shell_exec() por razones de seguridad y politicas propias del hosting. Por eso, solo muestra color amarillo el primer tramo y arroja el error: <em><span style="color: #ff0000;">Warning: shell_exec() has been disabled for security reasons</span></em>. (solo visible en el modo debug de Flash).<br />
Pero don&#8217;t worry; nosotros lo queremos para nuestra pagina hosteada en nuestro servidor, situado en el mismo segmento de red que queremos monitorear. Ya que, no tiene ningun sentido que queramos ver el estado de la red estando fuera de ella, precisamente porque si hay un corte en cualquier punto de la red, y la Web y Tool estan hosteados fuera, el cliente no tiene forma accederlos y menos aun ver el estado.<br />
Entonces, <strong>para que funcione correctamente el tool, debe estar corriendo en un servidor Linux Apache que este situado dentro de la red troncal / LAN / Intranet, etc. la cual estamos monitoreando</strong>.</p>
<p><a href="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pinger_SM_basic.swf"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="388" height="28" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pinger_SM_basic.swf" /><embed type="application/x-shockwave-flash" width="388" height="28" src="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pinger_SM_basic.swf"></embed></object></a></p>
<p><strong>Desarrollar el tool: </strong>Soluciones:</p>
<ul>
<li>1) Applet Java.</li>
<li>2) Ajax.</li>
<li>3) <strong>Macromedia Flash</strong>.</li>
</ul>
<p>Opte por la Tercer opcion: &#8220;Macromedia Flash&#8221; (<em>solo poque me resulta amigable para programar</em>).</p>
<p><strong>Explicación</strong>: Se crea un archivo SWF (extención nativa de un archivo flash compilado) que viene a ser el Front End. Este interactua con 1 archivo PHP ( que no es ni mas ni menos que un ping ) que hace de MiddleWare entre el servidor Apache donde hosteamos nuestro Site y Flash, entonces cada x tiempo ejecutamos una función de flash que llama al PHP pasandole como parámetro la IP que queremos chequear si esta caido. El PHP ejecuta el comando &#8220;PING x.x.x.x&#8221;, e imprime el resultado en una variable que parseamos desde Flash para interpretar que hacer con las graficas. Si el resultado da que perdio 1 paquete, cambia el estado del grafico (objeto que tiene como nombre de instancia la misma IP que chequeamos) a color Amarillo, inmediatamente vuelve a tirarle un ping para ver si realmente esta caido, y de ser asi cambia el estado a color Rojo. Como chequea (loopea) cada X segundos, la proxima vez evaluará en que estado debera estar el objeto. (Verde, Amarillo o Rojo).<br />
<strong>Un poco de Codigo ActionScript:</strong><br />
<code lang="actionscript"><br />
function PING(ip){<br />
pinger = new LoadVars();<br />
pinger.host = ip;<br />
pinger.sendAndLoad(pat + "ping.php?host=" + ip, pinger, "POST");<br />
pinger.onLoad = function (success) {<br />
if (success){<br />
tramasDato = String(pinger.ping).split(" ");<br />
trace(tramasDato[20] + " " + tramasDato[21] + " " + tramasDato[1]);<br />
if (String(tramasDato[20] + " " + tramasDato[21]) != "1 received,"){<br />
trace("PIERDE PAQUETE !!!!");<br />
bad = bad + 1;<br />
i = i - 1;<br />
if (i &lt; 0){<br />
i = 1;<br />
} // end if<br />
gotoAndPlay(25);<br />
}else{<br />
bad = 0;<br />
} // end if<br />
trace("BAD:::: " + bad);<br />
if (bad == 0){<br />
colores(ip.replace(".", "_"), "on");<br />
}else if (bad == 1){<br />
colores(ip.replace(".", "_"), "lose");<br />
}else if (bad &gt; 1){<br />
colores(ip.replace(".", "_"), "off");<br />
i = i + 1;<br />
if (i &gt; 3){<br />
i = 1;<br />
} // end if<br />
bad = 0;<br />
} // end if<br />
}else{<br />
colores(tramo3.replace(".", "_"), "off");<br />
colores(tramo2.replace(".", "_"), "off");<br />
colores(tramo1.replace(".", "_"), "off");<br />
}<br />
};<br />
}<br />
function colores(tram, goto){<br />
trace(eval(tram) + "  ///  " + goto);<br />
eval(tram).gotoAndStop(goto);<br />
}<br />
pat = "<a href="http://www.tusitio.com.ar/">http://www.tusitio.com.ar/</a>";<br />
tramo3 = "64.233.167.147" // ping a google.<br />
tramo2 = "201.X.X.X"; // equipo de radio troncal.<br />
tramo1 = "201.X.X.X"; // equipo de radio troncal.<br />
actual = tramo1;<br />
i = 1;<br />
bad = 0;<br />
tramasDato = new Array();</code><br />
Para pulir un poco mas se podria haber creado un XML con la lista de IPs, y de esta manera no tener que editar el FLA cada ves que cambie el nro. de IP de algun tramo.</p>
<p><strong>PHP del archivo ping.php:</strong><br />
<code><br />
// Declare some globals<br />
global $ip, $host_name, $host_ip;<br />
$host = $_GET['host'];</code></p>
<p>function get_ip()<br />
{<br />
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {<br />
$ip = $_SERVER['HTTP_X_FORWARDED_FOR']; }<br />
elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {<br />
$ip = $_SERVER['HTTP_CLIENT_IP']; }<br />
else {<br />
$ip = $_SERVER['REMOTE_ADDR']; }</p>
<p>return $ip;<br />
}</p>
<p>function ping($host, $ping_count)<br />
{<br />
if (get_ip()==&#8221;127.0.0.1&#8243;){<br />
$command = &#8220;ping -c $ping_count $host&#8221;;<br />
$fp = shell_exec(&#8220;$command 2&gt;&amp;1&#8243;);<br />
$output = (htmlentities(trim($fp)));<br />
echo &#8216;&amp;ping=&#8217;.$output;<br />
}else{<br />
echo &#8216;&amp;ping=error&#8217;;<br />
}<br />
}</p>
<p>ping($host, 1);</p>
<p>NOTA: sin duda &#8220;algo muy util para WISPs&#8221;. Espero les sirva.</p>
<p><a title="Download FLA, PHP, SWF" href="http://www.tech-nico.com/blog/wp-content/uploads/2008/08/pingerV2.zip">Descargar Codigo Fuente y Archivos FLA, SWF y PHP.</a><br />
<span style="color: #ff9900;">Recuerda que tienes que tener shell_exec habilitado en tu apache.</span></p>
<p>__________________________<br />
<a href="http://www.tech-nico.com/blog" target="_blank">Tech-Nico.com</a></p>
<p>Nicolas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tech-nico.com/blog/pinger-v20-reportar-el-estado-del-servicio-para-un-isp-en-tiempo-real/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

