Mostrando las entradas con la etiqueta Sistemas Computacionales. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Sistemas Computacionales. Mostrar todas las entradas

lunes, 27 de agosto de 2007

Administración de un Proyecto de Software

En estos días he estado desarrollando varias interfaces en mi querido Visual Studio 2005, además de que en mi clase de Programación Orientada a Objetos, me recordaron la importancia de Administrar bien los proyectos en que uno está metido.

No saben lo bien que se trabaja cuando uno administra bien su relajo.

Las fallas se corrigen sin problema, se hace código escalable, etc.

Adminístrense en sus proyectos de Software y verán que el desarrollo será más placentero, adminístrense en la vida y verán que será más placentera... ñ_ñ

viernes, 27 de julio de 2007

Open Source

Hoy platicaba con un primo en la mañana sobre la fuerza que ha tomado el Open Source y cómo ha permitido que mucha más gente tenga acceso a la programación, sin tener que pagar un solo centavo por usar ciertas herramientas.

Yo llevo ya algunos años programando con Microsoft Visual Studio .NET y he ganado buen dinero gracias a ello. Había decidido seguir la línea del software licenciado, pero estos últimos días uno se encuentra con cosas como el Proyecto Mono y dice: "ya me he metido demasiado en .NET y ahora no necesito desviarme mucho para aplicar eso, pero ahora con Open Source".

Windows Vista me ha decepcionado, parece el nuevo Windows Me que todo mundo aborreció. Lo único bonito es el Flip 3D y las vistas previas "reales" y la ventanas transparentes. Pero ante lo anterior está Beryl.

Tendré que pensar qué hacer, pero cuando estoy por decir "esto no lo encuentras en Open Source", sale a relucir eso que pensaba que no estaba y tengo que cerrar la boca...

jueves, 26 de julio de 2007

El precio de mi cuerpo

Me encontré con esto en ba-k.com y me metí a checar cuánto valdría mi cuerpo ya una vez muerto (el precio es el de la imagen, para los interesados y está en dólares).

Lo que hace este sistemita es una serie de preguntas sobre nuestros hábitos en vida y en base a eso calcula nuestro precio al morir, dénle una checada a su precio en http://mingle2.com/cadaver-calculator (gracias darkken)...


$4200.00The Cadaver Calculator - Find out how much your body is worth. From Mingle2 - Free Online Dating

Mingle2 - Free Online Dating

miércoles, 25 de julio de 2007

Algoritmos de Encriptado

En un foro de ba-k.com, un bakuno preguntaba sobre algoritmos de encriptado. Una ocasión me dijeron que si no era experto en la materia, ni se me ocurriera intentar crear uno, porque lo más seguro es que un experto lo resolviera sin problemas. De manera que me alejé del tema, pero ahora que me vuelvo a encontrar con él, me puse a buscar y les comparto un boletín muy interesante que encontré con URL http://digital.el-esceptico.org/leer.php?autor=17&id=131&tema=48:

DE LA CLAVE DEL CÉSAR A LOS ALGORITMOS DE ENCRIPTACIÓN (Por Borja Marcos)

Suponga que necesita enviar un mensaje por un asunto de vida o muerte y no confía en absoluto en su portador. Suponga, además, que el mensaje será completamente inútil si una tercera persona llega a conocer su contenido. ¿Qué hacer? La solución es codificar el mensaje de manera que solamente el destinatario sea capaz de descifrarlo.

Esta situación se ha dado a lo largo de toda la historia de la humanidad. El acceso a la información (o la diseminación de información falsa) puede decidir una batalla, hacer triunfar o fracasar una operación comercial, etc. En la actualidad, la criptografía es la herramienta fundamental para el desarrollo del comercio electrónico. Los métodos infantiles, como sustituir unas letras por otras (clave del César), se empleaban en tiempos de los romanos, pero hoy resultan completamente inútiles. La historia de la criptografía ha sido una lucha constante entre los diseñadores de nuevos algoritmos y los criptoanalistas, algo así como la permanente lucha entre los fabricantes de cerraduras y los ladrones.

Mientras los sistemas se han hecho cada vez más complejos, los criptoanalistas han perfeccionado sus técnicas. Diseñar un algoritmo de encriptación seguro hoy día es una tarea extremadamente difícil; es impensable crear uno no siendo experto en la materia. Por esta razón, los métodos de encriptación son como las cerraduras. Un valor secreto -un número-, llamado clave, altera el funcionamiento del algoritmo, de manera que un mensaje encriptado con una clave dada solamente puede ser decodificado con la misma clave. El algoritmo puede ser público, pero la clave es inútil si se divulga, y no siempre es posible citarse con el interlocutor en un bar para comunicársela. Para ello -y otras aplicaciones-, se han diseñado los llamados algoritmos de clave pública, que emplean dos claves en lugar de una. Una de ellas, la llamada «pública», se emplea para encriptar el mensaje, que se podrá descifrar únicamente con la privada. Este sistema permite difundir sin peligro la clave pública. Como es lógico, por muy seguro que resulte un algoritmo de encriptación, siempre sucumbirá a un ataque de fuerza bruta, consistente en probar todas las claves posibles. Por este motivo se emplean números descomunales. Conforme crece la potencia de los computadores se emplean claves mayores. El tamaño de clave se mide en bits (dígitos binarios) y, por ejemplo, el algoritmo estándar americano DES (quizá el más utilizado hoy día), emplea claves de 56 bits (72.057.594.037.927.936 posibilidades); los nuevos algoritmos pueden emplear claves de 128 (340.282.366.920.938.463.463.374.607.431.768.211.456 posibilidades).

En el caso de los algoritmos de clave pública, es necesario que, conociendo una de las dos claves, no sea posible conocer la otra; para ello se aprovecha algún problema matemático de difícil resolución. Por ejemplo, en el algoritmo RSA -el más utilizado en la actualidad-, para poder hallar las claves es necesario factorizar un número muy grande, una operación inabordable con números muy grandes, del orden de 1.024 ó 2.048 bits. Aunque si alguien descubriera un método revolucionario -cosa muy improbable- para hacerlo, la clave se volvería inservible.

UN FUTURO CUÁNTICO

Los computadores cuánticos, hoy día en fase temprana de investigación, podrían llegar algún día a facilitar la factorización casi instantánea de los números que hoy empleamos como claves públicas, haciéndolas inservibles. Sin embargo, la física cuántica ofrece a cambio una nueva posibilidad: la criptografía cuántica. Aprovechando las propiedades de las partículas, como el principio de incertidumbre, es posible crear un sistema que permitiría detectar la interceptación del mensaje y al mismo tiempo garantizar su secreto. Se han realizado experimentos que permiten aventurar la viabilidad de tal sistema, aunque para ello faltan aún algunos años. Si los computadores cuánticos llegan a ser una realidad algún día, es posible que la criptografía cuántica tome el testigo en la carrera entre quienes crean los códigos y quienes se dedican a romperlos.

LA ERA MODERNA

Hasta este siglo, la criptografía era un arte guardado en el más celoso secreto. La era moderna de la criptografía comienza cuando Claude E. Shannon publicó, en 1949, su artículo «Communications Theory of Secret Systems», definiendo las propiedades que debía tener un algoritmo de criptografía, convirtiéndola en ciencia. Su publicación en una revista no clasificada dio además el pistoletazo de salida para su investigación pública. Por otro lado, los computadores se han convertido en una herramienta de comunicación, poniendo al alcance del público los más potentes algoritmos.

martes, 10 de julio de 2007

Cielo y tierra

Aprovecho la categoría de Sistemas Computcionales para hablarles del libro "Cielo y Tierra: de lo visible y lo invisible".

Se trata de una compilación de fotos tomadas con aparatos muy especializados y que, con ayuda de sistemas de cómputo (por eso la inclusión en esta categoría) y electrónicos, nos permiten ver los invisible y darnos cuenta de la realidad de lo visible.

En el libro encontramos fotos organizadas desde lo más diminuto (tomado con microscopios) hasta lo más lejano (tomado con telescopios muy potentes).

Podemos admirar virus, cabello, copos de nieve, la lengua, planetas, nebulosas, estrellas...

Muy pero muy recomendable.

lunes, 9 de julio de 2007

Centros de Negocios y Tecnología Acapulqueña

La verdad es que el chiste de pasar el fin de semana en Acapulco era desestresarse y olvidarse de las computadoras, el trabajo, la escuela, la ciudad. El chiste era (y fué) respirar otros aires.

A pesar de lo anterior fue imposible no percibir cómo ya en los centros turísticos la tecnología no puede faltar. Elevadores modernos, centros de negocios con internet de alta velocidad y computadoras muy potentes, sistemas de cómputo muy avanzados para los restaurantes, control de huépedes y más, llaves para los cuartos que son tarjetas, cajas de seguridad electrónicas, televisión por cable, internet inalámbrico en los cuartos, etc.

Lo que llama la atención es que algunos de estos servicios, que en la Ciudad de México suelen ser baratos (o tal vez no lo son del todo pero ya nos acostumbramos a esos precios), allá todavía tienen precios muy elevados (llegué a ver un café internet que cobraba $30.00 pesos la hora).

jueves, 5 de julio de 2007

Conceptos en Internet

Con el boom de la Internet y de algunos (o más bien muchos) de sus servicios como la WWW, el e-mail, los chat, los foros, etc., han surgido una serie de conceptos tomados por lo general del idioma inglés para referirse a ciertas personas o acciones u objetos o técnicas, dentro de las comunidades de la web.

Aquí les pongo algunos de los más comunes con su definición para que los conozcan y no se saquen de onda o no entiendan de plano (porque suele ocurrir) algún texto en internet:

-> P2P: viene del inglés Peer-to-peer (literalmente par a par o punto a punto) y es una red informática en la que no hay clientes ni servidores como tal, sino una serie de nodos conectados entre sí en los que todos pueden ser clientes y servidores para compartir su información. Hoy se usa mucho el término de programas o software P2P para designar a los sistemas que uno instala para bajar todo tipo de archivos de internet que se encuentran en equipos en todo el mundo que comparten su información. Se supone que uno debe compartir archivos también, pero muchos no lo hacen y se les considera leechers.

-> warez: son comunidades en internet donde se comparte software, música, libros y muchas cosas más pero sin tener en cuenta los derechos de autor. Se consideran ilícitas pero en realidad son útilies si tomamos en cuenta los altos precios de los materiales originales.
-> wikis: son sitios web o comunidades en internet colaborativas que pueden ser editadas por varios usuarios. Una wiki famosa es Wikipedia donde todo mundo puede colaborar en la definición de conceptos siempre y cuando haya fuentes fidedignas.
-> IRC: es la abreviación de Internet Relay Chat y éste es un protocolo de comunicación en tiempo real basado en texto que permite debates o pláticas o discusiones en grupo.

-> leecher: se usa en foros, redes P2P, comunidades Warez, entre otros, para referirse a los usuarios que se aprovechan de los recursos ofrecidos sin colaborar ni aportar con alguno. Es decir si yo pertenezco a una red P2P y no comparto archivos, música o libros pero sí la aprovecho para bajar lo que los demás miembros comparten, soy sin duda un leecher (de estos hay muchos, por lo general la mayor parte de personas que conozco que tienen Ares, LimeWire u otro P2P no comparten absolutamente archivo de tipo alguno).

-> lamer: se usa en foros, redes P2P, entre otros, para referirse a los usuarios que a pesar de llevar mucho tiempo en la comunidad no pueden aprender a realizar ciertas acciones (subir fotos, videos, etc visibles en un foro por ejemplo) y pareciera que son novatos.

-> troll: se usa principalmente en foros, IRC's, weblogs o wikis para referirse a los usuarios que buscan intencionadamente interrumpir el tema o desviarlo usando palabras o mensajes agresivos u ofensivos.

-> ban: es una restricción de un usuario dentro de un sistema informático. Si en un foro te dicen que estás baneado, se refiere a que fuiste expulsado del mismo y no tendrás posibilidad de regresar.

-> spammer: es una persona o bot que se dedica a la distribución o presentación de spam (correo o mensajes basura).

-> bot: es un programa informático que realiza funciones que normalmente debería realizar un humano. Los hay benignos y malignos. Uno benigno podría ser el bot de Encarta que responde a cuestiones del sitio. Uno maligno podría ser el usado para dar de alta muchas cuentas de correo en un servidor público, lo que termina por saturarlo.

-> hacker: entusiasta de la informática. Siempre intenta imponerse retos informáticos y superarlos pero no con fines maliciosos.

-> cracker: informático especializado en acceder ilícitamente a equipos de cómputo protegidos por contraseña con fines maliciosos.

Hay muchas más de estas palabras, si tienen duda de alguna o me apoyan comentando con otras se les agradece.

lunes, 2 de julio de 2007

Diferencia entre JavaScript y ActionScript

Pues bien, buscando información sobre el por qué del cambio de nombre de Macromedia Flash a Adobe Flash (que era prácticamente obvio, Adobe compró a Macromedia) encontré algo interesante sobre la diferencia entre JavaScript y ActionScript.

Por un lado, JavaScript es un lenguaje interpretado (que no necesita ser compilado), utilizado en páginas web y que está basado en prototipos (no es orientado a objetos como Java porque no dispone de Herencia, sino que las nuevas clases se generan clonando las clases base o prototipo y extendiendo su funcionalidad). Por otro, ActionScript es un lenguaje que utiliza Flash para darle cierto dinamismo a algunos objetos. Está basado en JavaScript pero ya es orientado a objetos.

jueves, 21 de junio de 2007

Crear matrices dinámicas en C/C++

Ya que un buen cuate tenía duda de si se podían declarar matrices dinámicas en C/C++, aquí la respuesta:

Primero declaro un doble puntero:

int **matriz;

Luego le pongo el tamaño a las filas:

matriz = (int **)malloc(sizeof(int *)*noFilas);

Luego, a cada fila le pongo el número de columnas que tendrá la tabla:

for(i = 0; i < noFilas; i++)
matriz = (int *)malloc(sizeof(int)*noColumnas);

y de esta forma manejas tu matriz como si fuera estática:

matriz[2][5] = 25;

Osea que sí se puede.

miércoles, 20 de junio de 2007

Desarrolla UNAM modelo de cómputo para operar presa El Cajón

A través de un modelo de cómputo en tercera dimensión de la hidroeléctrica El Cajón, se podrá navegar en el ambiente de la presa, con el fin de probar opciones de funcionamiento más seguras y confiables en el vertido del líquido.

El proyecto es desarrollado por investigadores de la Facultad de Ingeniería de la Universidad Nacional Autónoma de México (UNAM), con el cual también esperan definir el comportamiento de la estructura en diversas condiciones de escurrimiento, sin necesidad de ir al sitio.

Se informó que en este momento este grupo de especialistas también trabaja en el diseño virtual de la presa La Yesca.

Fuente: Angélica Enciso en La Jornada del 20 de junio de 2007

Yo tuve la oportunidad de ver la simulación de la Presa en las instalaciones de la supercomputadora de la UNAM y me da gusto ver que se ha avanzado en el proyecto y que se le ha dado continuidad.

martes, 19 de junio de 2007

Se firma acuerdo para el sucesor del Hubble

Decidí poner esto como post de la categoría de Sistemas Computacionales porque de cierta forma se relaciona:

Resulta que la NASA y la Agencia Espacial Europea (AEE) firmaron un acuerdo este lunes para cooperar en lo que sería el sucesor del Hubble: el telescopio espacial James Webg (JWST).

lunes, 18 de junio de 2007

Matrices y Ciclos For

Hago este post debido a que no pude explicarle personalmente a un buen amigo lo útil de los ciclos for para la manipulación de matrices en lenguaje C.

Primero que nada, una matriz se puede concebir como una tabla, formada por filas y columnas, donde la intersección de determinada columna y fila generan una celda. Las filas se numeran de 0 a n, lo mismo que las columnas. Nos podemos referir a una celda de acuerdo a la fila y columna que la conforman, así podemos tener a la celda [0, 0], a la celda [2, 5], etc.

Para declarar una matriz con determinado número de filas y columnas, en lenguaje C, usamos la siguiente sintaxis:

tipo_de_dato nombre_de_la_matriz[no_filas][no_columnas];

Siguiendo la regla anterior puedo tener matrices de enteros, de caracteres, de flotantes, etc.:

int matriz1[2][5];
char matriz2[5][2];
float matriz3[6][6];

Ahora, para acceder al dato guardado en una celda de la matriz, tengo que indicar en qué matriz voy a buscar el dato, y en qué celda. A continuación se muestra una línea de código que imprime en pantalla el dato que guarda la matriz llamada tabla en su celda [2,5]:

printf("%d", tabla[2][5]);

Es costumbre de los programadores usar las variables enteras i y j para manipular las filas y columnas de una matriz, respectivamente. Aquí es donde entran los ciclos for que facilitan mucho el trabajo.

Se requiere de un ciclo for que manipule las filas y de otro dentro del primero que manipule las columnas. El siguiente código lee desde teclado datos de tipo caracter y los guarda en las celdas una matriz de 2 por 5:

for(i = 0; i < 2; i++){
for(j = 0; j < 5; j++){
scanf("%c", tabla[i][j]);
}
}

Nótese que para manipular las 2 filas con que cuento uso la variabl i y para manipular las 5 columnas uso la variable j.

Espero haber sido claro con mi explicación, comenten sus dudas sobre este post e intentaré responderlas a la brevedad.

jueves, 14 de junio de 2007

Microsoft Silverlight

Microsoft presenta a Silverlight, una nueva plataforma multimedia online con la que pretende darle batalla a Flash de Adobe.

Básicamente Silverlight es un subconjunto de XAML (eXtensible Application Markup Language) especialmente diseñado para construir aplicaciones multimedias sobre web.

Anteriormente conocido como "Windows Presentation Foundation/Everywhere" (WPF/E), Microsoft lleva un par de años desarrollando la nueva plataforma.

Es compatible con la mayoría de los navegadores de Internet, entre los que se incluye Safari de Apple y Firefox de Mozilla, y permite a los proveedores de contenidos distribuir juegos, videos y animaciones dinámicas con gráficos avanzados.

Silverlight requiere de la instalación de un plugin, de escaso peso, apenas 2MB y al igual que sucede con Flash, Microsoft Silverlight viene acompañado de herramientas de desarrollo tanto para diseñadores como para desarrolladores de software (gracias a http://www.hispamp3.com/noticias/noticia.php?noticia=20070416173312).

miércoles, 13 de junio de 2007

Microsoft Surface

Pues esto yo ya lo había visto antes en un video que me mostró un compañero de la escuela, pero ahora resulta que Microsoft es el que está detrás y pues a mí si que me sorprende y me parece que es un tema muy ad hoc para esta inauguración de mi blog.

Se trata de Microsoft Surface, una tecnología que permite tomar datos con nuestras propias manos y mover la información entre objetos a través del tacto.

Entre las principales características de Surface se destaca su tabletop display de 30 pulgadas que permite a varias personas trabajar independientemente o simultáneamente, todo sin la utilización de mouse o teclado.

Impresionante...