Showing posts with label Lecturas. Show all posts
Showing posts with label Lecturas. Show all posts

Thursday, August 31, 2017

Breadcrumbs

Keywords: Breadcrumbs, web design, diseño de navegación



Los breadcrumbs son un elemento de navegación ideal para reducir el número de pasos que debe realizar un usuario, especialmente cuando tenemos taxonomías jerárquicas. Los breadcrumbs mejoran en general la encontrabilidad de los elementos y le facilitan al usuario determinar su estado actual y rutas de regreso.

El término breadcrumb, o miga de pan, proviene del cuento de Hansel y Grettel, donde los niños utilizaban migas de pan para encontrar su camino a casa. Los breadcrumbs están compuestos normalmente por textos en secuencia clickeables que permiten ir directamente a la categoría padre del elemento.

Veamos algunos ejemplos de breadcrumbs:

1. Basados en la ubicación
Éstos se basan directamente en la taxonomía, utilizando los niveles de jerarquía como las categorías padre que se incluyen en los breadcrumbs.

2. Basados en atributos
Son muy útiles en las taxonomías facetadas, listando los atributos que se van filtrando y permitiendo eliminar los filtros aplicados.

3. Basados en ruta 
En este caso, los breadcrumbs no se fijan en la taxonomía, sino en el recorrido que ha realizado el usuario hasta llegar a la página actual. De esta forma, muestra las páginas a las que ingresó antes de llegar a la que se encuentra actualmente.

Wednesday, August 2, 2017

Ventajas de usar JSON sobre XML


JAVASCRIPT OBJECT NOTATION. Formato ligero y liviano para el transporte e intercambio de datos. Es una alternativa a XML. Y a continuación, una lista de ventajas para preferir su uso sobre XML:

JSON soporta dos tipos de estructuras: un set de pares llave-valor contenidos por un objeto y la otra es un array de valores.

JSON es una estructura totalmente independiente, no necesita de tecnologías alternas.

JSON es totalmente flexible y para extenderlo solo hace falta agregar una nueva propiedad con los valores deseados.

JSON permite definir estructuras de datos muy complejas.

JSON es un formato muy intuitivo y fácil de comprender.

JSON Tiene una alta velocidad de procesamiento y un menor tamaño con respecto a XML.

Thursday, June 30, 2016

Versionamiento semántico Major.Minor.Patch

Control de versiones, número de versión, nomenclatura versión

Versionamiento semántico Major.Minor.Patch

El primer número (1.x.x) indica la versión mayor, el segundo (x.2.x) una versión menor, mientras que el último (x.x.8) señala una versión para arreglar bugs.

Hay que tener en cuenta que los saltos de versión se producen en relación al estado en que se encontraba el programa en su versión anterior.

La versión major.
Se incrementa cuando  se produce un cambio que es incompatible con alguna versión anterior, pueden incluir cambios minor y patch.
El software sufre grandes cambios y mejoras. Las versiones patch y minor deben ser reseteadas a 0 cuando se incrementa la versión major.
Representa cambios mayores en el diseño del código que impliquen cambios en el código de las aplicaciones que tengan dependencias con nuestro software
Cada cambio en esta cifra denota una reescritura o la incompatibilidad con versiones anteriores.

La versión minor.
Se incrementa cuando se añade una nueva funcionalidad compatible con la versión anterior, si algún método se marca como obsoleto debe aumentarse la versión menor.
                El software sufre pequeños cambios y/o correcciones de errores.
                Puede ser incrementada si se agrega funcionalidad o arreglos considerables al código privado. Puede incluir cambios de nivel patch. La versión patch debe ser reseteada a 0 cuando la versión minor es incrementada.
                Representa modificaciones funcionales, es decir se han añadido, eliminado o modificado funcionalidades al código.

La versión patch.
                Representa correcciones de bugs o errores encontrados. También se suelen incluir cambios no funcionales (correcciones ortográficas, cambios de color o tamaño de ventanas…)
                Se aplica una corrección al software, y a su vez sufre pocos cambios.
                Aumenta solo cuando se corrigen errores que no modifican ninguno de los métodos públicos, es decir, no realizan cambios en el comportamiento.
                La tercera cifra se cambia cuando se hacen correcciones al documento pero no se ha añadido ni eliminado nada relevante.
                Debe incrementarse cuando se introducen solo arreglos compatibles con la versión anterior. Un arreglo de bug se define como un cambio interno que corrige un comportamiento erróneo.

Recomendaciones y sugerencias
La recomendación más grande es que de cada versión tengan una copia guardada, con los comentarios de los cambios que se hicieron en esta nueva versión. Así se podrá consultar lo que se ha hecho hasta el momento, y de ser necesario poder regresar entre versiones.
No modificar archivos sin tener una copia de la versión anterior.

El número de versión puede ir precedido por una “v” minúscula para dejar claro que es un número de versión.

Monday, October 14, 2013

Webp vs. JPG/PNG

WebP es un formato de imagen (relativamente nuevo) cuya característica principal es ofrecer una mejor claridad de imagen con un tamaño menor a diferencia del JPG/PNG

Las imágenes en WebP lucen igual que las de JPG/PNG
Las imágenes en WebP tienen un peso mucho menor
Las imágenes en WebP tienen un soporte para el canal alfa, los usuarios podrán crear transparencias en la imagen.

A continuación, algunas herramientas que permiten convertir imágenes JPG/PNG en formato WebP:

WebP for Photoshop. Un plugin para Ps que le permite al usuario cargar y guardar sus imágenes en formato WebP.

Convert to WebP. Te permite cambiar el formato de imagen jpg y png, a distintos formatos incluido WebP.

WebP to Other Format. Cambia diversos formatos de imagen a WebP.

Gimp For WebP. Es un plugin que se puede utilizar en el software de edición de imágenes de Linux, Gimp.

WebP Codec for Windows.
Hace que el formato de imagen WebP se pueda visualizar de forma nativa en Windows.

Fuente: isopixel.ne

Saturday, April 28, 2012

Desarrollo ASP.NET y herramientas De desarrollo


ASP.NET es un Framework gratuito de Microsoft para crear aplicaciones Web que trabaja con las normas basadas en HTML, CSS y JavaScript, entre otros.

Hay tres maneras de desarrollar con ASP.NET.

1. Web Forms.
ASP.NET Web Forms permite un modelo de desarrollo familiar que posibilita volver a utilizar los controles y sin esfuerzo incorporar datos en su sitio web, haciendo de su trabajo reutilizable y más productivo.

2. ASP.NET MVC. 
Es un enfoque poderoso que proporciona una separación clara de las capas de sus aplicaciones web y permite el control total sobre HTML para disfrutar un desarrollo ágil.

3. Web Pages.
Las ASP.NET Web Pages proporcionan una manera fácil de conexión a base de datos o añadir contenido de redes sociales con server code dinámico mezclado con HTML usando la nueva y liviana sintaxis RAZOR.

Microsoft proporciona un conjunto de herramientas de desarrollo Web optimizada para los diversos usuarios y experiencias a diseñar, construir, probar e implementar.

1. Expression Web.
Está optimizado para los diseñadores web que se centran en HTML, CSS y en las imágenes para diseñar, desarrollar y validar las experiencias Web contras múltiples Browsers.

2. Visual Studio.
Es un poderoso entorno de desarrollo optimizado para los profesionales que demandan la máxima flexibilidad y riqueza en la arquitectura de nuevas aplicaciones Web para la empresa o del mercado de Internet.

3. Web Matrix.
Ofrece una manera sencilla para los desarrolladores Web, para crear, personalizar e implementar sitios con aplicaciones de Open Source o páginas Web personalizadas con ASP.NET o PHP.

Fuente: WebCast. Introducción a WebMatrix y Razor Sintax

Wednesday, February 8, 2012

Certificaciones afines a La seguridad informática

Entre las certificaciones asociadas al área de la seguridad informática y áreas afines están:

CISA. Certified Information Systems Auditor. Es una certificación para auditores respaldada por la ISACA (Information Systems Audit and Control Association).

CISM. Certified Information Security Management. Es una certificación para administradores de seguridad de la información respaldada por la ISACA.

(Diferencia entra CISA y CISM: CISA es para trabajar como auditor y CISM es para trabajar como gerente o gestor de proyectos.)

CFE. Certified Fraud Examiner - Investigador de Fraudes Certificado. Un CFE es un líder en la comunidad anti-fraudes, que se destaca como especialista en la prevención y disuasión de fraudes.

FCA. Forensic Computer Advisor. La Certificacion FCA comprende ampliamente la ciencia de la Informática Forense, desde temas legales hasta temas muy tecnicos en materia forense.

CEH. Certified Ethical Hacker - Hacker Ético Certificado. Debe entender y conocer como debe buscar debilidades y vulnerabilidades en sistemas objetivo, a demás usar el conocimiento y herramientas como todo un hacker malicioso.

CISO. Certified Information Security Officer. Permite al profesional desarrollar conocimientos y habilidades que lo habilitan para el ejercicio de la función: Oficial de Seguridad obteniendo un reconocimiento, local mediante un certificado profesional.

En las siguientes publicaciones iré desarrollando un poco más en lo que consiste cada certificación.

Monday, February 6, 2012

Informática forense


La otra tarde, conversando entre ingenieros (jeje, es que los ingenieros tenemos conversaciones ingeniosas xD), surgió el tema de la "Informática Forense". Es que resulta que un compañero de la U pronto va a defender su examen de grado de derecho (su segunda carrera).

Hace tiempo ya, a inicio del 2010 leí sobre la informática forense, en la ciudad de Sucre se estaba ofertando una especialidad, su audiencia estaba dirigida para los abogados, ingenieros de sistemas, informáticos...

De las ramas de la carrera de derecho, siempre me interesó más la penal. Mucho por investigar, mucho por analizar, se necesita cuidado, ser minuciosos, para mi es algo apasionante - jejeje.

Pero... qué es la informática forense?

Es la ciencia dedicada a la recolección, preservación, análisis y presentación de la evidencia digital en casos judiciales, arbitrales o procesos internos disciplinarios.

Es el proceso de investigar dispositivos electrónicos o computadoras con el fin de descubrir y de analizar información disponible, suprimida, u ocultada que puede servir como evidencia en un asunto legal.

La Informatica Forense recolecta y utiliza la evidencia digital para casos de delitos informáticos y para otro tipo de crimenes usando técnicas y tecnologías avanzadas. Un experto en informatica forense utiliza estas técnicas para descubrir evidencia de un dispositivo de almacenaje electrónico.

Esta ha sido una pequeña introducción, más adelante desarrollaré un poco más este tema tan interesante y actual.

Thursday, November 24, 2011

Gizmox - visual webgui

Visual WebGui es una herramienta creada por Gizmox. Gizmox funciona con el desarrollo .Net de Microsoft.

Visual WebGui es una aplicación que funciona sobre un sevidor de Internet usando software de virtualización y una capa de código que hace que su interfaz funcione en el moderno estándar para Web HTML5.

Practicamente es como desarrollar aplicaciones Windows y verlas como aplicaciones Web.

Windows con cara de Web o Web pero Windows.

Checka esto. Es una ventana dialog/popup. Lo desarrollé así:


Pero se lo ve así:


Y como funciona con Visual Studio, al agregar un nuevo proyecto (claro, después de instalar el gizmox) te aparecerá la siguiente venanta:


Más Info, su Web Oficial: http://www.visualwebgui.com/

Pero como todo, tiene sus ventajas y desventajas. Lo que me agrada es que te ahorra tiempo en el diseño de los formularios. Como que más te dedicás al código de programación y cero diseño. Oh vaya! Me acabo de dar cuenta. Con esto, ya no necesitaríamos contratar un Web Designer jajajajajajaj

Tuesday, June 7, 2011

Diseñador web Vs desarrollador web

Web Designer vs Web Developer
¿Cuáles son las diferencias?

El diseñador web se ocupa del "front-end", es decir, del aspecto estético del sitio, lo visual. Mientras que el desarrollador (programador) web se encarga del "back-end", de la parte que no se ve, del código.

Un diseñador web entiende sobre los colores, fuentes, imágenes. Hará que el sitio sea llamativo para el público a quien va dirigido. Ese sitio se comprará tan solo mirandose. Provocará dejar buenos comentarios.
El diseñador web se vale de programas como Adobe Photoshop, Dreamweaver. Sabe de HTML, CSS y tal vez de JavaScript. Mucha imaginación y creatividad.

Por otro lado, el desarrollador web se preocupa de la codificación, de hacer que el sitio sea seguro. Las herramientas que utiliza son tales como PHP, ASP.NET, Java, Javascripts, MySQL, SQL Server

Analógicamente se puede decir que el "arquitecto" es el diseñador web y el "constructor" es el desarrollador web.

Está claro que una misma persona puede hacer los dos trabajos. Pero en la especialidad, está la perfección.

¿Qué área te gusta más?

Thursday, April 7, 2011

Programador como diseñador

Vaya! Ya me lo decia mi hermano... 'Querida Lizzy te aconsejo a que estudies Diseño Gráfico, Diseño Web todo lo que tenga que ver con Diseño. Desarrollador + Diseñador es una buena combinación. Hace falta.'

Digamos que todos sabemos que 'el que mucho aprieta, poco abarca'. Pero a mi me parece un consejo que hay que tomarlo como: 'Es necesario saber defenderse. Tener la noción.'

Casi siempre se ha dicho sobre el desarrollador como diseñador... ni hablar! No me resultó tan gracioso hasta que leí algo al respecto. Uhm y hasta pena me dio porque luego dicen que los usuarios son los tontos. o_O

Pero debo decir que yo, como mujer, no me sumo al 100% de ese cúmulo de programadores que asustan a los usuarios. Lo he vivido porque he trabajado con sistemas de que sí. Y yo al ponerme como usuario, los entiendo más!

Si bien, como diseñadora gráfica... (manejar Photoshop, FireWorks, Flash) estoy en pañales, en diseño de mis interfaces son detallista y cuidadosa. Vigilo mi ortografía, puntuación, redacción en los mensajes de usuario.

La siguiente es una imágen poco exagerada para ponerle humor al tema. (Espero que no haya quienes se den aludidos al caso, jajaja)


En este link, 7 SEÑALES QUE UNA INTERFAZ DE USUARIO FUE CREADA POR UN PROGRAMADOR (The 7 signs your UI was created by a programmer), muestra precisamente esas señales para hacernos entender que podemos mejorar con nuestro trabajo.

Si bien esto no está fuertemente conectado con el tema de diseño gráfico sino mas bien de cuidado e iniciativa propia, estudiar diseño nos puede ayudar a darnos pautas para que nuestro producto se "vea más bonito". Es cierto, la belleza es subjetiva pero al menos hay algo que se llama sentido común y órden.

Thursday, May 13, 2010

Hoax: cadenas De mensajes

¿Qué es un hoax? Es una noticia falsa, un intento de hacer creer a un grupo de personas que algo falso es real

¿Y un hoax informático? Es un mensaje de correo electrónico con contenido falso o engañoso y atrayente. Normalmente es distribuido en cadena por sus sucesivos receptores debido a su contenido impactante que parece provenir de una fuente seria y fiable o porque el mismo mensaje pide ser reenviado

Las personas que crean bulo suelen tener alguno de los siguientes objetivos:

Captar direcciones de correo (para mandar spam, virus, mensajes con phishing o más bulo a gran escala)
Intentar engañar al destinatario para que revele su contraseña o acepte un archivo de malware.
Confundir o manipular a la opinión pública de la sociedad


Uno de los hoax que están circulando ahora es el siguiente:


URGENTISIMOOOOOOOOOOOO !!!




POR FAVOR, HAZ CIRCULAR ESTE AVISO A TUS
AMISTADES, FAMILIA, CONTACTOS !!!
En los próximos días, debes estar atent@:
No abras ningún mensaje con un archivo anexo llamado: Invitación de FACEBOOK,
independientemente de quien te lo envíe. Es un virus queabre una antorcha
olímpica que quema todo el disco duro C de la computadora. Este virus vendrá de
una persona conocida que te
tenia en su lista de direcciones.. Es por eso
que debes enviar este mensaje a todos tus contactos.


Es preferible
recibir 25 veces este correo que recibir el virus y abrirlo.. Si recibes el
mensaje llamado: Invitación de FACEBOOK, aunque sea enviado por un amigo, no lo
abras y apaga tu maquina inmediatamente. Es el peor virus anunciado por CNN. Un
nuevo virus ha sido descubierto recientemente que ha sido clasificado por
Microsoft comoel virus mas destructivo que haya existido . Este virus fue
descubierto ayer por la tarde por Mc Afee. Y no hay arreglo aun para esta clase
de virus. Este virus destruye simplemente el Sector Zero del Disco Duro, donde
la información vital de su función es guardada.




ENVIA ESTE E-MAIL A
QUIENES CONOZCAS. COPIA ESTE CORREO A UNO NUEVO Y MANDALO A TODOS TUS AMIGOS.


RECUERDA:
SI LO ENVIAS A ELLOS, NOS BENEFICIAS A TODOS.

Por lo general, los hoax informáticos tienen estos temas:

**Alertas sobre virus incurables
**Falacias sobre personas, instituciones o empresas
**Mensajes de temática religiosa
**Cadenas de solidaridad
**Cadenas de la suerte
**Métodos para hacerse millonario
**Regalos de grandes compañías
**Leyendas urbanas

ASI QUE SI RECIBES UNO DE ESTOS TIPOS DE CADENAS, NO LOS REENVIES.

Thursday, June 11, 2009

Cómo optimizar una consulta SQL

¿Para qué optimizamos? Para obtener de manera más rápida y precisa la información, más eficiente. Hay que tomar en cuenta que el bajo rendimiento en el tiempo de respuesta se deben a factores como: el hardware, el software, el SGBD, el diseño, índices mala formulación de las consultas.
A continuación se siguen algunos tips, no son todos los que hay pero es algo para tomar en cuenta.

Diseño de la base de datos

**Las tablas normalizadas permiten reducir al mínimo el espacio ocupado por nuestra base y permiten asegurar la consistencia de la información al mismo tiempo que son muy rápidas para la realización de transacciones, pero generan un mayor tiempo de demora a la hora de consultarlas ya que se deben realizar generalmente la unión de varias tablas, por lo que en caso de necesidad de altas velocidades de respuesta con grandes volúmenes de datos un modelo desnormalizado es más que conveniente teniendo en cuenta todas las implicancias del caso.

**Ajustar al máximo el tamaño de los campos ayuda a no desperdiciar espacio.

**Eliminar todo campo que no sea de utilidad ya que por más que no contenga datos genera retrasos.

Índices

**Los índices son campos que permiten la búsqueda a partir de dicho campo a una velocidad notablemente superior. Sin embargo cuentan con la desventaja que hacen más lenta la actualización, carga y eliminación de los registros ya que por cada modificación en la tabla se deberá modificar también el índice, además se debe tener en cuenta el hecho de que los índices también ocupan espacio en disco. Es por esto que no es factible indexar todos los campos de la base y se hace necesario seleccionarlos cuidadosamente. Cabe destacar que por defecto las tablas no contienen índices por lo que la introducción de estos puede llegar a producir mejoras de más del 100% en algunos casos.

**Los campos que se recomiendan indexar son:

Claves Primarias
Claves Foráneas
Campos por los cuales se realizaran búsquedas
Campos por los cuales se va a ordenar

**Siempre conviene indexar tablas con gran cantidad de registros y que van a ser consultadas intensamente.

Formulación de las consultas
**En la medida de lo posible hay que evitar que las sentencias SQL estén embebidas dentro del código de la aplicación. Es mucho más eficaz usar vistas o procedimientos almacenados por que el gestor los guarda compilados. Si se trata de una sentencia embebida el gestor debe compilarla antes de ejecutarla.

**No utilizar SELECT * por que el motor debe leer primero la estructura de la tabla antes de ejecutar la sentencia.

**Seleccionar solo aquellos campos que se necesiten, cada campo extra genera tiempo extra.

**Utilizar Inner Join , left join , right join, para unir las tablas en lugar del where, esto permite que a medida que se declaran las tablas se vallan uniendo mientras que si utilizamos el where el motor genera primero el producto cartesiano de todos los registros de las tablas para luego filtrar las correctas, un trabajo definitivamente lento. (Con respecto a esto, aún no sé. Eso se suele decir, sin embargo un docente de mi universidad me dijo que es indiferente.)
**Especificar el alias de la tabla delante de cada campo definido en el select, esto le ahorra tiempo al motor de tener que buscar a que tabla pertenece el campo especificado.

**Evitar el uso de Cast. Y formulas dentro de las consultas, cada formula y casteo retrasan el motor considerablemente.

**Cuando se utilizan varias tablas dentro de la consulta hay que tener cuidado con el orden empleado en la cláusula FROM. Si deseamos saber cuantos alumnos se matricularon en el año 1996 y escribimos: FROM Alumnos, Matriculas WHERE Alumno.IdAlumno = Matriculas.IdAlumno AND Matriculas.Año = 1996 el gestor recorrerá todos los alumnos para buscar sus matriculas y devolver las correspondientes. Si escribimos FROM Matriculas, Alumnos WHERE Matriculas.Año = 1996 AND Matriculas.IdAlumno = Alumnos.IdAlumnos, el gestor filtra las matrículas y después selecciona los alumnos, de esta forma tiene que recorrer menos registros

Friday, March 20, 2009

Reglas de Edgar Frank Codd

Codd se percató que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estas tablas estar literalmente normalizadas.

Publicó 12 reglas que un verdadero sistema relacional debería tener. Un sistema podrá considerarse más relacional en tanto cuanto más siga estas reglas.

Regla Nro. 1: La regla de la información.
Toda la información en un RDBMS (DBMS Relacional) está explicitamente representada de una sola manera por valores en una tabla.

Regla Nro. 2: La regla del acceso garantizado.
Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la tabla, su clave primaria, y el nombre de la columna.

Regla Nro.3: Tratamiento sistemático de los valores nulos.
La información inaplicable o faltante puede ser representada a través de valores nulos.

Regla Nro. 4 La regla de la descripción de la base de datos.
La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarois autorizados.

Regla Nro. 5: La regla del sub-lenguaje Integral
Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datoa, definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones.

Regla Nro. 6: La regla de la actualización de vistas.
Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo.

Regla Nro. 7: La regla del insertar y actualizar.
La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos.

Regla Nro. 8 La regla de independencia física.
El acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodos de acceso a los datos.

Regla Nro. 9: La regla de independencia lógica
Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos.

Regla Nro. 10: La regla de la independencia de la integridad
Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en el programa de aplicación.

Regla Nro. 11: La regla de la distribución
El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación.

Regla Nro. 12: La regla de la no-subversión
Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).

Wednesday, November 12, 2008

Patrones de diseño

Christopher Alexander, arquitecto de los años '60, creador del término de "Patrones de Diseño".
“Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.”

Los patrones de diseño son soluciones recurrentes al diseño de software. Son soluciones reutilizables para problemas comunes que se encuentran en el momento del desarrollo. Generalmente, un grupo de clases que resuelve de manera óptima un problema genérico a plicable a diferentes situaciones específicas.

Se clasifican en:

*Patrones de Creación: Inicialización y configuración de objetos.
*Patrones de estructura: Separan la interfaz de la implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar estructuras más grandes.
*Patrones de comportamiento: Más que describir objetos o clases, describen la comunicación entre ellos.

PATRONES DE CREACIÓN

Fábrica Abstracta (Abstract Factory)
Proporcionar una interfaz que permite crear familias de objetos relacionados entre sí, sin especificar (ni conocer a priori) sus clases concretas.

Builder (Constructor virtual)

Abstrae el proceso de creación de un objeto complejo, centralizando dicho proceso en un único punto.

Método de Fabricación (Factory Method)
Centraliza en una clase constructora la creación de objetos de un subtipo de un tipo determinado, ocultando al usuario la casuística para elegir el subtipo que crear.

Prototipado (Prototype)
Se basa en la clonación de ejemplares copiándolos de un prototipo.
SingletonEl patrón Singleton garantiza que una clase sólo tenga una instancia y proporciona un punto de acceso global a ésta instancia.

Singleton (Instancia única)
Garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia.

PATRONES DE ESTRUCTURA

Adaptador (Adapter)
Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla.

Puente (Bridge)
Desacopla una abstracción de su implementación permitiendo modificarlas independientemente.

Objeto Compuesto (Composite)
Utilizado para construir objetos complejos a partir de otros más simples, utilizando para ello la composición recursiva y una estructura de árbol.

Envoltorio (Decorator)
Permite añadir dinámicamente funcionalidad a una clase existente, evitando heredar sucesivas clases para incorporar la nueva funcionalidad.

Fachada (Facade)
Provee de una interfaz unificada simple para acceder a una interfaz o grupo de interfaces de un subsistema.

Peso Ligero (Flyweight)
Elimina la redundancia o la reduce cuando tenemos gran cantidad de objetos con información idéntica.

Apoderado (Proxy)
Mantiene un representante de un objeto.

PATRONES DE COMPORTAMIENTO

Cadena de responsabilidad (Chain of responsibility)
La base es permitir que más de un objeto tenga la posibilidad de atender una petición.

Orden (Command)
Encapsula una petición como un objeto dando la posibilidad de “deshacer” la petición.

Intérprete (Interpreter)
Intérprete de lenguaje para una gramática simple y sencilla.

Iterador (Iterator)
Define una interfaz que declara los métodos necesarios para acceder secuencialmente a una colección de objetos sin exponer su estructura interna.

Mediador (Mediator)
Coordina las relaciones entre sus asociados. Permite la interacción de varios objetos, sin generar acoples fuertes en esas relaciones.

Recuerdo (Memento)
Almacena el estado de un objeto y lo restaura posteriormente.

Observador (Observer)
Notificaciones de cambios de estado de un objeto.

Estado (Server)
Se utiliza cuando el comportamiento de un objeto cambia dependiendo del estado del mismo.

Estrategia (Strategy)
Utilizado para manejar la selección de un algoritmo.

Método plantilla (Template Method)
Algoritmo con varios pasos suministrados por una clase derivada.

Visitante (Visitor)
Operaciones aplicadas a elementos de una estructura de objetos heterogéne
a.

Friday, September 5, 2008

Bugs en google chrome

Me pasaron un artículo en el que explica los problemas de seguridad que encontraron en el navegador de Google o.O

Es un error que se encuentra en el Webkit de Apple a través del cual un pirata podría ejecutar aplicaciones en la computadora de la víctima.

Dicen que fue un detalle que los desarrolladores de Google pasaron por alto.

Existe una demo que la pueden probar en sus máquinas.

El link directo al artículo es: http://alt1040.com/2008/09/encuentran-la-primer-seria-falla-de-seguridad-en-chrome/

Y la demo la encuentran en DEMO

Bueno, desde aquí les mando barra para que mejoren, hay que darle chance... aún es una Demo =P No empezaron tan mal que digamos =D

Lo que Me gusta De google chrome

Cuando entré a la página principal de Google, leí "¡Nuevo! Descarga Chrome (BETA) - nuevo navegador de Google" y no le di importancia. Después en momentos de descansillo =p lo descargué y lo estoy usando ahora. Uhm pues si, me parece bonito. Y como dice en su misma descripción de este navegador: Su objetivo es que los usuarios obtengan la información que buscan y accedan a los sitios web con la mayor rapidez posible.


Me agrada mucho el Modo Incógnito (para que las páginas que visitamos no aparezcan en el historial web) =p. También las vistas en miniatura de las páginas visitadas. La interfaz es chula y las pestañas o tabs son independientes =)

Thursday, August 28, 2008

Para hacer de los juegos, más reales

Es interesante ver cada vez cómo los gráficos de los juegos parecieran cada vez más reales, esos personajes parecieran de verdad, los lugares por los que uno va navegando... embargo, ciertos detalles pueden sacarte un poco de la fantasía, cuando, por ejemplo, te acercas a una pared de “madera” que parece más una superficie recubierta de papel pintado.














Una de las formas para trabajar estas texturas, es modelarlas en 3D pero para un juego completo tomaría bastante tiempo, otra es utilizando los escáneres láser pero es muy caro.

¿Entonces? Hay una forma económica con la que se puede obtener los mismos o acertados resultados, desarrollado por la Universidad de Manchester. Se trata de tomar una foto de la textura deseada con flash y luego repetir el proceso sin éste. Aquí es donde entra en juego la técnica desarrollada por el equipo de la universidad.

Se trata de un programa que puede deducir la profundidad de una fotografía comparando las fotos. Para lograr esto, usa la luz, deduciendo que aquello que se ve más oscuro está en un sitio más “oculto”, es decir, un agujero o algo por el estilo. Sin embargo es importante usar las dos fotografías, porque las variaciones de color en la superficie de la que queremos separar la textura podrían modificar los resultados. Así, al comparar ambas fotos, se obtendrían texturas de excelente calidad para el modelado 3D.




Esto son muy buenas noticias, ya que significa que los gráficos de los juegos próximos a ver la luz serán aún más reales. Sin embargo, esto nos hace preguntarnos: juegos con tanto detalle, ¿requerirán demasiado poder de proceso por parte de nuestro ordenador?

Fuente: www.neoteo.com Revista tecnológica.

Saturday, June 2, 2007

¿Qué son los widgets?

Uhm sí, tal vez ya la mayorìa lo sepa, pero yo hoy realmente aprendì su significado, aunque ya lo conocía en la práctica, jeje... uds. también. Por ejemplo, la información del clima de mi ciudad elaborado por AccuWheater.com es un widget! El juego de Pacman es un widget! El calendario, etc. y todas las cositas que ven aquí a la derecha, jeje.

En informática, un widget es una pequeña aplicación o programa, usualmente presentado en archivos o ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine. Entre sus objetivos están los de dar fácil acceso a funciones frecuentemente usadas y proveer de información visual. Sin embargo los widgets pueden hacer todo lo que la imaginación desee e interactuar con servicios e información distribuida en Internet.

Los widgets de escritorio también se conocen como gadgets, una nueva categoría de mini aplicaciones, diseñadas para proveer de información o mejorar una aplicación o servicios de un ordenador o computadora, o bien cualquier tipo de interacción a través del World Wide Web, por ejemplo una extensión de alguna aplicación de negocios, que nos provea información en tiempo real del estatus del negocio u organización.

Una característica común a los widgets, es que son de distribución gratuita a través de Internet. El modelo de mini aplicaciones de widgets, es muy atractivo por su relativamente fácil desarrollo: muchos de los widgets, pueden ser creados con unas cuantas imágenes y con pocas líneas de código, en lenguajes que van desde XML, pasando por JavaScript a Perl, y C# entre otros.

Se considera que la palabra widget proviene de la combinación de window-gadget (que se interpretaría como aparato, artilugio o dispositivo de ventana).

También tiene otro significado en el contexto de programación.
En el contexto de la programación de aplicaciones visuales, los widgets tienen un significado más amplio como componente o control visual que el programador reutiliza y tienen un gran valor para el usuario, idea íntimamente ligada con el concepto de interfaz gráfica de usuario (GUI por sus siglas en inglés).

Los widgets a veces se califican como virtuales para distinguirlos de sus equivalentes físicos. Por ejemplo: los botones virtuales pueden oprimirse con el cursor del ratón, mientras los botones físicos pueden presionarse con los dedos.


Blogalaxia Tags:

Friday, June 1, 2007

Programas de Correo Electrónico

Cuando se habla de envío y recepción de correo electrónico, entra en juego 4 programas, sólo 2 son no excluyentes, los cuales cada uno de ellos desempeñan un papel específico. Son conceptos que no son complejos de entender pero por lo general a las personas sólo les interesa, como emisores, tener un e-mail y sus amigos, como receptores, tener también un e-mail. Sin embargo, como todo, existe una explicación de su funcionamiento.

MUA (Mail User Agent, Agente de usuario de correo)
Se trata de un programa utilizada directamente por el usuario para (mínimamente) enviar, recibir, leer y escribir mensajes de correo electrónico. A un MUA se le denomina normalmente Cliente de Correo.
Como por ejemplo, y para que te des cuenta ya que es seguro que tú ya lo conoces, tenemos a Outlook Express, Mozilla Thunderbird, etc. Por otro lado también están los webmails, como por ejemplo GMail, Yahoo, HotMail, etc.

MTA(Mail Transfer Agent, Agente de Transferencia de Correo)
Es el programa que transfiere los mensajes de coreo electrónico entre máquinas que usa el protocolo SMTP. Un mensaje puede pasar por varios MTA hasta llegar al destino final.
Aunque el proceso de envío de mensajes entre las máquinas pueden parecer bastante directo, todo el proceso de decidir si un agente MTA concreto puede o debe aceptar un mensaje para entregarlo a un host remoto es bastante complicado. Además, debido a los problemas de correo basura, el uso de un MTA concreto normalmente está limitado por la propia configuración del MTA o el acceso a la red del sistema que lo ejecuta.
Como ejemplos de MTAs tenemos a SendMail, QMail, Postfix, etc.

MDA (Mail Delivery Agent, Agente de Entrega de Correo)
Este programa tiene el objetivo de entregar el correo electrónico al buzón de un usuario concreto. Estos agentes no transportan mensajes entre sistemas ni actúan como interfaz para el usuario final.
Sin embargo, muchos usuarios no utilizan directamente agentes MDA, porque sólo se necesitan agentes MTA y MUA para enviar y recibir correo. Sin embargo, algunos agentes MDA se pueden utilizar para ordenar los mensajes antes de que los lea el usuario, lo cual es de gran ayuda si recibe una gran cantidad de correo.
Como ejemplo tenemos a ProcMail, Maildrop, etc.

MSA (Mail Submission Agent, Agente de Sumisión de Correo)
Es quien recibe un email que le entrega el MUA y se encarga de mandarlo por SMTP a un servidor en particular (normalmente el de nuestro ISP). Este término es poco usado y se suele omitir. Muchas veces esto se integra al MUA


Blogalaxia Tags: