Visitas por el Mundo:

El mundo de las supermáquinas

IBM anunció el inicio de la construcción de Sequoia, la supercomputadora que cuando esté lista en 2012 será, según la compañía, la más poderosa del planeta. Su poder de cálculo teórico será mayor que el de los 500 equipos más rápidos del planeta sumados, llegando a realizar 20 petaflops, es decir, 20.000 billones de operaciones matemáticas por segundo. Ocupará más de 300 metros cuadrados, donde 96 servidores (cada uno del tamaño de una heladera) albergarán unos 200.000 procesadores, cada uno con 8 núcleos.

Además, tendrá 1,6 Petabytes de memoria RAM, es decir, 1.600.000 gigabytes de memoria distribuida entre sus procesadores.
En IBM ofrecen la siguiente analogía para tratar de comprender este poder de cálculo: si todos los habitantes del planeta hicieran cuentas, cada uno con una calculadora, todo el día, tardarían 320 años en hacer lo que Sequoia resolverá en una hora.

Para lograr semejante performance, las supercomputadoras se especializan en cálculos paralelos tomando una ecuación matemática y dividiéndola en trozos pequeños que son distribuidos entre varios procesadores, para que cada uno resuelva esas cuentas sencillas y así lleguen más rápido a la solución
El uso típico para las supercomputadoras es la simulación de el clima de una región o la manera en que determinadas moléculas se combinan entre sí para generar nuevos compuestos, entre otros.

Sequoia será usada por el Departamento de Energía de los Estados Unidos para supervisar el arsenal nuclear de ese país, además de realizar estudios en astronomía y cambio climático.

Aprovechar al máximo la capacidad de estos sistemas es un problema creciente. El programador tiene que pensar en cómo dividir las tareas para asignarlas a los diferentes procesadores, pero además tener en cuenta cuando un procesador va a enviar su resultado a otro debido a que por el ritmo que tienen estos equipos, para cuando ese dato llega puede estar desactualizado, o influir de manera inesperada lo que está haciendo ese otro chip.

Además, no todas las tareas pueden dividirse de la misma forma para resolverse en paralelo; por eso es muy difícil que una supercomputadora opere todo el tiempo al 100% de su capacidad.
Fuente: La Nacion
Felicidades Chuky Espero Que Tengas Un Muy Feliz Cumpleaños y Mucha Suerte En todo lo que Emprendas Este Año....Saludos Desde Posadas

Conversor de sistemas numéricos

Bueno gente, este es un simple sistema que permite el paso de cualquiera de los cuatro sistemas (binario, octal, decimal y hexadecimal) a cualquiera de los mismos.

El código es simple y no presenta problemas...

Una pantalla del Programa:




Haz click aquí para descargar el archivo.


Bueno eso fue todo, este es el conversor de sistemas, para VB 6.0, nos vemos, chau...
Codigo:
Dim b As Integer
Const NumChars = "0123456789ABCDEF"

Rem Transforma un número en decimal
Rem S = Número (cualquier base)
Rem NumBase = Número de la Base
Rem 2=Binario, 8=Octal, 10=Decimal, 16=Hexadecimal
Rem Si hay un error, retorna -1.
Function ToDec(ByVal S As String, ByVal NumBase As Integer) As Long
Dim R As Long, I As Integer, P As Integer
R = -1
S = UCase(S)
If (NumBase = 2) Or (NumBase = 8) Or (NumBase = 10) Or (NumBase = 16) Then
R = 0
For I = 1 To Len(S)
P = InStr(NumChars, Mid(S, I, 1))
If (P = 0) Or (P > NumBase) Then
R = -1
Exit For
End If
R = R + (P - 1) * (NumBase ^ (Len(S) - I))
Next I
End If
ToDec = R
End Function


Rem Transforma un número decimal en otras bases
Rem N = Número a convertir
Rem NumBase = Número de la Base
Rem 2=Binario, 8=Octal, 10=Decimal, 16=Hexadecimal
Rem Si hay un error, retorna una cadena vacía.
Function FromDec(ByVal N As Long, ByVal NumBase As Integer) As String
Dim S As String
S = ""
If ((NumBase = 2) Or (NumBase = 8) Or (NumBase = 10) Or (NumBase = 16)) And (N >= 0) Then
Do
S = Mid(NumChars, (N Mod NumBase) + 1, 1) + S
N = Fix(N / NumBase)
Loop Until (N = 0)
End If
FromDec = S
End Function


Rem Convierte de Cualquier base a cualquier base.
Rem N = Núero a convertir
Rem fromBase = Base de origen (2, 8, 10, 16)
Rem toBase = base destino (2, 8, 10, 16)
Function Convert(ByVal N As String, ByVal fromBase As Integer, ToBase As Integer) As String
Dim Nm As Long, S As String
Nm = ToDec(N, fromBase)
If (Nm = -1) Then
S = ""
Else
S = FromDec(Nm, ToBase)
End If
Convert = S
End Function

Private Sub Command1_Click()
Text2.Text = Convert(Val(Text1.Text), Combo1.ItemData(Combo1.ListIndex), Combo2.ItemData(Combo2.ListIndex))
End Sub

Private Sub Form_Load()
b = 1

Combo1.Clear
Combo1.AddItem "Binario"
Combo1.ItemData(Combo1.ListCount - 1) = 2
Combo1.AddItem "Octal"
Combo1.ItemData(Combo1.ListCount - 1) = 8
Combo1.AddItem "Decimal"
Combo1.ItemData(Combo1.ListCount - 1) = 10
Combo1.AddItem "Hexadecimal"
Combo1.ItemData(Combo1.ListCount - 1) = 16

Combo2.Clear
Combo2.AddItem "Binario"
Combo2.ItemData(Combo2.ListCount - 1) = 2
Combo2.AddItem "Octal"
Combo2.ItemData(Combo2.ListCount - 1) = 8
Combo2.AddItem "Decimal"
Combo2.ItemData(Combo2.ListCount - 1) = 10
Combo2.AddItem "Hexadecimal"
Combo2.ItemData(Combo2.ListCount - 1) = 16

End Sub

Private Sub Timer1_Timer()
For I = 1 To 288 Step 10
Label3.Left = Label3.Left + b
If Label3.Left >= (Form1.Width - 2190) Or Label3.Left <= 120 Then b = b * -1 End If Next I End Sub


Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, LOOk_As.

Las Posibilidades de la Nanotecnología

Hola gente, como andan?? A pedido de Chuky posteo esta “Noticia” Futurista. Probablemente ya lo hayan visto antes. Se trata de un celular “Concepto” de Nokia llamado Morph. Un dispositivo que aprovecha las ventajas de la Nanotecnología y de la Nanociencia para modificar su forma, su apariencia, cargar su batería, evitar ensuciarse, etc.

Como se pueden imaginar al ser un “Concept” ni siquiera existe un prototipo pero demuestra que el departamento de investigaciones de Nokia está trabajando en el tema en conjunto con el “Centro de Nanociencia de la universidad de Cambridge”.


Página del Nokia Morph: http://www.nokia.com/A4852062

Video:



Algunos Conceptos:

Nanotecnología: ciencias dedicadas a la manipulación de la materia a nivel atómico y molecular

Nanociencia: El estudio que trata de comprender qué pasa a estas escalas.

KeyLogger by Pelonchas

Hola gente! aprovecho este espacio para saludarlos y presentarme. I'm Pelonchas de Posadas Misiones, llevo 20 y estoy estudiando Ing. en Inf. Bueno ya fue, paso a contar que estuve mirando el Keylogger de Chuky y me pareció que había cosas para cambiar, así es como salio una nueva versión hecha por mi. El aspecto visual casi no lo toque, cabe aclarar que si cambia el color o algo de eso es porque no veía bien en mi monitor ;)

Bueno básicamente el alma del programa de Chuky es un Timer donde se llama a la función "GetAsyncKeyState" que está dentro de la librería "User32". Esta función devuelve "-32767" en caso de que el código-carácter que se indico en el argumento de dicha función, corresponda con la tecla presionada en el teclado. (En realidad la función es mucho mas complicada que solo eso, pero la información en español es escasa o busque mal, como sea no tengo intención de describirla en profundidad).

Bueno ya tenemos el código-carácter de la tecla presionada y ahora es cuando diferimos con Chuky, el plantea la idea de mediante un "Select Case" mandar a mostrar el carácter correspondiente. Esto es muy tedioso porque hay 256 posibilidades y no estoy dispuesto a hacer cada una, entonces encontré una serie de funciones, también de "User32", que ya hacían esto. La única que pude "hacer andar" fue "MapVirtualKey" que en pocas palabras traduce el código del carácter en el carácter, valga la repetición y no la redundancia.

La otra gran diferencia con el de Chuky es que el hace una función nueva por cada carácter a mostrar, yo plantee una sola función a la que se le pasa como argumento el carácter a mostrar y lo hace.

Cambios menores:
* Me pareció que si se podía borrar lo que se “tecleaba” no cumplía la función de Keylogger, entonces opte por sacar la función “resta” que permitía borrar lo ingresado.
* Cambié las teclas para mostrar y ocultar el formulario. Ahora se hace ambas con F10.
* Para funcionar el botón “Borrar Todo” era necesario otro Timer que me pareció innecesario, opte por quitarlo (al Timer) y además incluí un MsgBox para confirmar que se quiere borrar todo.
* “ON/OFF” servían para posibilitar la copia de lo “capturado” hasta el momento, para hacerlo habilitaban y deshabilitaban la edición del TextBox. Esto me pareció malo porque se podía adulterar accidentalmente lo capturado; en fin mi idea fue eliminar esos dos botones y puse uno solo que en cualquier momento que se desee se lo puede presionar y se guardará en el Clipboard/porta papeles lo seleccionado/sombreado en el TextBox (en caso de no seleccionar nada se copia todo el contenido).
* Los botones “Prendido” y “Apagado” los fusioné en uno solo y cambié los Caption’s porque me sonaba feo ;)


Aclaración: subo dos versiones, una Simple y otra Extendida. La simple contiene lo que explique hasta ahora. La Extendida es lo mismo más todas las teclas que se pueden presionar que no traduce la función. Es decir teclas como "[F1]" "[F2]" "[Enter]" "[Esc]" también los botones del mouse, no indica la posición pero si que botón fue presionado. En la versión simple las teclas que no se pueden traducir las pone como "|".


Haz click en los link para poder descargar los archivos por separado.

________________________________________

Versión SIMPLE        |        Versión EXTENDIDA

________________________________________


Bueno creo que eso es todo lo que toqué. Espero haber sido claro y ojala se entienda que los cambios no son por creerme superior a Chuky sino que es mi versión de cómo veo la solución de este problema.

Y ahora si plagiando a Chuky: Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Pelonchas.

Pasar de Binario a Texto Plano

Hola de nuevo. Les comento que estos últimos días no estuve mucho tiempo en la PC como para poder subir un post nuevo. Así que subo uno ahora un poco simple pero post al fin. Desde ya quiero agradecer a aquellos que en esta semana estuvieron divulgando el Blog, Y gracias a esto la comunidad ya es internacional, pasando por Colombia, Venezuela, España, Perú, República Dominicana, Guatemala, Ecuador, y Argentina. Espero que se pueda llegar a ampliar bastante la comunidad. Ahora sin más preámbulos, procedo a centrarme más en el título del post.

ALGUNAS GENERALIDADES:

Binario:
El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Los ordenadores trabajan internamente con dos niveles de voltaje, por lo que su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

Código ASCII:
El código ASCII (acrónimo inglés de American Standard Code for Information Interchange — (Código Estadounidense Estándar para el Intercambio de Información), pronunciado generalmente [áski], es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales. Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.
El código ASCII utiliza 7 bits para representar los caracteres, aunque inicialmente empleaba un bit adicional (bit de paridad) que se usaba para detectar errores en la transmisión. A menudo se llama incorrectamente ASCII a otros códigos de caracteres de 8 bits, como el estándar ISO-8859-1 que es una extensión que utiliza 8 bits para proporcionar caracteres adicionales usados en idiomas distintos al inglés, como el español.


¿Cómo se relacionan el Código ASCII y el binario?

Cada caracter del Código ASCII es correspondiente a un número de referencia, por ejemplo el número de referencia de la letra minúscula "a" es 97 y se puede comprobar escribiendo en el num. pad la tecla "9" seguida por la "7" manteniendo en todo momento la tecla Alt, y soltándola cuando se hayan escrito todos los números.
También sabemos que existen hasta 255 caracteres en el código ASCII, así que se procede en representar estos números de referencia a través de código binario de 8 bit.


Haz click aquí para bajar el archivo.



Una Pantalla del Programa:



Modo de uso:
Más simple imposible, ingrese en la primer caja de texto, en sistema binario, lo que desea traducir de binario a texto plano. Presione el botón "Pasar". Y en la segunda caja de texto aparecerá el mensaje traducido a texto plano.


A tener en cuenta: Al momento de ingresar el código binario que contiene el mensaje que se desea traducir, tener en cuenta que dicho código debe ser de 8 bits cada caracter, separado por espacios, de lo contrario podrían surgir inconvenientes.



Ante cualquier inconveniente comenten explicando su duda o problema. Si se les ocurre sugerir alguna idea para mejorar este código fuente, bienvenida sea, solo haz el comentario.

Espero que les haya gustado y hayan aprendido algo nuevo en este código fuente. Saludos, Chuky.