lunes, 10 de marzo de 2008

Cómo comprar la mejor PC

Yordan Pérez [truano@infomed.sld.cu]

Existen varios artículos con el mismo titulo en el mundo, pero por desgracia no son aplicables para los cubanos, o bien no tenemos acceso a muchas de las cosas que dicen, o bien los precios no son los mismos, el hecho es que mucha gente en Cuba compra las PC sin saber exactamente que está comprando, en este articulo trato de ayudar un poco a ese tipo de personas pues pienso que cuando se vá a emplear la cantidad de dinero que cuesta una computadora, al menos deberíamos saber lo básico sobre lo que estamos adquiriendo”

Uso o Finalidad

Lo primero que debemos hacer antes de comprar una computadora es preguntarnos a nosotros mismos que uso pretendemos darle, cual será la misión de la PC en nuestra casa, porque en dependencia del fin para la cual esté prevista dependerá que inversión debemos hacer, antes de entrar en detalles voy a exponerles mi punto de vista sobre la adquisición de una computadora, no importando el uso que se le dé, mas bien en sentido general.

Las PC viejas (Pentium III o inferior) se están desvalorizando a una velocidad increíble, con la salida de nuevas tecnologías la técnica vieja va quedando cada día mas atrasada, lo cual hace que pierda valor, por lo tanto si compramos un Pentium III porque pensamos que con eso ya resolvemos nuestras necesidades, aunque así sea en realidad, estamos votando el dinero, hace 2 años atrás un P3 costaba alrededor de los 600 dólares, hoy por hoy no pasa de $350, solo en 2 años bajó casi a la mitad del precio, quizás compremos hoy un P3 porque nos sobra para lo que vamos a realizar, pero pasado quizás 1 año, ya no valga ni la mitad de lo que pagamos, entonces estamos perdiendo dinero a una velocidad increíble, eso sin contar que si en algún momento se nos rompe alguna pieza, ya no se fabrican, es decir no están en el mercado diario, pasaremos mas trabajo para adquirir dicha pieza, mi consejo es que a pesar del uso que se le vaya a dar a la PC nunca debemos gastar dinero en tecnología vieja, pues los únicos en perder seremos nosotros mismos.

PC para Jugadores

Me cuento entre los fanáticos a los juegos, no se los recomiendo demasiado a los que recién comienzan en el mundo de la informática ya que son altamente adictivos y no les permitirán tiempo para aprender nada mas, pero quiéralo o no lo quiera, siempre habrán fanáticos a los juegos de PC, ¿como debe estar estructurada una PC para juegos? Uffff posiblemente la mas cara de todas, ningún programa de los que normalmente usamos exige mas de la PC que un juego moderno, por lo tanto un buen PC para juegos debe tener simplemente lo mejor, hablaré de lo mínimo que debe tener un jugador en su PC así como una buena configuración que aunque cara será una experiencia totalmente nueva poder jugar en algo así.

Configuración mínima según mi opinión:
Procesador: Intel P4 2,8 Ghz HT, cache L2 1Mb, Bus 800 Mhz
Memoria RAM: 512 Mb DDR 400 Mhz
Tarjeta de Video: Nvidia GeForce 5750 AGP 128 MB
Monitor: CRT 17”

Configuración Recomendada:
Procesador: Intel Pentium Quad Core
Memoria: 1 – 2 GB DDR2 1024 Mhz
Tarjeta de Video: Nvidia GeForce 8600 GT PCI Ex, 512 MB
Monitor: TFT 19-22”

PC Para Fanáticos de las Películas

En estos casos solamente tengo la siguiente opinión, una PC para este fin solamente tiene que asegurarse de tener buena capacidad en Disco Duro (todos los GB que les sea posible adquirir) una tarjeta de video con salida RCA o S-Video, para poder ver los Films por un TV convencional y un quemador de DVD, las demás características son dispensables, puede ser lo mismo un Pentium que un Celeron.

PC para Fanáticos de la Música

Aquí tenemos un caso similar al de las películas, puede ser cualquier PC mientras tenga una buena tarjeta de sonido, preferiblemente “Creative SoundBlaster” un buen sistema de audio, 5.1 Teatro en Casa sería magnifico, debería tener también buena capacidad en disco duro al menos unos 160-250GB y un quemador de DVD para almacenar la música.

PC para Diseñadores (tanto 3D como Photoshop)

Este tipo de PC requiere un procesador rápido, un Pentium 4 Dual Core estaría bien, con aproximadamente 1GB de Ram y lo demás es un monitor de gran tamaño, 19-21” preferiblemente TFT y un buen mouse óptico.

PC para programadores

Je…. Hasta un 486 sirve, y para los que no saben que es un 486 piensen en la PC donde Cristóbal Colon llevaba su bitácora y ya están viendo que es un 486, con esto quiero decir que no hay ningún tipo de necesidades grandes para los programadores, todo lo contrario, un buen programa que se respete debe poder ser igual de funcional en un Quad Core como en un Pentium MMX.

Resumen

Hay que tener en cuenta que cuando adquirimos una PC por primera ves aun casi nunca tenemos conciencia de para que la queremos, también hay momentos en que pensamos en un principio usarla para una cosa y luego terminamos en otra, pero a la larga lo mas importante es adquirir una PC que nos sirva para futuras necesidades, teniendo en cuenta mi consejo anterior de que cualquier tecnología pasada no hará mas que hacernos perder dinero.

Espero se sientan informados con este articulo, todo ha sido muy a grandes rasgos ya que como todos saben en nuestro país no tenemos acceso a todo lo que necesitaríamos por eso no he entrado en detalles sobre marcas y modelos.

Continuar leyendo

Pasando a Linux

Alix A. [aacg@sum.upr.edu.cu]

Este artículo está escrito para todos aquellos usuarios habituales de Microsoft Windows en cualquiera de sus variantes, que deseen migrar a Linux de forma paulatina y que dispongan de un ordenador con un micro Pentium o superior y una RAM mayor de 128 MB.

Muchos quieren el cambio por que han oído que este sistema es más estable que Windows, que el ataque de virus y troyanos casi llega a cero, etc. Pero en resumen no tiene idea de lo que se van a encontrar; por ello les recomiendo que el cambio lo hagan de forma gradual.

El sistema que les propongo ya ha sido abordado aquí, se trata del Knoppix, que es una de las distribuciones mas ligeras que corren de Linux, pudiéndose ejecutar totalmente desde CD sin tener que instalar en el ordenador. Pero bueno ya que estamos hablando de cambiarnos a Linux les diré como instalar este sistema en el disco duro en este caso la versión 5.1.1 que se puede descargar desde nuestra intranet en: ftp://ftp.upr.edu.cu/Linux/Sistemas_Operativos/Knoppix%205.1.1 y si no pueden yo les puedo facilitar una copia, siempre que me escriban a: aacg@sum.upr.edu.cu

Pues mano a la obra:

Arranquemos el CD de Knoppix 5.1.1 en Español.

Si la versión que tenemos no es la versión en Español podemos arrancar con la opción: boot: knoppix lang=es Configuramos nuestro PC para que inicie por el lector de CD, colocamos en el CD y reiniciamos.
Antes de poder instalar cualquier distribución de Linux y siempre que queramos que esta conviva con otros sistemas operativos, es necesario realizar una preparación del disco duro para declarar las zonas asignadas a cada uno de los sistemas.

Se necesitan al menos dos particiones para Knoppix:
• Partición raíz: root, de al menos 2,5GB.
• Partición de intercambio (swap) para Linux. Elegir un tamaño del doble de la memoria RAM del ordenador (es suficiente con 256MB).

Aunque con dos particiones es suficiente, puede proporcionar ventajas el tener una tercera partición Linux para el directorio /home. De esta forma, a la hora de volver a instalar Linux, nuestros ficheros de datos, configuración personal, etc. no se borrarán. El tamaño podría ser de unos 1000MB y el tipo el mismo que para la partición raíz. Si optamos por esta opción, habrá que asignar esta partición al directorio /home, que por defecto se habrá creado en la partición en la que se instale Knoppix. (En otra ocasión diré cómo hacerlo.)

Un disco duro puede tener un máximo de 4 particiones primarias mientras que no hay límite en la práctica para las particiones lógicas. Windows necesita ser instalado en una partición primaria, mientras que para Linux es indiferente si se instala en una primaria o en una lógica. Por lo tanto nosotros, para instalar Linux lo haremos en particiones lógicas. Para crear particiones lógicas hay que crear una extendida en una de las 4 primarias donde se indicará, mediante el tipo "extended" que lo que contiene son particiones lógicas. En Linux, las particiones se numeran del 1 al 4 para las primarias y del 5 en adelante para las lógicas. Así:
[/dev/hda1 es la primera partición primaria del primer disco duro. /dev/hda2 es la segunda partición primaria del primer disco duro. ... /dev/hda5 es la primera partición lógica del primer disco duro. /dev/hda6 es la segunda partición lógica del primer disco duro. ... /dev/hdb1 es la primera partición primaria del segundo disco duro. /dev/hdb2 es la segunda partición primaria del segundo disco duro. ...]

Inicio del programa knoppix-installer

Después de arrancar KNOPPIX desde CD, abrir una consola de root mediante KNOPPIX --> Consola de root Desde el prompt, escribir:
# knx2hd
Respondiendo a las preguntas, en unos minutos tendremos instalada una distribución Debian totalmente operativa.

Una vez que ejecutemos la orden, nos aparecerá una pantalla, en la que se nos advierte que esta aplicación está todavía en desarrollo y que podríamos perder algunos datos. Es conveniente hacer una copia de seguridad de todos los datos antes de ejecutar esta aplicación. (Yo generalmente no lo hago)

Aparece un menú con las opciones disponibles. Para particionar lo primero que habría que hacer es seleccionar la opción en el menú principal de knoppix-installer si no lo hemos hecho previamente. Haciendo esto se lanzará la ejecución del programa QTPparted.

Al iniciarse esta aplicación en la columna de Dispositivos aparecerán los discos disponibles como /dev/hda, /dev/hdb, etc... Pulsando sobre el disco en cuestión aparecen todas las particiones que este contiene.
Aunque es muy posible que sólo aparezcan dos particiones Fat32 o NTFS si lo que hay instalado es Windows 98, XP o 2003.

Para poder hacer espacio para las particiones de Linux hay que reducir el tamaño de una de estas particiones. Para redimensionar una partición, se selecciona y pulsa con el botón derecho del ratón para ver el menú contextual y utilizar la opción de redimensionar.

Puede indicarse el tamaño en el campo de edición o arrastrando los extremos de la caja de color. Para instalar Knoppix será necesario que después de la redimención queden unos 3 Gb libres por lo menos.

Creación de la partición de intercambio (swap)

Seleccionar la fila correspondiente al espacio libre (Tipo: free) y pulsar con el botón derecho del ratón o pulsar el botón de creación de partición.
Supongamos que el ordenador tiene 128 Mb de RAM --> reservaremos 256 Mb de swap. Para ello, seleccionamos el tipo de partición: lógica y el sistema de ficheros: Linux -swap.

Creación de la partición Linux

En esta partición es donde se instalará el sistema operativo Linux. Al igual que con la partición de swap, creamos una nueva partición lógica con el sistema de ficheros Linux ext3.

Creación de una partición para el directorio home.

Esta partición no es obligatoria, aunque sí recomendable. De forma análoga a las particiones anteriores.

Configurar la instalación (knoppix-installer)

Seleccionamos la primera opción del menú de knoppix-installer. Existen tres modos de instalación de Knoppix en el disco duro:

Tipo de instalación:
• novato: Sistema multiusuario con detección hw
   • Utiliza detección de hardware en cada arranque del sistema.
   • Permite múltiples usuarios.
   • Hereda los comandos en el arranque (boot:) al nuevo sistema
• knoppix: Sistema Knoppix como desde el CD
   • Copia el CD al disco duro.
   • Funciona exactamente igual que desde el CD con la excepción de que se puede utilizar el comando apt-get para instalar nuevo software y que el sistema se monta en modo lectura-escritura.
   • NO PERMITE MÚLTIPLES USUARIOS.
   • Hereda los comandos en el arranque (boot:) al nuevo sistema
• debian: Sistema tipo Debian (como anterior instalador)
   • Sólo hereda los comandos en el arranque (boot:) al nuevo sistema: acpi, noapic, nosmp, pci, pnpbios y noapm.
   • Permite múltiples usuarios.
   • Es la más similar a una instalación Debian convencional.

Nosotros recomendamos la instalación tipo Debian.
Después de seleccionar el tipo de instalación que vamos a realizar se nos preguntará por la partición en la que se va a instalar el sistema (directorio raíz) y después el tipo de sistema de fichero que va a utilizarse para formatearla.

También se nos preguntará el nombre y los apellidos. Con la inicial del nombre y el apellido creará un usuario automáticamente en lugar del usuario knoppix que hay ya creado en el Linux ejecutado desde CD.

Después nos pedirá la contraseña para este usuario; También habrá que introducir la contraseña del administrador (root) y el nombre de host (este es el nombre con el que se identificará el ordenador en la red local)

El siguiente paso es importante. Hay que indicar dónde se instalará el gestor de arranque (lilo). El gestor de arranque es la aplicación que permite arrancar un sistema operativo u otro (o un núcleo Linux u otro).
Hay que seleccionar, normalmente, mbr: en el sector de arranque del disco duro. La otra opción (partición: En la partición raíz) suele usarse cuando ya se dispone de un gestor de arranque y se desea conservarlo.
Se nos mostrará una ventana con información de todas las opciones seleccionadas y se nos dará la opción de almacenar todos estos datos en un disquete para poder utilizarlos posteriormente o en otra instalación.
Si ha concluido la instalación y todo ha ido bien, aparecerá la ventana:

Fin de la instalación.

Y eso será todo, ya tendremos un sistema Linux instalado y listo para que lo uses a tu discreción.

Continuar leyendo

Windows Server 2003 (Parte 1)

Chacal [mariav.hedez@infomed.sld.cu]

Hola comunidad de BlackHat y felicidades a todos por tener nuestro primer año de publicaciones, quiero darle una abrazo a todos los colegas de esta revista digital.

En esta edición vengo con algo nuevo que no se ha tratado en las publicaciones anteriores y que a muchos de nosotros nos ha pasado. Les digo todo esto porque a mi personalmente me ha sucedido constantemente, pero ya hoy aclararemos muchas dudas.

Hoy el tema que trataremos es sobre el Windows Server 2003, se que debemos profundizar en el software libre, pero por problemas ajenos a nosotros, no podemos muchas veces instalar otro SO que no sea Windows.

Algo de Historia

Desde el lanzamiento de los Sistemas Operativos de Redes, pasando por Windows NT, los sistemas se fueron perfeccionando a la medida de las necesidades de las empresas. Desde las ya conocidas diferencias que introdujo Windows 2000 sobre su predecesor Windows NT 4.0, llegamos hoy en día al Sistema Operativo óptimo para las exigencias del mercado Informático, donde se han implementado notables mejoras con respecto a su predecesor Windows 2000. En el caso de Windows Server 2003 podemos decir que está basado en experiencias del Mercado Consumidor Informático y es por eso que en él encontraremos muchas características de las que siempre nos preguntamos ¿Se puede hacer esto?....¿y aquello? Hasta el momento quizás no habían respuestas, pero a partir de ahora, esas preguntas encuentran posibles respuestas en Windows Server 2003.

Durante este módulo estaremos haciendo una introducción a las nuevas características y funcionalidades de la familia de Servidores Windows Server 2003. Al finalizar este capítulo usted tendrá los conocimientos necesarios para describir funcionalidades, características y requerimientos de los distintos sistemas operativos de esta familia.

Nuevas características integradas

Automated System Recovery
Esta nueva herramienta permite recuperar el sistema operativo a su estado anterior. ¿Cómo funciona? Utiliza un Diskette con información de la configuración y un set de backup. Cuando Usted quiera iniciar el proceso de Recovery tendrá que tener ese diskette, el set de Backup de la System Patition y el Cd-Rom de instalación de Windows Server 2003.

Para este proceso, necesitará el diskette y los medios de ASR que contienen los archivos de Backup. El sistema operativo será restaurado al mismo estado que tenía en el momento del Backup ASR, permitiéndole arrancar su sistema.

Active Directory

ADMT versión 2.0
Ahora es sencillo migrar a Active Directory utilizando las mejoras de Active Directory Migration Tool (ADMT). ADMT 2.0 permite migrar passwords desde Microsoft Windows NT® 4.0 a Windows 2000 y Windows Server 2003, o desde Windows 2000 a Dominios Windows Server 2003.

Renombrado de Dominios

Este es el soporte para cambiar nombres Domain Name System (DNS) y/o NetBIOS de dominios existentes en un forest, conservando toda la estructura del Directorio. En escenarios de reestructuración de dominios, esto otorga una gran flexibilidad.

Schema

La flexibilidad de Active Directory, ahora permite la desactivación de atributos y definición de clases en Active Directory Schema. Asimismo se agrega una nueva funcionalidad que permite borrado de Schema.

Group Policy

Junto con Windows Server 2003, Microsoft lanzó una herramienta para la administración de GPO Group Policy Management Console (GPMC), que permite administrar múltiples dominios, activar y desactivar Policies y hacer soporte para drag-and-drop en la herramienta. También incluye la funcionalidad de Backup, Restore y copia de Policies y trae una herramienta de Reportes para analizar la utilización de Policies. Encontrará mejoras sustanciales de las Policies y muchas más configuraciones para administrar en forma centralizada.

Relaciones de confianza

Windows Server 2003 trae también sustanciales mejoras en cuanto al manejo de las relaciones de confianza Inter-Forest. La característica "Cross-Forest Authentication" permite a un usuario de Forest acceder de forma segura a recursos en otro Forest, utilizando Kerberos ó NTLM, sin sacrificar los beneficios del "Single sing-on" y facilitando la administración. Asimismo permite seleccionar fácilmente usuarios y grupos para incluirlos en grupos locales de otros Forest, manteniendo la seguridad y los SID de cada objeto, a pesar de tratarse de diferentes Forest.

Policies de Restricción de Software

Por medio de estas Policies se pueden proteger los entornos de Software no autorizados, especificando el Software que sí lo está. También se pueden realizar excepciones creando reglas específicas.

Replicación de miembros en los grupos

Anteriormente los miembros de un grupo eran un atributo del mismo, con lo cual, si durante la replicación se modificaba el grupo en dos Controladores de Dominio diferentes, el resultado era que la última modificación se replicaba. Es decir, si se agregaban dos usuarios a grupos, uno no era añadido, pero se tenía una limitación en cuanto a la cantidad de usuarios por grupo (Limitación del Atributo) de máximo 5000. A partir de Windows Server 2003, ahora cada usuario en un grupo es un atributo diferente, eliminando la limitación de 5000 usuarios y resolviendo los problemas de replicación.

Bueno con esto pienso aclarar algunos conceptos y dudas, pero no se preocupen que me mantendré enviando más artículos de este tipo en otras ediciones.
Salu2 para toda la comunidad

Continuar leyendo

StarCraft (parte 1)

Yordan Pérez [truano@infomed.sld.cu]

En el pasado encuentro que sostuvimos los de BlackHat asumí la responsabilidad de mantener una sección destinada a los juegos, quiero antes de comenzar dar un buen consejo, yo particularmente soy un jugador empedernido, todo el que me conoce lo sabe, pero antes de dedicar tiempo a los juegos dediqué gran parte de mi vida a aprender algo útil en el mundo de la informática, aprendí hardware que es la rama que me gusta y luego de muchísimas noches en vela estudiando y después de haber destrozado varias PC, aprendí, hoy por hoy solo me resta estar al día con las nuevas tecnologías, ya eso es mucho mas fácil y me queda muchísimo tiempo para los juegos, ¿de que va la trova? Aahh pues que les recomiendo que antes de derrochar tiempo en juegos, primero cumplan su misión en este mundo, aprendan algo útil, y ya después yo los estaré esperando en este mundo tan adictivo que son los videojuegos.

¿De que manera puedo comenzar una sección de juegos en la revista si no lo hago por el juego que más fans tiene en nuestro país? Yo no me cuento entre los fans, pero como buen jugador lo pasé completo y en más de una ocasión he tirado a mis Protoss en conflictos multiplayer, veremos de qué forma logro hacer un artículo de tamaño preciso en un juego que tiene tanto por decir.

Un poco de historia

Nace en 1998 de manos de Blizzard, es un juego de estrategia en tiempo real donde 3 razas luchan por la supremacía en un mundo futurista, en ese mismo año Blizzard saca la que sería su única expansión oficial, Brood War, luego de eso ha sufrido modificaciones en forma de parches para mejorar el equilibrio entre las razas, corregir errores de programación, perfeccionar la inteligencia artificial, entre otras cosas, 9 años después de la salida de StarCraft, Blizzard Entertainment Korea anuncia la llegada de StarCraft 2.

Las Razas

Terran: Humanos descendientes de un grupo de ex convictos desterrados del planeta tierra, los cuales se estrellaron en el sector Koprulu al quedarse sus naves sin combustible luego de estar viajando por el espacio durante 30 años.

Ventajas:
• Pueden construir en cualquier lugar.
• Las construcciones principales vuelan.
• La mayoría de las unidades atacan a distancia.
• Dos unidades tienen la habilidad de la invisibilidad (Ghost y Wraith)

Desventajas:
• Necesitan mucho espacio para construir.
• Algunas construcciones necesitan adiciones para brindar toda la tecnología.
• Al tener muchas unidades mecánicas están en desventaja frente a otras razas.

Protoss: Los Xel´Naga una poderosa raza ancestral creo a los protoss en Aiur, fue tal la perfección de dicha creación que los protoss se rebelaron contra sus propios creadores haciendo que estos tuviesen que retirarse, los Protoss son una raza guerrera por excelencia, gracias a un elevado desarrollo cerebral se comunican por telepatía, tienen el mejor desarrollo tecnológico de todas las razas, incluso pueden llegar a convertir construcciones enemigas pudiendo llegar a tener las 3 tecnologías.

Ventajas:
• Sus unidades son las mas fuertes y resistentes.
• Pueden recargar sus escudos dañados en la batería de escudos.
• Los Pylon que habilitan la construcción también aumentan el limite de población.
• Los Probes pueden iniciar la construcción de un edificio y retomar sus tareas.
• La habilidad del Dark Archon, Mind Control permite convertir unidades enemigas.

Desventajas:
• Son las unidades más caras.
• Si bien los escudos pueden regenerarse, no hay forma de reparar los edificios.
• Los edificios solo pueden ser construidos en el área de influencia de un Pylon.
• Si un Pylon es destruido, los edificios en su área de influencia quedan sin potencia.

Zerg: Luego del ya comentado fracaso de los Xel´Naga con los Protoss, se dispusieron a crear otra raza intentando corregir los errores anteriores, en un planeta llamado Zerus crearon a los Zerg, larvas – parásitos capaces de mutar, eran dirigidos por un ente principal llamado Supermente, se convirtieron en feroces guerreros, finalmente la supermente se dio cuenta de la existencia de los Xel´Naga y su constante vigilancia, y envió a su ejercito y exterminarlos, aun se desconoce si un pequeño grupo de Xel´Naga logró sobrevivir.

Ventajas:
• Se reproducen con gran velocidad.
• Son útiles si atacan en grandes grupos.
• Sus unidades y Construcciones son totalmente biológicas.
• Zerglings y Scourges son generados de a 2 por Larva.

Desventajas:
• Son unidades débiles.
• Solo pueden crear sus estructuras sobre biomateria.
• El trabajador muta en el edificio a construir, así que solo se puede usar una vez.

Continuar leyendo

lunes, 3 de marzo de 2008

C# para contar (parte 1)

CHenry [chenry@hha.sld.cu]

Ahora otras características de C# que lo ponen hoy como uno de los sugerentes lenguajes en mi opinión.
Ahí va…

Manejo de memoria.

La dirección de memoria manual les exige a diseñadores que manejen la asignación y eliminación de bloques de memoria. C# proporciona la dirección de memoria automática para que los diseñadores se liberen de esta pesada tarea. En la inmensa mayoría de los casos, esta dirección de memoria automática aumenta la calidad del código y refuerza la productividad del diseñador.

Para diseñadores que deseen llevar el manejo de memoria C# proporciona la habilidad de escribir código "inseguro" (unsafe). En este código puede trabajarse directamente con punteros, y se las arregla para impedir que el recolector de basura elimine los objetos. El código inseguro debe marcarse claramente en el código con el modificador inseguro (unsafe), para que este código no sea usado accidentalmente. El compilador y la herramienta de ejecución aseguran que  este código no pueda hacerse pasar por código seguro.

using System;
class Test
{
  unsafe static void WriteLocations(byte[] arr)
  {
    fixed (byte *p_arr = arr)
    {
      byte *p_elem = p_arr;
      for (int i = 0; i < arr.Length; i++)
      {
        byte value = *p_elem;
        string addr = int.Format((int) p_elem, "X");
        Console.WriteLine("arr[{0}] at 0x{1} is {2}", i,  addr, value);
        p_elem++;
      }
    }
  }
  static void Main()
  {
    byte[] arr = new byte[] {1, 2, 3, 4, 5};
    WriteLocations(arr);
  }
}

El ejemplo muestra que un método ”unsafe” nombrado WriteLocations. Una posible salida del programa es:
arr[0] at 0x8E0360 is 1
arr[1] at 0x8E0361 is 2
arr[2] at 0x8E0362 is 3
arr[3] at 0x8E0363 is 4
arr[4] at 0x8E0364 is 5

Tipos.

C# tiene dos clases de tipos: por valor y por referencia. En los tipos por valor se incluyen los tipos simples (char, int, y float), los enumerativos(enum types, vienen de C++) y las estructuras (struct types, también de C++).

Los tipos por referencias incluyen clases(class types), interfaces(interfaces types), delegates (delegate types) y arreglos(array types).

Los tipos por valor difieren de los tipos por referencia en que las variables de los tipos por valor contienen sus datos directamente, mientras que las variables de los tipos por referencia almacenan una referencia a un dato. Con tipos por referencia es posible que dos variables tengan una referencia a un mismo dato, y cualquier cambio que se haga en uno de ellos se efectuara también en el otro. Con los tipos por valor, cada variables tiene su propia copia de los datos, y si se efectúan cambios en uno no se afecta el otro.
Nota: Seria igual a C++ y Java.

Tipos definidos:

Tipo

Descripción

Ejemplo

Object Tipo base de todos los tipos. object o = new Stack();
String

Secuencia de caracteres Unicode.

string s = "Hello";

Sbyte

8-bit, positivos y negativos

sbyte val = 12;

Short

16-bit, positivos y negativos

short val = 12;

Int

32-bit, positivos y negativos.

int val = 12;

long

64-bit, positivos y negativos.

long val1 = 12;
long val2 = 34L;

byte

8-bit, positivos.

byte val1 = 12;
byte val2 = 34U;

Ushort

16-bit, positivos.

ushort val1 = 12;
ushort val2 = 34U;

Uint

32-bit, positivos.

uint val1 = 12;
uint val2 = 34U;

Ulong

64-bit, positivos.

ulong val1 = 12;
ulong val2 = 34U;
ulong val3 = 56L;
ulong val4 = 78UL;

Float

Tipo real de simple precision.

float value = 1.23F;

Double

Tipo real de doble precision.

double val1 = 1.23
double val2 = 4.56D;

Bool

Valores true o false.

bool value = true;

char

Valores carácter Unicode.

char value = 'h';

decimal< Tipo decimal preciso con 28 cifras significativas decimal value = 1.23M;



Operadores:

Categoría

Operadores

Primarios

(x)x.y f(x) a[x] x++ x—New

Typeof sizeof

Checked unchecked

Unarios

+ - ! ++ x –x (T)x

Multiplicativos

* / %
Aditivos

+ -

Shift

<< >>

Relacionales

< > <= >= is

Igualdad desigualdad

== !==

Lógico AND

&

Lógico XOR

^

Lógico OR

|

Condicional AND

&&

Condicional OR

||

Condicional

?:

Asignación

=  *=  /=  %=  +=  -=  <<=  >>=  &=  ^=  |=

Arreglos.

•             Unidimensionales
using System;
class Test
{
  static void Main()
  {
    int[] arr = new int[5];
    for (int i = 0; i < arr.Length; i++)
    arr[i] = i * i;
  }
}

•             Multidimensionales rectangulares:
using System;
class Test
{
  static void Main()
  {
    int[,] a2 = new int[,] {{1,2,3}, {4,5,6}};
    int[,,] a3 = new int[10, 20, 30];
  }
}

•             Multidimensionales rasgados:
using System;
class Test
{
  static void Main()
  {
    int[][] j2 = new int[3][];
    j2[0] = new int[] {1,2,3};
    j2[1] = new int[] {1,2,3,4,5,6};
    j2[2] = new int[] {1,2,3,4,5,6,7,8,9};
  }
}

Este ejemplo no es valido.
class Test
{
  static void F(int[] arr) {}
  static void Main()
  {
    F({1, 2, 3});
  }
}


Este ejemplo si es valido.
class Test
{
  static void F(int[] arr) {}
  static void Main()
  {
    F(new int[] {1, 2, 3});
  }
}


Sistema de unificación de tipos:

Todos los tipos en C# pueden ser tratados como objetos, pues todos derivan de Object.

Ejemplos
using System;
class Test
{
  static void Main()
  {
    Console.WriteLine(3.ToString());
  }
}

Continuar leyendo

¿Qué son los delitos informáticos?

TWIN [twinsc@gmail.com]

De manera general la gente cree que cometer un delito es hacer cualquier cosa que este prohibida en la ley, lo cual no es cierto. Delito es toda acción u omisión socialmente peligrosa, prohibida por la ley bajo la conminación de una sanción penal; por lo que solo serán delitos aquellas conductas descritas en la parte Especial del Código Penal. Vender la casa, tener una antena parabólica y demás, no son delitos; lo cual no quiere decir que estén permitidos, simplemente están regulados por otras ramas del Derecho.

La clasificación de los delitos en informáticos como una nueva categoría jurídico-penal me parece poco relevante, no sucede como con el caso de los llamados delitos ambientales, en estos el apellido está referido a un bien jurídico propio que necesita de protección: el medio ambiente; mientras que en los delitos informáticos se hace referencia al medio material en que se comete el delito.

Las nuevas tecnologías de la información han creado un espacio virtual regido por reglas diferentes, un mundo donde el espacio y el tiempo adquieren matices distintos, un lugar en que los humanos interactúan, y por tanto, pueden cometer delitos. La verdadera importancia de la clasificación de los delitos en informáticos radica, desde mi punto de vista, en que en este ciberespacio los métodos tradicionales para la detección e investigación del delito no resultan eficaces, y debe ser tarea de los especialistas en temas informáticos suplir esta necesidad.
. . .
El que, con el propósito de obtener para sí o para otro, una ventaja o un beneficio patrimonial ilegítimo, y empleando cualquier ardid o engaño que induzca a error a la víctima, determine a éste a realizar o abstenerse de realizar un acto en detrimento de sus bienes o de los de un tercero, incurre en sanción…

De esta manera define el Código Penal Cubano el delito de estafa, que se podría considerar como uno de los que más se cometen utilizando los medios informáticos. Como se puede apreciar, lo mismo vendiendo entradas falsas de un concierto de Carlos Varela en la puerta del Karl Marx, que a través de un sitio web, se está cometiendo el delito.

Lo antes expuesto no quiere decir que al Código Penal no necesite modificaciones, puede que en un futuro cercano sea necesario regular conductas que se realicen por medio de los ordenadores, pero estas serán esencialmente para proteger bienes jurídicos como los derechos individuales, los derechos patrimoniales, la economía nacional, la seguridad del estado, etc.

Así por ejemplo, infectar con algún programa malicioso un ordenador ajeno, una conducta que no era posible antes de la era informática, pudiera, en dependencia del fin del autor, afectar la intimidad, los derechos patrimoniales o incluso la seguridad del estado, por lo que estas nuevas conductas deben plantear la necesidad de una revisión de los delitos y categorías penales para adecuarlas a los nuevos tiempos.
. . .
Desde que leí el artículo “Delito Informático” de Alien, en el número 38 de esta revista, me propuse escribir algo complementario del mismo, desde el punto de visto de alguien que sabe un poco menos de Informática y quizás un poquito más de Derecho. En este artículo el autor hace algunas reflexiones interesantes a las que quisiera referirme.

Primero hace un análisis acertado de casos en que se podría caer en un error al pensar que constituyen un delito informático, criticando -o mejor- definiendo con mayor exactitud lo que se podría entender como delito informático, sin embargo en esta oportunidad me referiré a un par de puntos en los que no coincido con el autor.

No es para nada ilegal que alguien sin autorización penetre al sistema, puesto que una de las tareas que realiza, o debe realizar un administrador de sistemas, es asegurar el servidor que administra.

No se puede justificar una acción con el deber que tenga otro de evitarlo, pues entonces sería lícito entrar a cualquier propiedad bajo la vigilancia de un custodio, o dar muerte a alguien porque su guardaespaldas tiene el deber de protegerlo. Tampoco la falta de protección por imprudencia o negligencia justifica la acción de atacarlo, o ¿acaso qué deje la puerta de mi casa sin seguro justifica el hecho de que alguien robe?

Visto desde el punto de vista informático, quien cumple la función de portero es el administrador, que es en definitiva quien tiene potestad para decidir quien, como, por donde y cuando entra cada persona.

En la analogía planteada el informático cumple efectivamente la función de portero, pero ni este, ni el portero, son los que tienen la potestad de decidir quién, como, por donde, ni cuando entra cada persona; en ambos casos simplemente cumplen una orden de un superior o reglas preestablecidas.
. . .
El tema del hacking es polémico, si bien es cierto de que todos tienen derecho a investigar, a superarse, a imponerse retos; los propietarios de los servidores y usuarios en general tienen derecho a que se les respete su propiedad, su privacidad y que se utilicen sus servicios de la manera estipulada en el contrato con sus clientes.

Siguiendo con las analogías: así como todos tienen derecho a caminar y visitar cualquier lugar que deseen, el propietario tiene derecho a que solo puedan entrar en su vivienda quienes y cuando determine. Imagínense los inconvenientes y peligros que traería tener que permitir que cualquiera, cuando quisiera y como quisiera pudiera entrar en nuestras casas, ¿por qué entonces permitir que entren en nuestros ordenadores?

Si bien es cierto que la simple intrusión no genera daño, si crea una situación de peligro que el Derecho no debe permitir, lo cual no es contrario a pensar que un acceso a nuestro ordenador, aún sin autorización, que se realice de buena fe y con el propósito de prevenirnos de posibles ataques sea lícito.

Continuar leyendo

Cómo tener una PC con mejor desempeño

Yordan Pérez [truano@infomed.sld.cu]

Generalidades

Lo primero que tenemos que saber, es que en la informática también existen leyes generales que no podemos pasar por alto, una de las que mas tiene que ver con este articulo es la que dice: “Todos los dispositivos en una computadora trabajarán a la velocidad del mas lento” esto de cumple al pie de la letra.

Puertos IDE

Si tenemos un Disco Duro cuya velocidad de transferencia se eleva a 133 Mhz y nuestra motherboard es capaz de soportar dicha velocidad, pero a la vez la cinta que comunica estos dos dispositivos es de 40 hilos, jamás tendremos el rendimiento que pudiésemos tener, y tan solo por una cinta, la reducción de rendimiento que se crea es vastamente visible, estaríamos perdiendo una velocidad notable por algo tan sencillo y barato como lo es una cinta de 80 hilos, continuando con la idea de las cintas y los puertos IDE, también tenemos otra forma de evitarnos conflictos y ganar en rendimiento, cuando solo tenemos en la PC (lo mas general) un Disco Duro y una Torre de CD/DVD, es mejor tener a cada uno de estos dispositivos por separados, me explico, la motherboard traería dos puertos IDE que la controladora administra por separados, en el IDE 1 pondríamos una cinta de 80 hilos directa al Disco Duro, en el IDE 2 otra cinta de 80 hilos que valla conectada a la Torre de CD/DVD, de esta manera todo el ancho de banda de la cinta se dedicará a cada uno de los dispositivos, nos evitamos los conflictos de jumpéo, etc. Para aquellos que tienen 2 torres de CD/DVD, ejemplo quemador y lector, es altamente recomendable ponerlos en IDE separados, así se evitan conflictos a la hora de quemar “al vuelo” siempre sería preferible dejar el quemador solo y poner el lector como esclavo en el IDE primario con el Disco Duro, una ultima idea, traten de poner todos los tornillos a las torres de CD, cuando están leyendo un disco por obligación generan vibraciones y causan problemas a la hora de leer algún CD o DVD que no esté en perfecto estado.

Nota: es un error decir “cinta de 80 pines” en realidad ambas cintas son de 40 pines, lo que cambia es la cantidad de hilos, las antiguas son de 40 pines con 40 hilos, las actuales con doble ancho de banda son 40 pines con 80 hilos.

Memorias RAM

Vamos ahora a dedicarle un pedazo a las memorias RAM, aquí lo primero a tener en cuenta es tratar de que las memorias que tengamos sean lo mas rápidas posible y por supuesto que la board también soporte esas velocidades, después de tener las mas rápidas que podamos usar o conseguir, otro aspecto a tener en cuenta es distribuir el trabajo, tendremos mas rendimiento usando 2 memorias de 256 mb cada una que teniendo 1 memoria de 512 mb, para los board que soportan dual-channel por lo normal traen 4 slot para memorias, 2 color azul y 2 color negro (los colores pueden variar) y tan solo tenemos 2 memorias, para usar el dual-channel tendremos que poner las memorias siempre en el mismo color, asi como también las memorias deben ser como mínimo a 400 mhz de velocidad de transferencia, de otra forma no se activa dicho servicio, otro detalle a tener en cuenta, para aquellos que cuenten con 1 Gb o mas de memoria, Windows es tan……. Que a veces no sabe auto configurarse para aprovechar al máximo el hardware que controla, entonces tenemos que meter las manos nosotros mismos, Windows “siempre” utiliza una parte del disco duro como memoria virtual, el acceso al Disco duro es muchísimo mas lento que a las memorias RAM, para aquellos que como dije, tengan al menos 1GB de memoria sería altamente recomendable deshabilitar el archivo de paginación o memoria virtual de Windows, ¿Cómo se hace? Ok presten atención:

Click derecho sobre MI PC/Propiedades/Opciones Avanzadas/Rendimiento/Configuración/Opciones Avanzadas/ Memoria Virtual/Cambiar
Estando ahí, seleccionamos la opción “Sin Archivo de Paginación” y hacemos click en aceptar, vuelvo y repito que solo es para aquellos que tengan al menos 1GB de RAM, a partir de ese momento Windows ejecutará todo sobre la RAM y ganaremos muchísimo en rendimiento.

Modem Externos

Como ya se va haciendo común criticar a Windows volvemos a caer en eso de que no aprovecha al máximo lo que se le ofrece, bueno aquí tenemos un problemita que nos resta muchísimo rendimiento en la comunicación entre la PC y un Modem Externo, el puerto serie viene por defecto con una configuración de velocidad de comunicación con los Dispositivos que a el se conectan muuuyy bajo, vamos a cambiar esto y veremos como ganamos muchísimo en rendimiento a la hora de conectarnos y navegar, (nota: esto no acelera la velocidad que te muestran los download managers y otros programas, este truco mejora la velocidad de comunicación entre el modem y la PC pero a la larga incide directamente con la velocidad general de conexión, bueno vayamos al grano:

(Nota: justamente cuando iba a seguir los pasos en mi PC para darles el tour mas apropiadamente me di cuenta que mi PC ya no trae puertos series je je je y producto de esto no los muestra en administrador de dispositivos, pero bueno, trataré de acordarme de todos los pasos con la mayor exactitud posible).
Click derecho sobre MI PC/Propiedades/Hardware/Administrador de Dispositivos/Puertos Series.
Ya en ese lugar seleccionamos el puerto serie y damos click derecho sobre el, seleccionamos propiedades y donde dice velocidad de puerto seleccionamos la mayor, click en aceptar y a disfrutar de nuevas velocidades.

Procesador

No hablaré de la velocidad del mismo, es lógico que debemos hacer lo posible por tener los mas rápidos posibles, hablaré mas bien sobre la caché L2, ya que es casi mas importante que la velocidad misma del CPU, la caché es quien describe hasta cuantas instrucciones puede asimilar un procesador, imaginemos que el CPU es un aeropuerto con capacidad para darle salida y entrada a 100 vuelos diarios, pero las puertas de ese aeropuerto son tan reducidas que solo permiten el paso a los pasajeros de 50 vuelos diarios, se ve tal como suena, jamás se obtendrá el máximo de rendimiento, en el procesador la caché vendrían siendo las puertas de ese aeropuerto, mientras mayor sean mejor se aprovecha la velocidad del micro, lo mismo tenemos con el bus frontal que es la velocidad de comunicación entre el micro y la motherboard, a la hora de escoger un CPU debemos tener en cuenta además de la velocidad, cual es la cache L2 y cual es la velocidad del bus, recomiendo para quienes tienen socket 478 el procesador Intel Pentium 4 HT a 3,2 Ghz con 1 Mb de cache L2 y bus a 800 Mhz, cuando pasas en el 478 de los 3,2 crece demasiado el calor y empeora el rendimiento, una magnifica motherboard para ese micro sería la ASUS P4P800.

Ventilación y Refrigeración

Desgraciadamente en Cuba no tenemos muchas opciones disponibles para escoger como queremos refrigerar nuestra PC, pero todo lo que podamos hacer en este sentido la computadora lo agradecerá con crecimiento de rendimiento y vida útil, voy a tratar de ser realista y contar con lo que podemos adquirir en nuestro país, lo primero es intentar comprar un chasis lo mas grande posible, (un supercase de 5 bahías será suficiente) recomiendo chasis como el MDG que trae una entrada de aire lateral directa al micro, bueno, luego de tener un buen chasis, lo próximo es hacerse de una fuente lo mas potente posible, en la actualidad ya existen hasta de 1000 watts pero con 450 o 500 será suficiente, el próximo paso es fijarnos hasta cuantos Fans (ventiladores) soporta nuestro chasis, por lo general con un chasis como el que recomiendo, podemos poner 2 fans delanteros, 2 fans atrás y uno en la tobera plástica lateral, ahora explico cual sería la mejor forma de ubicarlos, los delanteros y el lateral se pondrían introduciendo aire al chasis y los traseros extrayendo el aire caliente del chasis, también podemos conseguir los tan indispensables fans con disipador para discos duros, por experiencia propia les puedo decir, consigan un soft llamado HDD Termómetro, pruébenlo en un disco duro maxtor sin fan, la temperatura normal del HDD en una habitación sin Aire acondicionado será aproximadamente 55 Grados, sin embargo el mismo soft reporta solo 20-22 si el HDD tiene fan, creo que una diferencia de mas de 30 grados vale la pena invertir en tal disipador, manteniendo la PC lo mas fría posible, tendremos mejor desempeño, un consejo, para que todos esos fans trabajen bien, debemos intentar liberar de obstáculos la corriente de aire, me explico, las cintas IDE y los cables de alimentación entorpecen la corriente de aire, por lo tanto debemos acomodarlos lo mejor posible dentro del chasis para garantizar que no obstruyan el paso del aire, estos chasis tienen por lo normal, una gran capacidad para discos duros, en caso de poseer mas de un disco duro se recomienda dejar suficiente espacio entre ellos para ayudar al enfriamiento de los mismos.
Hasta aquí llegamos por ahora, espero les sirva este articulo, en el no pongo bibliografía ya que no usé nada externo, solo mi experiencia personal a lo largo de 10 años como especialista en Hardware, espero que les guste y les ayude…

Continuar leyendo