Si creían que Photoshop ya era la octava maravilla, quizá ahora lo sea aún más pues Adobe ha contratado a un colaborador de una nueva investigación sobre escalamiento de imágenes ALUCINANTE: el Dr. Shai Avidan.
El algoritmo fue presentado en la SIGGRAPH 2007 por dos Doctores israelíes en Ciencias de la Computación: Ariel Shamir y Shai Avidan.
Lo que logra este algoritmo es el escalamiento de imágenes con la mínima pérdida de calidad en las regiones más relevantes, detectando éstas de manera automática en un mapa y con la posibilidad de definirlas manualmente. Aquí pueden ver un video con una muestra de su trabajo (vale la pena verlo todo):
En flash se usa actionscript para programar acciones el las peliculas, a mi me parece un lenguaje bastante bueno para lo que esta hecho o sea para hacer efectos y cosas gráficas, obviamente no podemos compararlo con Java, pues es totalmente diferente.
En este post les voy a enseñar la maravilla de usar clases en flash, lo mucho que nos ahorran
Actionscript empezó muy parecido a javascript, pero con el tiempo ha ido evolucionando para convertirse en algo más parecido a java, de hecho el Actionscript 3.0 necesita iniciar la máquina virtual de Java para poder correr una pelicula, eso es lo que nos espera lo cual me parece algo muy bueno. Continue Reading »
Después de meses de programar en Java realmente me he dado cuenta de lo increiblemente bien planeado, organizado y bien hecho que es Java, realmente mis respetos a James Gosling (creador de Java) y a todo el equipo de desarrollo, pues nunca me había topado con un lenguaje tan bien hecho.
Algunas cosas que realmente me han impresionado de Java:
Las clases anónimas que son clases que ni siquiera estan definidas en un archivo, sino que se heredan a una clase pero sobreescriben un método que tal vez no querías de ese modo, por ejemplo:
jLabel1 = new JLabel("Hola") {
public String getText() {
return "El texto es:"+super.getText();
}
});
Lo cual haría un nuevo JLabel o sea un componente que sirve para etiquetas de texto, pero cambiaría el método getText por ese otro, lo cual devolvería por ejemplo El texto es: Hola
Después del post pasado que hablé sobre el desbordamiento de buffer (buffer overflow), ahora les diré que ya hay algunas soluciones a esos ataques.
Ya que esta vulnerabilidad es principalmente aprovechar el procesador, existen hoy en día algunos procesadores que evitan que pase un desbordamiento de buffer, el problema realmente es que no todos los sistemas operativos lo soportan, por ejemplo Windows XP sólamente lo soporta en algunos procesos críticos a partir del Service Pack 1, y se supone que en Vista agregaron mayor soporte para eso, pero por otra parte sistemas operativos como Sun Solaris lo soporta desde hace 10 años al parecer, y Mac OS y Linux desde hace algunos años, pero el problema es realmente que Windows el que es más atacado no lo soporta por completo.
Este bit se refiere a que marca un bit como No eXecute, o sea no se puede ejecutar nada pasando de ese bit, por lo que todas las técnicas de desbordamiento de buffer se ven inútilizadas, cosa que es mucho más segura.
Sobre el mismo ejemplo del río que mencioné el post pasado podríamos pensar como que cuando el agua llega a la torre de energía eléctrica no pasaría nada, simplemente estarían encimándose los datos pero no se podría ejecutar nada.
Algunos quizá hayan escuchado éste término, sin embargo probablemente no muchos sepan realmente en que consiste, asi que en éste post explicaré más o menos de que se trata.
El desbordamiento de buffer es una posible vulnerabilidad en programas hechos en lenguajes como C o C++, que puede llegar a ser tan grave como darle privilegios completos a alguien sobre un sistema operativo, es de los métodos de hackeo, uno en donde se puede aprovechar al máximo la vulnerabilidad de algun programa, y donde puede llegar a ser más crítico el problema.
Qué pasa por ejemplo cuando en un río sube el nivel del agua a un grado que no cabe el agua, pues el río se desborda y se lleva con él arboles, casas, etc. Totalmente un desastre natural, bueno en computación pasa algo parecido, pero imaginemos que el espacio en donde esta el río o sea el canal de tierra por donde pasa el río es el espacio en memoria que esta disponible para guardar algún dato, y el agua del rio es la información con la que intentaremos llenar ese espacio, si le damos más información de la que debe ser ocurrirá un desbordamiento de buffer. Continue Reading »
Cuando entran a una página como al mail, sin que ustedes se den cuenta se genera automáticamente una variable de sesión, la cual sirve para identificar que una sesión esta activa, hay formas de verificar que una sesión esta activa, y con esto el servidor te da acceso o lo rechaza, una sesión no es mas que una cookie que expira en el momento que cierras el navegador.
Cada que entras a alguna página lo que valida la sesión es el servidor, asi que para que lo haga el navegador, envía las cookies pertenecientes a ese dominio al servidor, y con ésto puede identificarte. Continue Reading »
Tiempo atrás publiqué un artículo sobre backtracking, en donde se vio como salir de un laberinto, ahora les voy a exponer la manera en que se puede implementar esta técnica recursivamente para resolver el problema del Circuito del Caballo. Continue Reading »
Ésta vulnerabilidad hace que el Internet Explorer deje de responder y se salga, tal como lo hacía el Torpedo de Zalweski con Firefox simplemente al pulsar éste enlace
La buena noticia es que parece que sólamente falla el programa y no permite que ejecuten código, cosa que es buena, aun asi es molesto.
¿Has tenido que reemplazar a mano algunas cosas? en un texto enorme, creo que es algo muy frustrante y asi como para ti lo es, también para los programadores, o para algun diseñador, pues es frustrante estar en dreamweaver y tener que reemplazar etiqueta por etiqueta, o encontrar dentro de todo un sitio, una simple palabra. Continue Reading »
Seguramente a estas alturas ya les habrán pedido que programen la exponenciación entera de un número para ilustrarles algunas estructuras de control, pero es muy probable que no se hayan preguntado cómo se podría hacer más eficiente una exponenciación o de plano pensaron que es lo mejor que se puede hacer (hacer todas y cada una de las multiplicaciones).
Aqui les voy a exponer un método sencillo y muy usado para exponenciar en grande de una manera más eficiente.