Normalmente, cuando alguién esta aprendiendo a desarrollar en Php, Jsp, o el ASP clásico (hasta el final del post lo voy a usar como ASP3), siempre hay una breve introducción al Html, y ves las diferencia de usar los métodos GET y el método POST, del protocolo HTTP ( si eres desarrollador Asp.Net, tienes aplicaciones en producción, y no sabes que es GET ni POST, y menos sus diferencias, hombre, que nunca es tarde para aprender), es más en el dictado de los cursos sobre estos lenguajes se incluian estos dos temas. Recuerdo en los primeros ciclos de la universidad primero me meti a un curso, fuera de la unviersidad, de JSP (dictado por un cubano, Guillermo Sanchez hasta ahora creo que es el mejor curso de programación que tuve) debido a que quería aprender Java, pero no sabía que no era programación en Java, era programación Web con Java, por suerte hacía unas semanas estaba aprendiendo por mi cuenta html y no me fue extranio el curso. Al siguiente ciclo me metí a un curso de Php (con Cesár Bustamente, muy bueno el curso), y comienzas a notar que todos son html, métodos Post, get, base de datos, y como que le agarras onda al asunto. Y después me metí a un Curso de ASP.Net (VS2003), (todos fuera de la Universidad) que lo enseñaba un certificado Microsoft MSCD.Net, la visión del curso era buena: introducción a .Net, Visual Studio .Net, Web Forms, uso de controles, controles de usuario, controles de datos, controles de validación, Web Services, y bueno más tarde me di cuenta que eran los temas del 2310, y no voy a decir que usaba los mismos slides y los mismos ejemplos. Y bueno el curso estuvo bien enfocado, a lo que se necesita en toda aplicación Web de mantenimientos o interacción con base de datos, ¿pero y si en el curso habían personas que no sabían html, o no sabían la diferencia entre Get y Post?, no recuerdo que haya echo esa pregunta.

Y este patrón se sigue repitiendo en la actualidad, por ejemplo alguién que aprendio a programar con C++, o con Visual Basic, y nunca vieron nada Web, no saben que existe el html, ni Get, ni Post, ni nada Web. Y deciden aprender desarrollo Web con ASP.Net, por eso de que la Web es la voz, descargan tutoriales, abren Visual Studio, y comienzan a arrastrar controles indiscriminadamente, hacen doble clic en un botón, se agrega el evento botón, programan llenar un GridView, hacen View in Browser, y ya se podría decir que son desarrolladores Web, y si les preguntas que método usaste Get o Post?, la respuesta es: -"no, yo uso ASP.Net"...

¿Cuál es el problema? Con respecto al html, va desde problemas en diseño, hasta problemas en programación. En diseño, por ejemplo arrastras un control Repeater, y lo vas a rellenar con tablas, para poner un ejemplo:

   1: <asp:Repeater ID="repData" runat="server">
   2:    <HeaderTemplate>
   3:        <table> 
   4:           <td>
   5:    </HeaderTemplate>
   6:    <ItemTemplate>
   7:           <tr><%# Eval("nombre") % ></td>
   8:    </ItemTemplate>
   9:    <FooterTemplate>
  10:           </tr>           
  11:        </table>
  12:    </FooterTemplate>
  13: </asp:Repeater>

Y el colmo, el jefe les pregunta, por que se ve mal página: - "He revisado varios foros, y dicen que Visual Studio no generá bien el Html, que tiene muchos errores, debe ser por que es Microsoft".

Y en programación también genera problemas, una vez vi un código que había divs sin cerrar, no estaba ordenado, el cerrar un UpdatePanel no estaba donde debería estar, eso si erá un código espagueti, y todo eso hacía que no funcione ASP.Net Ajax, cuál es la salida del programador: "Asp.Net Ajax no funciona con proyectos existentes, tiene que ser con proyecto nuevos"

Atención, tampoco se trata de que seas un experto en Html, ni mucho menos, y ya hemos comentado las diferencias que debería haber entre el designer y el developer, y como Visual Studio 2008 te da una ayudita, para eso están los designers, y si no eres designer te bajas algún Starter Kit.

¿Pero que tengas problemas de programación por que no sabes cerrar un elemento html, y si sabes lo haces mal? Pues como que hay un pequeño problema. Si en un proyecto Web te vas a dedicar a crear los componentes de acceso a datos, te vas a meter unas fumadas con patrones, con WCF, con EF, pero no vas hacer las aspx, no hay problema si no sabes html, por que tu tarea es otra. Pero si tu eres el que vas desarrollar las aspx, eres el que va integrar el html que te envíe el designer, o eres el que va modificar el html de un starter kit, no saber nada html, ni la diferencia entre Get y Post... no se si imperdonable sea la palabra, pero de que te va traer algún problema en algún momento, lo va hacer.

Conclusión, no pretendo cambiar la forma de dictar, enseñar o aprender ASP.Net, pero si pienso que deberíamos (me incluyo por que creo hasta ahora no le puse el enfasis que merece) tratar de orientar mejor los objetivos y pre-requisitos de los mismos. Si vas a dictar un curso de ASP.NET 3.5 porque ASP.NET 2.0 es el pasado que los temas vayan: 1) Visual Studio 2008 2) Master Pages & Themes 3) Controles Web 4) Controles de datos 5)Linq 6) y los que siguen... son excelente, pero debes asegurarte que sean pre-requisitos tener conocimientos básicos de html y programación... y si el curso ya esta marcha, pues tratar de algunas clases explicar los métodos Get, Post, tener un html válido, etiquetas básicas de html, entre otros...

Por útlimo dejar esta serie de WebCast, de Jonas Stawski, y que realmente es programación Web para principiantes, para aquellos que recién van aprender desarrollo Web, y para aquellos que ya desarrollan en ASP.Net, pero se saltaron el aprender Html, Get, Post, y eso...

P.D.: El título orginal de la entrada era: Enviar variables desde ASP3 por POST a una página ASP.Net, pero el comentario introductorio de unas líneas, se hizo una entrada :$.

Saludos,

http://sergiot2.com/blogimages/2008/08Ago/19-Velocity.jpg

Pues y eso, este Viernes 22 de Agosto estaremos en el WebCast - Microsoft Codename Velocity:

"El Proyecto Microsoft con nombre código “Velocity es una plataforma caché de aplicaciones que integra directamente un grupo grande de máquinas en una sola caché unificada con escalación y alta disponibilidad. Los datos de aplicaciones tienden a clasificarse en tres clases principales. Los datos de referencia (por ejemplo, catálogos de productos) son básicamente datos de sólo lectura que suelen ser compartidos por muchos usuarios; los datos de actividad (por ejemplo, carritos de compra, pedidos) representan el estado de la sesión y tienen a ser de lectura-escritura, usualmente por sesión única; y los datos de recursos (por ejemplo, inventario) son a datos que se leen y se actualizan por varias sesiones de aplicaciones. El rendimiento y la escalabilidad son esenciales para todas las aplicaciones, sin importar los tipos de datos que manejen. Para los datos de actividad y de recursos la disponibilidad es igualmente crítica. En esta plática presentamos la nueva solución de caché de Microsoft, el Proyecto “Velocity”, una memoria caché distribuida que puede copiar en la memoria caché los datos de las aplicaciones para aportar rendimiento, escalabilidad y disponibilidad con clústers comerciales."

Jorge y Gustavo, ya han comentado sobre este nuevo proyecto, que esta en su versión CTP1, y dentro de poquito en el PDC08 tendremos disponible la versión CTP2. Y para dar un breve definición, es un servicio que permite tener una granja de servidores dedicados a una cache distribuidas para aplicaciones que requieran alto rendimiento, escalabilidad, y disponibilidad. Velocity, además provee comandos, y archivos de configuración para alterar las diversas opciones que contiene este servicio, por ejemplo usar una Cache particionada o usar una Cache replicada. Y también incluye un juego de APIs para trabajar con ella desde .Net, y no esta demás decir que se puede integrar con el manejo de sesiones de ASP.NET, y según lo que leí la idea es que en un futuro tengamos este servicio incluido dentro de .Net.

Por cierto el instalador requiere tener instalado el Framework 3.5. Mas información sobre el proyecto: http://msdn.microsoft.com/en-us/data/cc655792.aspx.

Saludos,

http://sergiot2.com/blogimages/2008/08Ago/13_Sidebar_Gadgets_Vista.png

Ayer estaba buscando algún tutorial para crear un gadget para Windows Vista, y pues no sabía que los Gadgets de Windows Vista eran OpenSource.

Si vamos a la galería de Gadgets que esta en la Web, al descargar el gadget deseado, este tendrá la extensión *.gadget:

http://sergiot2.com/blogimages/2008/08Ago/13_Gadgets-WindowsVista.jpg

Y para ver el código fuente del gadget, sólo renombramos el archivo a *.zip. Extraemos los archivos, y abrimos la carpeta con nuestro editor favorito obviamente Visual Studio, y podemos ver todo el código usado para crear el gadget:

http://sergiot2.com/blogimages/2008/08Ago/13_VisualStudio-edit-Gadgets.jpg

Y pues la mayoría de gadgets que revisemos, tendrán gran contenido de JavaScript.

El Gadget que hice piratee (cambiar logo, letra, y fecha) fue un Countdown de la fecha en que celerebrá el Blog Day 2008 en Perú, que será el viernes 29 de Agosto:

http://sergiot2.com/diario/blogimages/2008/08Ago/13_Gadget-BlogDay-2008-Peru.jpg

P.D.: Para empaquetar un gadget, enviar a un Zip los archivos y cambiar la extensión a *.gadget. Tener en cuenta que los archivos deben verse directamente al abrir el zip, que no haya una carpeta dentro del zip y recién dentro esten los archivos, ya que no se instalará el gadget.

Saludos,

Internet es la fuente de informacion mas grande del mundo (o al menos es lo que yo creo) y puede, o no, ser e mucha ayuda.

Como todos sabemos, internet esta llena de basura (de todo tipo) y para encontrar informacion buena, hay que saber buscar.

Lo primero es saber que buscar (creo que es obvio), supongamos que yo necesito buscar un buen libro de fisica cuantica.

Ya, sabiendo lo que tengo que buscar, solo falta escoger las palabras claves para usar en mi buscado favorito (en mi caso es Yahoo! pero puede ser Google, Cuil, Lycos, Exalead o cualquier otro existente).

Para escoger estas palabras, hay que pensar un poquito… no puedo usar “libro fisica” porque encontrare muchas cosas que yo no quiero, siempre es importante ser especifico con lo que se quiere buscar, asi que “libro fisica cuantica” me dara buenos resultados a la hora de buscar, pero si le agrego mas descripciones a lo que quiero… encontrare mejores resultados, asi que usare “comprar libro fisica cuantica”.

Al usar el buscador elegido y las palabras claves, me topare con muchos resultados, asi que ir a la primera fuente no es algo bueno.
El truco mas importante es no ser perezoso, ver barios links que te da el buscador y seguro que vas a encontrar lo que quieras.

Si te parece que estos consejos (que son de sentido comun) no son suficientes, le recomiendo leer la documentacion de su buscador favorito (busca, por ejemplo tutorial yahoo) para ver todas las funciones que este le brinda a sus usuarios.

http://help.yahoo.com/l/us/yahoo/search/basics/basics-04.html

[APNT] = Advertencia!, post no técnico.

Concurso Blogs Peruanos, Estamos buscando a los 20 mejores Blogs del Perú
Páginas Amarillas

Disculpen el off-topic, sobre todo por la temporada baja de posts. He estado ocupando el tiempo lo que queda después del trabajo en un proyecto personal, y haciendo la tesis para obtener el título de Ing. de Sistemas (ahora sólo tengo el de bachiller en Ing. de Sistemas), y bueno creo que si no hace ahora, no se hace nunca... así que parece que si la hacemos... hay muchos posts en la cola, y cuando se pueda los iremos enviando...

El motivo de la entrada, es debido a un concurso que se esta organizando en los bloggers peruanos: 20 Blogs peruanos. En la cual este humilde blog también esta participando.

Hace más de tres años (Marzo-2005), que me inicie en esto de los blogs y no me arrepiento, me ha dado muchas satisfaciones he conocido a mucha gente, y sin querer queriendo también ha influido en las ofertas laborales que he tenido. Hace más de 2 años que blogueo en Geeks (Junio-2006), chanfle no enviamos el post de celebración del segundo aniversario, y pues sigo repitiendo que es la comunidad de blogs más grande a nivel hispana, en blogs, contenido y calidad. Creo que uno de los exitos de la misma, ha sido convocar a todas las personas de los diversos paises de habla hispana que deseen compartir sus conocimientos, o en mi caso lo poco que sé, con la comunidad. Además de compartir, creo que se aprende muchas más, por los comentarios y por los otros bloggers presentes.

Y pués y nada, si en algo les ha ayudado este humilde blog, alguna de sus dudas ha sido resuelta, los ha motivado a leer un poco más para darme la contra, o simplemente encontraron un tip de bolsillo, pueden hacer llegar su voto a través de la siguiente página: Vota por un blog, no se olvide de escoger la categoría tecnología.

P.D.: Tampoco lo vean como una campaña Spam, no van a ver en el msn: Voten por mi blog menos el clásico no voten por mi blog, es sólo una manera de ver si los que aún quedan suscritos al RSS de blog siguen vistando el blog, y si hay alguien más leyendo el blog.

Por cierto, casí lo olvido, sólo se puede votar hasta el 22 de agosto :D

Saludos,

apunte de instalacion

ttf

En este mini-howto explico como instalar fuentes TTF para poder utilizarlas en Linux, para aquellos que no nos conformamos con las fuentes comunes que vienen instladas por defecto en el sistema.

En este caso me llamo la atencion el tipo de fuente ‘Old English’ en especial, aunque hay otras muy atractivas como ‘Avalon Quest’, ‘Tolkien’

Para disponer de todas estas fuentes, primero, descargamos este archivo :

Luego, descomprimimos el zip, copiamos el directorio resultante a /usr/share/fonts/truetype y ejecutamos :

# fc-cache

Como queria disponer de estas fuentes para utilizarlas desde el Gimp, pero no queria reinciarlo simplemente le di click en el boton para recargar las fuentes disponibles en el sistema.

ttf

Resumen (descarga script en bash, probado en Debian Testing):

#!/bin/bash
 
function get_deb()
{
PKG[0]="wget"
PKG[1]="unzip"
PKG[2]="fontconfig"
 
  for i in 0 1 2
  do
    PKG_ST=`dpkg-query -s ${PKG[i]} 2> /dev/null | grep "Status: install"`;
 
    if [ "${PKG_ST}" != "Status: install ok installed" ]; then
      apt-get -y install ${PKG[i]};
    fi
  done
}
 
 
function get_ttfp()
{
DIR_TTF="/usr/share/fonts/truetype"
PKG_TTFP="polices.zip"
URL_TTFP="http://www.cercledefaeries.com/accueil/polices/${PKG_TTFP}"
 
  cd ${DIR_TTF};
 
  wget ${URL_TTFP};
  unzip ${PKG_TTFP};
  rm ${PKG_TTFP};
 
  fc-cache;
}
 
  get_deb;
  get_ttfp;
 
exit 0;

Uso del script :

$ chmod +x ttf-policies.sh

$ sudo ./ttf-policies.sh

o

$ su; ./ttf-policies.sh

Mas informacion: http://ubuntu.wordpress.com

ShareThis

search sibu

Dejo para descarga 2 plugins que pueden utilizar para hacer busquedas en SibuWiki y la pagina principal de la Comunidad Sibu desde la barra de Firefox/Iceweasel(en teoria funciona con IE pero no me consta).

Descarga :

Busquedas en Comunidad Sibu : sibu.xml

<searchplugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os :ShortName>Sibu</os>
<os :Description>Comunidad Sibu, Costa Rica</os>
<os :InputEncoding>UTF-8</os>
<os :Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1%2BjfqAAAAAXNSR0IArs4c6QAAAAJiS0dEAP%2BHj8y%2FAAAACXBIWXMAAB5zAAAecwFCmCoXAAAAB3RJTUUH2AYYEwoOK2NmlgAAAbJJREFUKM9t0U9IkwEYx%2FHv%2B2fvfJdbzc2lBr6Q9EcHhTZQBCM8iLekLuIhKOgQnYro0N9TXbzUQeiQBxEi8FAeFClQsHBNySkSBeH6s0wG0dbL3LutbU8HS3foOT08fA4Pvx9UzYK6fO7d1Jtg9U39t8wrYHbPja4fUeQ%2FYKW%2FfnIhqJmONtGSnnnbugsUgFj95vv8lnUY41viVjDAjc2G9khqG%2BivFc10nVgKqP72%2B0Xfat0GKZYbzxyLxjxDzmjXbz10pVRrPzpgP%2FB9vJpnkSxefMVCkoJ2XWnijpq4ljuq%2Ba3CL57ynO%2BAi4Zc2TYOrgU%2BXAL9kzE3GD47bWR33soxua8%2F7tS89J12gNmRi5VmUUWVXjkvPRISxBBL%2BuSyLI0Asdros0FxSVg2JC4TsiohUeS43M7M34vtAbUza9wNl2vwkCBJiS8Ibnpk4MLJm51boELF9pZ1fpLEogUHDQ9Wsbj4Nweg5BE3NmOYKOQx0DBt0jugnGlMtTbHecF2CXvp5tA6TlXU8bb0w1enZvXPVGijN9Mx7h%2BOJKsARDWjIz30o8%2Fr3v%2BEx5Gvu2X9AXeRoyL4D2b1AAAAAElFTkSuQmCC</os>
<os :Url type="text/html" method="GET" template="http://sibu.homelinux.org/?s={searchTerms}"></os>
<os :Url type="application/x-suggestions+json" method="GET" template="http://sibu.homelinux.org/?s={searchTerms}"></os>
</searchplugin>

Busquedas en el wiki : sibuwiki.xml

<searchplugin xmlns="http://www.mozilla.org/2006/browser/search/">
<shortname>SibuWiki</shortname>
<description>Comunidad Sibu, Costa Rica</description>
<inputencoding>UTF-8</inputencoding>
<image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1%2BjfqAAAAAXNSR0IArs4c6QAAAAJiS0dEAP%2BHj8y%2FAAAACXBIWXMAAB5zAAAecwFCmCoXAAAAB3RJTUUH2AYYEwoOK2NmlgAAAbJJREFUKM9t0U9IkwEYx%2FHv%2B2fvfJdbzc2lBr6Q9EcHhTZQBCM8iLekLuIhKOgQnYro0N9TXbzUQeiQBxEi8FAeFClQsHBNySkSBeH6s0wG0dbL3LutbU8HS3foOT08fA4Pvx9UzYK6fO7d1Jtg9U39t8wrYHbPja4fUeQ%2FYKW%2FfnIhqJmONtGSnnnbugsUgFj95vv8lnUY41viVjDAjc2G9khqG%2BivFc10nVgKqP72%2B0Xfat0GKZYbzxyLxjxDzmjXbz10pVRrPzpgP%2FB9vJpnkSxefMVCkoJ2XWnijpq4ljuq%2Ba3CL57ynO%2BAi4Zc2TYOrgU%2BXAL9kzE3GD47bWR33soxua8%2F7tS89J12gNmRi5VmUUWVXjkvPRISxBBL%2BuSyLI0Asdros0FxSVg2JC4TsiohUeS43M7M34vtAbUza9wNl2vwkCBJiS8Ibnpk4MLJm51boELF9pZ1fpLEogUHDQ9Wsbj4Nweg5BE3NmOYKOQx0DBt0jugnGlMtTbHecF2CXvp5tA6TlXU8bb0w1enZvXPVGijN9Mx7h%2BOJKsARDWjIz30o8%2Fr3v%2BEx5Gvu2X9AXeRoyL4D2b1AAAAAElFTkSuQmCC</image>
<url type="application/x-suggestions+json" method="GET" template="http://sibuwiki.homelinux.org/index.php/Special:Search">
  <param name="action" value="opensearch"/>
  <param name="search" value="{searchTerms}"/>
</url>
<url type="text/html" method="GET" template="http://sibuwiki.homelinux.org/index.php/Special:Search">
  <param name="search" value="{searchTerms}"/>
  <param name="sourceid" value="Mozilla-search"/>
</url>
<searchform>http://sibuwiki.homelinux.org/index.php/Special:Search</searchform>
</searchplugin>

Instalacion :

Windows :

Copiar a C:\Archivos de programa\Mozilla Firefox\searchplugins.

GNU/Linux :

(Iceweasel) Copiar a /usr/share/iceweasel/searchplugins.

(Firefox) Copiar a /usr/share/firefox/searchplugins.

Por ultimo, reiniciar el navegador.

Mas informacion: http://developer.mozilla.org

ShareThis

Debido a que, en ocaciones queremos pasar nuestros archivos de musica al reproductor, pero sucede que estos ocupan tanto espacio que no nos alcanza para llevar todo lo que queramos(o la mayoria), no nos queda otra opcion que bajar la calidad del sonido(bajando el bit rate).

Este script lo que hace es pasarle parametros (bitrate, directorio origen de los ficheros originales y directorio destino de los ficheros codificados) a lame(necesitaran instalar el paquete que lo provee).

Si no se le pasan parametros buscara los ficheros de audio en el directorio desde donde se esta llamando al script codificandolos a una tasa de 128 b/s. y creara un directorio en el lugar de origen donde guardara el/los fichero(s) resultante(s).

Se pueden obviar algunos o todos los parametros, ya que es polimorfico.

Si quieren que este disponible sin tener que copiarlo a un directorio especifico o llamarlo utilizando la ruta absoluta, pueden copiarlo a /usr/local/bin y darle permisos de ejecucion :

$ sudo cp bt_mp3.sh /usr/local/bin
$ sudo chmod 755 /usr/local/bin/bt_mp3.sh

Ejemplo de salida:

$ bt_mp3.sh 128 music/megadeth/warchest/ /home/mbrenes/Desktop/music/megadeth/bt_new
ID3v2 found. Be aware that the ID3 tag is currently lost when transcoding.
LAME 3.97 32bits (http://www.mp3dev.org/)
CPU features: MMX (ASM used), SSE, SSE2
Using polyphase lowpass filter, transition band: 16538 Hz - 17071 Hz
Encoding 1000_times_goodbye.mp3
      to /home/mbrenes/Desktop/music/megadeth/bt_new/1000_times_goodbye.mp3
Encoding as 44.1 kHz 128 kbps j-stereo MPEG-1 Layer III (11x) qval=3
    Frame          |  CPU time/estim | REAL time/estim | play/CPU |    ETA 
 14821/14821 (100%)|    0:41/    0:41|    0:50/    0:50|   9.3812x|    0:00 
--------------------------------------------------------------------------------------------------------------------
   kbps        LR    MS  %     long switch short %
  128.0       10.3  89.7        95.4   2.7   1.9
Writing LAME Tag...done
ReplayGain: -10.4dB
...

Descarga del script:
bt_mp3.sh.tar.gz (1 KB)

Cualquier duda(o bt_mp3.sh –help) o sugerencia aca :D.

Mas Informacion :
http://www.lasalle.es

ShareThis

http://sergiot2.com/blogimages/2008/06Jun/18_magia.jpg

Un post de reflexión :D, y que servirá de referencia a otros.

Recurrentemente ante situaciones donde estás horas y horas, con un problema y no encuentras el código que lo haga funcionar, visitas todos los foros, en español, inglés, y hasta chino, y nada, y a la gente que envías un email esta apretada con sus quehaceres, lo último que queda es hacer la magia.

¿Pero qué es la magia?. La magia es la experiencia, el sentido común, y la habilidad que vas acumulando conforme aumenta tu participación en proyectos (exitosos o no). No se han dado cuenta que su ki, aumenta después de cada proyecto?, pues una manera de comprobarlo es revisando los primeros códigos que hacíamos, y que cuando los revisas, has los llegas a negar... pero esa es otra historia.

Ahora la adquisición de conocimientos es de todo el contexto: compañeros, proyecto, usuarios, y todo lo que rodea al proyecto. aprendes buenas prácticas, aprendes malas prácticas, (ya sabes que no hacer), aprendes de los buenos jefes de proyectos, también de los malos, incrementa tu capacidad de negociación, y tomar responsabilidad, sobre todo para que no tener que resolver bugs de otros te chanten muertitos de otros, aprendes a tratar con las personas, después de tratar con los usuarios, aprendes aguantar a los compañeros chinches, (no se como se dirá en otros países, pero alguien chinche es aquella persona que hace llegar al límite tu nivel de paciencia).

¿Y como aplico la magia para resolver un problema de programación?

Lo primero, es saber donde buscar, y donde preguntar, y a quién preguntar, recordar que probablemente nosotros no seamos los primeros con el mismo problema. El detalle viene en que quizás la solución no encaje en nuestra aplicación, o sea muy trabajosa, o sea muy compleja, entonces la opción es dar una alternativa, al requerimiento del usuario.

Debemos analizar nuevamente el requerimiento y buscar soluciones alternativas, hombre que de alguna manera tienes que satisfacer el requerimiento del usuario. Y estas alternativas dependiendo del requerimiento pueden variar, quizás haciendo cambios en el diseño, lo solucionemos, o quizás anexando información, ya la magia nos dirá que hacer.

Un ejemplo:

Problema: Desde una página aspx, estoy enviando los productos seleccionados en la página, y estoy abriendo un popup a través de JavaScript, pero si los navegadores tienen habilitado bloquear los popups, la aplicación pierde de alguna manera el flujo actual, y si estoy limpiando los productos seleccionados después de hacer postback, los productos seleccionados se pierden, y el usuario no sabe si tiene que volver a seleccionar los productos.

Solución: Buscar el código JavaScript para detectar si el usuario tiene activada esta opción.

Re-Problema: El problema puede venir, por ejemplo si para abrir el popup estamos registrando el código desde una página ASP.NET, y para hacerlo esto necesita un postback, ahora si el postback hace otros eventos, y dependiendo de nuestro código, tengamos que hacer más código para no perder algunas variables que estemos usando, y que todo funcione correctamente, y se hace todo un rollo.

Solución-Alternativa: Cambiar el diseño, e indicar al usuario que productos están seleccionandos. Así, si el navegador usuario tiene habilitado el bloqueo de popups, no tengo que hacer código extra por que le estoy informado cuales son productos seleccionados, y que no tiene que volverlo hacer.

Y eso, no todo se resuelve programando.

Por eso siempre ante alguna pregunta de código media marciana, siempre pregunto cual es el requerimiento, y quizás esta re-pregunta demuestre que no queremos ayudar o desconocimiento del tema que puede ser cierto, pero quizás no necesitemos un código marciano, solo cambiar de alguna manera el requerimiento.

Saludos,

Hay que tener algunas consideraciones a la hora de embeber el html de flash en nuestras páginas web y que este sea un código válido por la W3C.

Lo primero que tenemos que tener en cuenta es no usar el objeto embed, que lo encontramos por ejemplo en las referencias de YouTube:

   1: <object width="425" height="344">
   2:    <param name="movie" value="http://www.youtube.com/v/MrMNHwmd9Hc&hl=en">
   3:    </param>
   4:    <embed src="http://www.youtube.com/v/MrMNHwmd9Hc&hl=en" 
   5:           type="application/x-shockwave-flash" width="425" height="344">
   6:    </embed>
   7: </object>

Este objeto embed, no es parte de la especificación XHTML, y por ende no pasara la validación. El ajuste consiste en no usar el objeto embed, y en su lugar sólo usar el objeto param:

   1: <object width="425" height="344" 
   2:      data="http://www.youtube.com/v/42znqcedrX0"
   3:      type="application/x-shockwave-flash" >
   4:    <param name="movie" value="http://www.youtube.com/v/42znqcedrX0" />            
   5: </object>

Veamos el caso por ejemplo de un MP3 Player:

   1: <object type="application/x-shockwave-flash" 
   2:      data="http://sergiot2.com/audio/player.swf"
   3:      width="290" height="24" id="audioplayer1">
   4:    <param name="movie" value="http://sergiot2.com/audio/player.swf" />
   5:    <param name="FlashVars" 
   6:          value="playerID=1&amp;autostart=yes&amp;loop=yes&amp;" +
   7:                 "bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;" + 
   8:                 "rightbg=0xcccccc&amp;rightbghover=0x999999&amp;" + 
   9:                 "righticon=0x666666&amp;righticonhover=0xFFFFFF&amp;" +
  10:                 "text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;" +
  11:                 "border=0x666666&amp;loader=0x9FFFB8&amp;" + 
  12:                 "soundFile=http%3A%2F%2Fsergiot2.com%2Faudio%2FGeorgeMichael-Faith.mp3" />
  13:    <param name="quality" value="high" />
  14:    <param name="menu" value="false" />
  15:    <param name="bgcolor" value="#FFFFFF" />
  16: </object>

NOTA: En el atributo value use "+" para concatenar por cuestión de espacio en el blog se debería colocar todo junto sin concatenar. Notar además como a través de la parámetro FlashVars, podemos pasar variables al objeto flash, si es que lo necesitará. Si desea MP3 Audio Player en su sitio web:

Si desean verificar la validación, pueden hacerlo en la siguiente página: http://sergiot2.com/blog/validW3C.aspx.

Mas sobre el tema de Flash, y la validación:

Saludos,

- Next »