Tal vez muchos de ustedes eestán molestos con las palomitas azules en whatsapp. Aun que nos quejemos no lo van quitar (como Facebook ).
Esto es otro método para tener más enganchados, ya que al notificar que ya viste el mensaje tienes el deber moral de contestar (hay sus excepciones).
Pues al pasar mas tiempo en Facebook o whatsapp se traduce en ganancias.
JQuery, CSS, HTML, Javascript, moviles, Linux, AJAX, soporte y mantenimiento a computadoras, informática general
viernes, 7 de noviembre de 2014
jueves, 6 de noviembre de 2014
SEO Parte 2
Hablar de SEO es a veces resulta ser muy ambiguo, ya que no hay reglas estrictas a primera vista, pero resulta que si las hay. Los algoritmos de búsqueda de los navegadores utilizan criterios estrictos de para el rankeo de los sitios, por lo cual enlisto algunas requisitos.
- Contenido Original: Es decir, el copy paste de otros sitios no da mala reputación (copiones) y nos manda mas abajo en cuestión del ranking.
- Los tags HTML: las etiquetas que usemos deben ser acorde al contenido, como ahora ya es estándar el HTML5, úsalas para estructurar el sitio, ya que eso le dice al motor de búsqueda (Google, Bing, Yahoo) que tipo de información muestras.
- En móviles: Con la explosión de los smart phones ahora todo debe de adaptarse a las resoluciones de pantalla de los navegadores. Lo que significa que le llegas al Web Response o desarrollas al menos 3 sitios (Desktop, smart phone y tablet).
- Cuida el contenido: es decir, el texto no debe ser redundante, faltas de ortografía, evita usar muchos signos de admiración o símbolos raros y no abusar de mayúsculas.
- Página ligera: es decir, asegúrate de no sobre cargarla con imágenes o videos con autoplay (como Facebook).
- Actualización constante: no debes de abandonar el sitio, dale seguimiento a los comentarios de tus internautas. Este punto es muy importante.
- Es importante atraer a los usuarios o prospectos de clientes correctos: simplemente si nuestro sitio web vendemos naranjas, de nada nos sirve usuarios que busquen pintar su casa de color naranja, pero si nos interesan las personas que buscan jugos de naranja. Esta es una analogía burda, pero ilustra este punto.
- El punto anterior se relaciona con este, es decir, en debemos usar los meta tag de la siguiente manera:
<meta name="description" content="mis, palabras, sobre, criterios, de, búsqueda">
En esta etiqueta en el content debemos de capturar las palabras que pueden atraer el trafico, es decir, como nos pueden encontrar, puedes llegar a usar 2 renglones.
<title>Mi título del sitio<title>
En esta etiqueta es la carta de presentación del sitio, así es como la va a indexar el motor de búsqueda, debe ser corto.
- Evita que la etiqueta title se altere que cada sección o que quede como "Sin nombre", "blank", etc.
- En el caso especifico de Google ahora con el nuevo algoritmo también va a rankear al autor, es decir, valora la calidad del la información y te va a posicionar a ti como generador de contenido.
Espero que les haya servido, es algo de lo que me he encontrado de investigación. Si tienen algún comentario es bien recibido.
- Contenido Original: Es decir, el copy paste de otros sitios no da mala reputación (copiones) y nos manda mas abajo en cuestión del ranking.
- Los tags HTML: las etiquetas que usemos deben ser acorde al contenido, como ahora ya es estándar el HTML5, úsalas para estructurar el sitio, ya que eso le dice al motor de búsqueda (Google, Bing, Yahoo) que tipo de información muestras.
- En móviles: Con la explosión de los smart phones ahora todo debe de adaptarse a las resoluciones de pantalla de los navegadores. Lo que significa que le llegas al Web Response o desarrollas al menos 3 sitios (Desktop, smart phone y tablet).
- Cuida el contenido: es decir, el texto no debe ser redundante, faltas de ortografía, evita usar muchos signos de admiración o símbolos raros y no abusar de mayúsculas.
- Página ligera: es decir, asegúrate de no sobre cargarla con imágenes o videos con autoplay (como Facebook).
- Actualización constante: no debes de abandonar el sitio, dale seguimiento a los comentarios de tus internautas. Este punto es muy importante.
- Es importante atraer a los usuarios o prospectos de clientes correctos: simplemente si nuestro sitio web vendemos naranjas, de nada nos sirve usuarios que busquen pintar su casa de color naranja, pero si nos interesan las personas que buscan jugos de naranja. Esta es una analogía burda, pero ilustra este punto.
- El punto anterior se relaciona con este, es decir, en debemos usar los meta tag de la siguiente manera:
<meta name="description" content="mis, palabras, sobre, criterios, de, búsqueda">
En esta etiqueta en el content debemos de capturar las palabras que pueden atraer el trafico, es decir, como nos pueden encontrar, puedes llegar a usar 2 renglones.
<title>Mi título del sitio<title>
En esta etiqueta es la carta de presentación del sitio, así es como la va a indexar el motor de búsqueda, debe ser corto.
- Evita que la etiqueta title se altere que cada sección o que quede como "Sin nombre", "blank", etc.
- En el caso especifico de Google ahora con el nuevo algoritmo también va a rankear al autor, es decir, valora la calidad del la información y te va a posicionar a ti como generador de contenido.
Espero que les haya servido, es algo de lo que me he encontrado de investigación. Si tienen algún comentario es bien recibido.
viernes, 11 de abril de 2014
Error Script Code 0 al cargar JQuery en IE8/IE7/IE6
Si estas sufriendo
por ese error en IE8/IE7/IE6, pero en FireFox, Chrome, Safari, y mobiles funciona.
Es porque posiblemente estas usando JQuery2.X. Asi que te recomiendo cargar una
versión de JQuery 1.X, ya que esta versión es compatible con los navegadores
anteriormente mencionados. Aquí el problema es que no usaras las nuevas
funcionabilidades de la versión 2.x, ya que esta verisión esta hecha para
interactuar con navegadores modernos y los navegadores mobiles.
Es decir,
si estas usando plugin de JQuery que están basados para la 2.x, tienes un pequeño
problema, es decir, al detectar en navegador, tendras que restarle
funcionabilidades a tu sitio o hacer unas cuantas brujerías para que se muestre
bien en IE8. Ya no importantanto IE7/IE6, ya que Microsoft acaba de anunciar la
muerte de WinXP, ya que en este SO se instalaba esa versión. Ahora el foco será
IE8 como algunas vez lo fue IE6 (Recuerdo y me dan ñañaras).
Cualquier dejame un comentario.
Mas información mira aca: http://blog.jquery.com/2013/04/18/jquery-2-0-released/
sábado, 1 de marzo de 2014
Sitio corporativo VS Perfil en Facebook
ventajas de tener una página corporativa.
- Publicas la información en tu pagina y solo compartes ligas en redes sociales, es decir tienes absoluto control sobre la información de tus productos (ofertas, promociones, etc).
- No dependes de terceros cuando tu sitio es autoadministrable, es decir cuenta con un CMS.
- Puedes almacenar información de usuarios para ofrecerles tus productos.
- No tener un sitio Web corporativo es como no tener instalaciones de oficina, es decir, andar en la calle. Este punto es importante, ya que le da cierta confianza a los clientes, ya que te muestras como una empresa seria. En lo personal cuando busco un servicio, primero busco en Internet referencias antes de elegir un proveedor.
- Las redes sociales son un complemento que si las sabes usar acarreas publico a tu sitio, esto hace que los buscadores te den puntos en cuestion d posicionamiento, es decir, le pongas algo de SEO a tu negocio. El SEO se resume, entre mas popular seas, seras la primera referencia que llegue a tus prospectos de clientes.
- Puedes tener información dispoible mediante reportes en tu sitio a la hora que sea sin necesidad de una APP en tu celular versionada para Android y si despues tienes un iPhone, pues requieres la version para IOs y temas de esos.
Cualquier aporte o comentario es bienvenido.
O escribeme a alberto329@hotmail.com
- Publicas la información en tu pagina y solo compartes ligas en redes sociales, es decir tienes absoluto control sobre la información de tus productos (ofertas, promociones, etc).
- No dependes de terceros cuando tu sitio es autoadministrable, es decir cuenta con un CMS.
- Puedes almacenar información de usuarios para ofrecerles tus productos.
- No tener un sitio Web corporativo es como no tener instalaciones de oficina, es decir, andar en la calle. Este punto es importante, ya que le da cierta confianza a los clientes, ya que te muestras como una empresa seria. En lo personal cuando busco un servicio, primero busco en Internet referencias antes de elegir un proveedor.
- Las redes sociales son un complemento que si las sabes usar acarreas publico a tu sitio, esto hace que los buscadores te den puntos en cuestion d posicionamiento, es decir, le pongas algo de SEO a tu negocio. El SEO se resume, entre mas popular seas, seras la primera referencia que llegue a tus prospectos de clientes.
- Puedes tener información dispoible mediante reportes en tu sitio a la hora que sea sin necesidad de una APP en tu celular versionada para Android y si despues tienes un iPhone, pues requieres la version para IOs y temas de esos.
Cualquier aporte o comentario es bienvenido.
O escribeme a alberto329@hotmail.com
sábado, 8 de febrero de 2014
Buscar objectos por atributos
Hace unos dias estaba trabajando JQuery Mobile en una página dinamica y requería buscar un objeto por un atributo CSS que había modificado en otro evento.
Entonces decidí hacer una busqueda para ver cuanto elementos tenian esa atributo CSS con determinado valor, es decir, saber cuantos elementos dentro de un objeto <OL> tiene <LI> con el atributo display:none despues de buscar por unos 20 minutos regrese a mi código y recorde el uso de banderas (suspiro al recordar band en el ITLM, muchas veces la definí en Pacal y Delphi).
Solución:
En el momento que asigno ese atributo CSS, tambien asigo una class bandera que no existe, por lo tanto son algunos bytes que me ahorro en CSS. Con eso hago el rastreo en JQuery con un simple length:
//Código:
if ( $(«.MyClass»).length == $(«MyObject»).length)
....do something
Y listo, con eso me hubiera ahorrado 20 minutos.
Saludos.
Entonces decidí hacer una busqueda para ver cuanto elementos tenian esa atributo CSS con determinado valor, es decir, saber cuantos elementos dentro de un objeto <OL> tiene <LI> con el atributo display:none despues de buscar por unos 20 minutos regrese a mi código y recorde el uso de banderas (suspiro al recordar band en el ITLM, muchas veces la definí en Pacal y Delphi).
Solución:
En el momento que asigno ese atributo CSS, tambien asigo una class bandera que no existe, por lo tanto son algunos bytes que me ahorro en CSS. Con eso hago el rastreo en JQuery con un simple length:
//Código:
if ( $(«.MyClass»).length == $(«MyObject»).length)
....do something
Y listo, con eso me hubiera ahorrado 20 minutos.
Saludos.
viernes, 25 de enero de 2013
Una aplicar seguridad un sistema Web
De
inicio quiero que quede claro que ninguna aplicación, servidor o sistema
operativo es seguro.
Imaginemos a una casa, cuando la construimos tenemos que
dejar puertas que son filtros por donde las personas que nosotros queremos que
pasen accedan a nuestro hogar, pero cuando no estamos en nuestra casa pues le
ponemos llave o bloqueamos la puerta, pero si una persona que puede saber del
funcionamiento de las llaves, puede hacer un duplicado, forzar la cerradura y
entrar a nuestra casa. Ahora lo que se recomienda es poner pasadores y
protecciones a las puertas, con esto lo que hacemos es poner más trabas para
que no entren a nuestra casa, pues eso es lo que hacemos con nuestras aplicaciones,
servidores o sistemas operativos.
Cuando tú
desarrolles unas aplicaciones, debes de considerar que por lo general los usuarios
quieren todo fácil, pero debes de poner en una balanza accesibilidad o
seguridad. Yo me iría por el tema de la seguridad y crear una cultura en los
usuarios sobre la información protegida
Para eso
te recomiendo lo siguiente:
·
Bloquear usuario e IP con más de 4 intentos fallidos por determinado
tiempo (días, horas, etc.).
·
Tener un usuario root que se encargue de desbloquearlos y reset de
contraseñas con la certeza de que realmente la se equivocaron y es el usuario
que está intentando accesar al sistema.
·
Contraseñas con un minino de caracteres arriba de 10.
·
No permitir 2 o más conexiones del mismo usuario en diferentes
equipos.
·
Tiempo de logueo de un max de 1 min, si no captura usuario y
contraseña, al menos bloquea la dirección IP, para que no se vuelva a conectar
en determinado tiempo.
·
Crear conciencia en los usuarios sobre la información que manejan.
Todo
esto y más seguridad puedes agregar dependiendo de qué tan crítico o neurótico seas
para la seguridad de tu sistema.
sábado, 7 de julio de 2012
Incrementar visitas a tu sitio web
He leído unos cuantos escritos de sobre como obtener más
visitas en nuestro sitio web y de los cuales he sacado mis propias
conclusiones.
Lo primero que debes tener en cuenta que tu sitio debe tener
un buen ranking en los buscadores (Bing Google
Yahoo) más importantes, ya que es por
ese camino donde llegan la mayoría de los visitantes.
Primeramente para lograr esto debes de evitar el uso de
AJAX, ya que en la mayoría de los casos cuando usas esta tecnología en la URL
manejas parámetros dinámicos, ejemplo: www.mysite.com/index.pl?opc=1§ion=3 como podemos ver en este ejemplo la URL no
nos dice nada, incluso ni nosotros podemos saber a que se refiere la liga. Lo
recomendable es www.mysite.com/masvisitasamiweb.html
de esta manera, si leemos sabemos a simple vista tenemos una idea de lo que se
trata el contenido.
Dentro del código HTML utilizar la etiqueta <meta>,
esta le permite a los buscadores de que se trata el sitio, por ejemplo:
<head>
<meta name="description" content=”Aquí va la temática central del sitio” />
<meta name="keywords" content="temas que tratas separados por comas (,)" />
<meta name="author" content="Autor" />
<meta http-equiv="content-type" content="codificación" />
</head>
<meta name="description" content=”Aquí va la temática central del sitio” />
<meta name="keywords" content="temas que tratas separados por comas (,)" />
<meta name="author" content="Autor" />
<meta http-equiv="content-type" content="codificación" />
</head>
Cabe señalar que entre más paginas
mencionen o redirecciones a usuarios a tu sitio, más popular eres y si el sitio
que te menciona es muy visitado, son puntos extras.
Si lees un contenido en otro sitio y
deseas publicarlo en tu web, tal vez seas marcado como copión por piratear información,
es decir, copy-paste.
Ayuda mucho el estar actualizando el
sitio constantemente, esto indica a los buscadores que siempre hay algo nuevo
que buscar. Por desgracia yo no lo hago constantemente, así que no cumplo esta
regla.
Y lo más importante para que tu sitio
sea visitado, debe tener contenido de calidad que llame a los visitantes.
En general estas ideas pueden subir
escalones en la indexación de tu sitio.
sábado, 21 de abril de 2012
Sentencia IF en MYSQL
Si
requieres que MySQL te regrese un valor u otro dependiendo de la condición que
tengas, te recomiendo que uses la sentencia IF, por ejemplo si se te dificulta
la comparación de datos en el lenguaje (como los que usan el epoch y tienes que
usar otras librerias). Usa lo siguiente:
SELECT
IF (condición, Valor_A_Retornar_Si_Es_Verdadero, Valor_A_Retornar_Si_Es_Falso)
No
necesariamente tiene que incluir una tabla, simplemente es una consulta al
DBMS. Ejemplo pratico:
SELECT
IF ( fecha_caducidad <= now() , “Alimento caducado”, “Alimento NO caducado”)
jueves, 19 de abril de 2012
Ejecutar 2 o mas veces $(document).ready()
Si tu
intentas llamar $(document).ready() como
cualquier otro método de otro objeto te vas a encontrar con un error.
Puedes
concatenar código
en en el método ready(), es decir, un archivo HTML o JS puedes definir el método
y en otro bloque puedes volver a capturar mas código sin perder el anterior, ya
que solamente se esta concatenando.
Ejemplo:
$(document).ready(function()
{
Do somthing…
});
$(document).ready(function()
{
Do
something else …
});
Y
conforme se llamado se ejecutará. Ahora si tu tienes quieres ejecutar varias
veces el método ready() te recomiendo que crees una fuincion todo el código que
deses ejecutar en el ready() y la llames dentro de este. Te muestro un ejemplo
a continuación.
Function
ReadyPlus() {
Do something…
}
$(document).ready(function()
{
If (typeof
ReadyPlus == “function”) { ReadyPlus(); }
});
Lo que
se hace en el anterior código es validar si el parámetro que se le pasa a
typeof es función y con esto sabremos si esta definido o no para ejecutarla.
Esto es
común cuando tienes grid y requieres utilizar AJAX.
domingo, 4 de marzo de 2012
Función Loading para AJAX
A continuación muestro una función para el uso de AJAX.
NOTA: La ruta de la imagen la tendrán que poner correctamente ustedes. Esta probado en IE8, FF 10.0.2 Chrome 17.0.963.56 m. La versión de JQuery es 1.4.2 que pueden descargar desde http://docs.jquery.com/Downloading_jQuery
Para crear su propia imagen del Loading, les recomiendo la página http://ajaxload.info/ donde hay vario tipos y pueden personalizar la imagen.
function loading(val) {
//val = 1 it is for create loading
//val = 0 it is for destroy it
if (val) {
var div = document.createElement("div");
var width = $(document).width() - 1;
var height = $(document).height();
$(div).attr("id","loadingDiv");
$(div).css({
"visility":"visible",
"position":"absolute",
"z-index":"100000",
"background-color":"#000",
"width":width+"px",
"height":height+"px",
"left":"0px",
"top":"0px"
}).fadeTo("slow",0.5);;
var heightWin = $(window).height();
var widthWin = $(window).width();
var img = document.createElement("img");
$(img).attr("src", "ruta/de/mi/imagen.gif");
var widthImg = img.width;
var heightImg = img.height;
var left = (widthWin - widthImg) / 2;
var top = (heightWin - heightImg) / 2;
$(img).css({"position":"relative", "left":left, "top":top })
$(div).append(img);
$("body").append(div);
}
else {
$("#loadingDiv").remove();
}
}
Espero que sea de bastante utilidad, cualquier duda
Saludos
NOTA: La ruta de la imagen la tendrán que poner correctamente ustedes. Esta probado en IE8, FF 10.0.2 Chrome 17.0.963.56 m. La versión de JQuery es 1.4.2 que pueden descargar desde http://docs.jquery.com/Downloading_jQuery
Para crear su propia imagen del Loading, les recomiendo la página http://ajaxload.info/ donde hay vario tipos y pueden personalizar la imagen.
function loading(val) {
//val = 1 it is for create loading
//val = 0 it is for destroy it
if (val) {
var div = document.createElement("div");
var width = $(document).width() - 1;
var height = $(document).height();
$(div).attr("id","loadingDiv");
$(div).css({
"visility":"visible",
"position":"absolute",
"z-index":"100000",
"background-color":"#000",
"width":width+"px",
"height":height+"px",
"left":"0px",
"top":"0px"
}).fadeTo("slow",0.5);;
var heightWin = $(window).height();
var widthWin = $(window).width();
var img = document.createElement("img");
$(img).attr("src", "ruta/de/mi/imagen.gif");
var widthImg = img.width;
var heightImg = img.height;
var left = (widthWin - widthImg) / 2;
var top = (heightWin - heightImg) / 2;
$(img).css({"position":"relative", "left":left, "top":top })
$(div).append(img);
$("body").append(div);
}
else {
$("#loadingDiv").remove();
}
}
Espero que sea de bastante utilidad, cualquier duda
Saludos
jueves, 1 de marzo de 2012
Algunos selectores en JQuery Parte 2
Anteriormente ya he escrito sobre este tema, solo me gustaría amplearlo ya que si manejas bien este tema te puedes ahorrar muchos ciclos para buscar un objeto en determinada posición, por ejemplo en un arreglo de <li> posicionarte en el ultimo, el primero, etc.
:last-child indica posicionarte sobre el ultimo objeto de un arreglo de posiciones de la misma clase. Ej:
<ul><li>Valor1</li><li>Valor2</li><li>Valor3</li></ul>
alert($("ul li:last-child").html()) // Esta linea de código regresa el valor HTML <li>
.last() Indica lo mismo que el anterior, también te posiciona sobre el ultimo objeto, si nos situamos sobre el ejemplo anterior.
alert($("li").last().html()); // retorna Valor3
Por cuestiones de tiempo este tema será expandido después, pero si hay dudas pueden preguntar.
:last-child indica posicionarte sobre el ultimo objeto de un arreglo de posiciones de la misma clase. Ej:
<ul><li>Valor1</li><li>Valor2</li><li>Valor3</li></ul>
alert($("ul li:last-child").html()) // Esta linea de código regresa el valor HTML <li>
.last() Indica lo mismo que el anterior, también te posiciona sobre el ultimo objeto, si nos situamos sobre el ejemplo anterior.
alert($("li").last().html()); // retorna Valor3
Por cuestiones de tiempo este tema será expandido después, pero si hay dudas pueden preguntar.
martes, 14 de febrero de 2012
Submit is not a function
Esto parece uno de esos errores raros que IE6 y IE7 marcan, pero no incluso FF me lo marco y la solución es tan sencilla que reirán cuando las cuente.
Si estas presentando este problema es porque el botón que desencadena el submit o envío de los datos se llama como el método que desencadena el envío de los datos, es decir, esta mas o menos así "<input type="button" name="submit">.
Eso te puede ocasionar perder alrededor de 10 min, los 10 mas mal gastados y todo por algo tan simple. Pero no puede llamarse novatada (desde mi punto de vista).
Saludos!
Si estas presentando este problema es porque el botón que desencadena el submit o envío de los datos se llama como el método que desencadena el envío de los datos, es decir, esta mas o menos así "<input type="button" name="submit">.
Eso te puede ocasionar perder alrededor de 10 min, los 10 mas mal gastados y todo por algo tan simple. Pero no puede llamarse novatada (desde mi punto de vista).
Saludos!
lunes, 23 de enero de 2012
Error CWPCA8522E: Application did not get installed
Para los que usamos Lotus Notes como cliente de correo electrónico, pues nos hemos llevado la sorpresa de que genera muchos error, esto si no lo sabes usar correctamente ó el equipo no tiene los suficientes recursos para soportar la aplicación. Ya que es muy robusta.
A continuación se detalla como solucionar el error CWPCA8522E.
- Cerramos la aplicación.
- Nos situamos en la carpeta data de lotus.
- Borramos la carpeta workspace.
- Abrimos Lotus y listo.
Este error se presenta cuando queremos abrir una de nuestras bases de datos.
viernes, 20 de enero de 2012
Google te aconseja sobre seguridad informática
Google preocupado por los usuarios de la red, pone a disposición de todos un contenido de como hacer la navegación más segura, desde el desarrollo de sitios seguros, hasta cuidarnos nosotros mismos.Debido que mundo virtual ya no es tan “virtual” y todo lo que ahí hacemos puede tener consecuencias en nuestra realidad. Ejemplo si en una página dejamos nuestro número de tarjeta de crédito, si llega a caer esa información en manos incorrectas podemos terminar muy endeudados.
Para evitar llevar a cabo esta tarea no requieres ser un genio de la informática, solo aplicar un poco el sentido común.
Para evitar la suplantación de personalidad se recomienda lo siguiente:
· No proporciones usuarios y contraseñas a páginas a las que esas cuentas no pertenezcan.
· Numero de cuentas bancarias.
· No proporciones información personal a desconocidos en salas de chat o por correo.
· Fechas de cumpleaños u otras importantes.
Ten cuidado con el software que instalas en tu equipo:
· Escanea tu equipo periódicamente, a menos que tu nivel de conocimiento informático sea avanzado y tengas el control total del software en tu equipo.
· Actualizaciones del SO al día.
·
No abras archivos con desconocidos y si los envía un conocido, confirma con la persona que tipo es ese archivo.
·
Las memorias USB son el nido de virus, así que si es posible cada vez que conectes un dispositivo escanéalo.
A continuación una lista de aplicaciones que te pueden ayudar en el problema de virus:
- avast!
- AVG
- AVIRA
- BitDefender
- ESET Smart Security
- F-Secure
- G DATA
- Kaspersky Lab Internet Security
- McAfee
- MacScan (for Mac users)
- Microsoft Security Essentials
- Norton Internet Security
- TrendMicro
Se cuidadoso en los lugares con redes públicas, últimamente están de moda este tipo de lugares, asegúrate de no usarlos para enviar información importante, ya que no sabes quién puede ver la información antes de que llegue a su destino. O si lo haces asegúrate que los datos tengan un nivel de encriptación.
Las contraseñas deben de cambiarse periódicamente.
Cuando te levantes de tu equipo asegúrate de bloquearlo para que nadie más lo use sin tu consentimiento.
Usa aplicaciones para que los niños no entren a sitios restringidos.
No compres en cualquier sitio, hazlo solo en aquellos que tengan buena reputación.
En el desarrollo:
Cuando desarrolles un sitio en donde se requieran logueo, hay que utilizar un nivel de encriptación seguro.
No uses el nombre del usuario o algún dato que relacione al usuario con el sitio. Si es posible detecta las IP´s y crea un método para comparar las IP de donde se conecta y crea una relación, así si el usuario se conecta desde otra región podrás enviar un alerta (correo, celular, etc.).
Redes Sociales
No compartas información personal en redes sociales o reveles rutinas, ejemplo: lugares y horarios que frecuentas regularmente. Eso es una ventana a la delincuencia.
Esto es tan solo un fragmento del artículo original, si quieres verlo completo haz clic aquí
viernes, 10 de junio de 2011
Enviando datos encriptado con JQuery
Es muy común que en nuestros sitios tengamos formas de logueo en la cual tenemos que encriptar la contraseña de los usuarios por cuestiones de seguridad.
Es por eso que hoy les voy a hablar sobre un plugin bastante sencillo hecho en JQuery para encriptar nuestros datos que se llama JQuery SHA256.
A continuación describo la implementación de esta herramienta:
1. Debes de descargar la aplicación de aquí
2. Incrustarlo en tu sitio web y hacer la llamada
3. Tener un objeto que desencadene la acción (onclick(), submit(), etc).
4. A continuación tendremos una cadena de 32 dígitos encriptada.
En esta parte se muestra la forma de empelarse este plugin:
$('#ex1_button').click(function(){
var output = $.sha256($('#ex1_source'));
$('#ex1_result').html(output);
});
Más información en: http://plugins.jquery.com/project/sha256
Prueba el funcionamiento aquí
martes, 7 de junio de 2011
HTML5 y algunas funcionabilidades
· Audio Video: En HTML4 si deseas incrustar alguna de estas funcionabilidades requieres de utilizar flash, lo que significa que dependes de que el cliente tenga instalado este programa para la correcta visualización de la página. Con HTML5 trae etiquetas que permiten utilizar audio y video procesado por el mismo navegador. Estos tags son <video></video> y <audio></audio>. Esperemos que al ser soporte nativo del navegador sea mas rápido la ejecución, mas información aquí.
· Dibujo: Con <canvas> y javascript puedes hacer dibujos más rápidos, ya que el rendimiento por código es más rápido que cargar imágenes, aquí algunos ejemplos de cómo hacerlo.
· Web Sockets: Esta funcionabilidad permite especificar el puerto desde el cual enviar datos desde el cliente al servidor, podemos encontrar más información aquí.
· Aplicaciones Web Offline: Permite trabajar online, es decir, si por alguna razón perdemos la conexión con el servidor de la página podemos continuar trabajando y posteriormente replicar los cambios en el servidor, esta funcionabilidad es muy buena para los usuarios viajero, mas información en este link o aquí.
· Alamacenamiento Web: Para poder identificar las sesiones de usuario en HTML4 se usan las cookies, con esta versión de HTML5 se podrá almacenar hasta 5 MB por dominio. Al incrementar la capacidad de almacenaje también hay mas valores que podemos obtener sobre el cliente. En este sitio se describe mas a profundidad.
· Web Worker: Es algo parecido a lo que lo que los lenguajes multi-hilo implementan, ya que se pueden tener en ejecución varios procesos, pero esta característica cuenta con varias restricciones así solo se recomienda implementarlas cuando realmente se necesiten y se tenga el control sobre la operación del sitio, para mayor información vista este sitio.
· Geolocalización: Permite localizar el sito a donde esta siendo descargado, es decir, revela nuestra localización basado en nuestra IP, en el sitio de la W3C veras mas a detalle esta información.
martes, 31 de mayo de 2011
Editar archivos xlsx desde OOXML
En alguna ocasión en uno de mis trabajos de programador me toco convivir con los archivos de Excel 2007, ya requería de editar un archivo. Voy a explicar como funcionan de manera general como editarlos y dependiendo de las necesidades se pueden crear rutinas para editarlos.Este formato está basado en el estándar de OOXML de Microsoft así que si tienen un libro sobre eso ahí se detalla a mayor profundidad todo.
Los archivos .xlsx son archivos comprimidos, es decir, si ahorita tomas un archivo con esta extensión y la cambias a .zip, al descomprimirla obtendrás varios archivos con extensión .xml en el cual están contenidos formatos de celdas, información, imágenes y la agrupación las hojas, toda la información esta estructurada.
En este archivo binario encontrarás contenidos archivos xml en la ruta \xl\worksheets\sheet1.xml, \xl\worksheets\sheet2.xml, hasta n ojas dependiendo del numero de hojas que tu documento de Excel tenga y el contenido es similar a:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
<dimension ref="C4:C9"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="C10" sqref="C10"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="15"/>
<sheetData>
<row r="4" spans="3:3">
<c r="C4" t="s">
<v>0</v>
</c>
</row>
<row r="5" spans="3:3">
<c r="C5" t="s">
<v>1</v>
</c>
</row>
<row r="6" spans="3:3">
<c r="C6" t="s">
<v>2</v>
</c>
</row>
<row r="7" spans="3:3">
<c r="C7" t="s">
<v>3</v>
</c>
</row>
<row r="8" spans="3:3">
<c r="C8" t="s">
<v>4</v>
</c>
</row>
<row r="9" spans="3:3">
<c r="C9" t="s">
<v>5</v>
</c>
</row>
</sheetData>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>
Dentro de el tag <v>Num</v> se encuentra una referencia numérica que puedes locacilzar en el archivo \xl\sharedStrings.xml donde aparece los siguiente:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="6" uniqueCount="6">
<si>
<t>est</t>
</si>
<si>
<t xml:space="preserve">es </t>
</si>
<si>
<t>una</t></si>
<si>
<t>prueba</t>
</si>
<si>
<t>desde</t>
</si>
<si>
<t>el excel</t>
</si>
</sst>
En donde este archivo esta estructurado a manera de arreglo es decir la posición 0 marcada en archivo \xl\worksheets\sheet1.xml:
<c r="C4" t="s">
<v>0</v>
</c>
Hace referencia a el valor en \xl\sharedStrings.xml:
<si>
<t>est</t>
</si>
A continuación describo el algoritmo y ustedes lo plasman en cualquier legunaje:
1. Lo que se requiere es una librería de cualquier lenguaje que pueda leer archivos zip para descompirmirlo en algún directorio temporal
2. Una vez descomprimido requerimos de manipular los xml, ya sea para agregar o quitar ramas de la estructura.
3. Una vez terminada la operación con los archivos xml requerimos generar el archivo zip de nuevo, pero conextensión xlsx.
No profundicé mucho en el tema debido a que estas son las bases, cabe señalar que este tipo de arquitectura aplica paro el Office 2010. Si tienen alguna duda con gusto les puedo apoyar.
Suscribirse a:
Entradas (Atom)



