lunes, 17 de marzo de 2008

Windows no es fácil

Zion [rcorrales@estudiantes.uci.cu]

Hola comunidad, hace cuestión de días tuve el deleite que merecemos todos de navegar por la www. Inclinado por las cuestiones del software libre y encontré este artículo en http://sinergiatec.wordpress.com <http://ucixs34.uci.cu/exchweb/bin/redir.asp?URL=http://sinergiatec.wordpress.com> fechado el día 12 de febrero de 2008. Con gusto lo comparto con ustedes. Creo que cambiarán muchas de sus ideas después de leer esto.

Aquí los dejo con el artículo:

Windows no es fácil. Windows PARECE fácil porque los pringaos como nosotros les instalamos y configuramos todo. Hacemos de soporte técnico de Microsoft. Fomentamos su uso. Fomentamos la piratería. Aunque no lo hagamos directamente, lo hacemos al instalar un PC nuevo con Windows.

Lo hacemos por instalar copias piratas de programa a los vecinos cuando nos lo piden, o por conseguirles los programas que necesitan. Lo hacemos por dar consejos sobre Windows, o por resolverles problemas. Nosotros somos el "Windows es fácil"

¿Qué pasaría si todos los que nos dedicamos a la informática nos negáramos a darle soporte a los Windows instalados que tienen: nuestros vecinos, cuasi-amigos, conocidos, primos, conocidos de conocidos...(y más a los que son piratas)? ¿Qué pasaría cuando a esas personas que abusan de nuestra buena disposición les salga la pantallita azul y tengan que llamar al servicio técnico de su tienda de informática y esta le cobre 45EUR por hora? ¿Qué pasaría cuando los jueguitos que se han pirateado no sigan funcionando por un parche mal instalado de Windows? ¿Qué pasaría si no tuviesen quien les recupere el sistema después de coger un virus, troyano, etc por acceder a una página donde le daban un crack para su software preferido?

Para todos los que somos informáticos la respuesta está clara: Se les caería la venda de los ojos y verían que Windows no es el sistema operativo fácil, seguro y perfecto que creían.

Pero... y si además les recomendamos que se pasen a Linux y les demostramos que:

• Pueden usar el Photoshop, el Call of Duty, el Dreamweaver, etc.
• Que tienen miles de juegos a su disposición gratis y perfectamente explicados.
• Que con un sólo click pueden instalarse más de 20.000 programas.
• Que hay miles de usuarios de Linux dispuestos a echarles una mano con cualquier duda que tengan.
• Que la reinstalación o actualización del sistema operativo no pasa por un borrado completo de su disco duro y sus datos.
• Que la reinstalación de todos los programas de su menú se puede hacer de forma automatizada y con dos clicks.
• Que pueden disfrutar de efectos 3D en su escritorio sin aumentar su hardware.
• Que pueden capturar los videos de su cámara, manipularlos, hacer sus propias composiciones y verlas en su reproductor de mp4, ipod, móvil, etc.
• Que catalogar su música, crear listas de reproducción, ripear sus CDs de música, sincronizarla con el contenido de sus reproductores de mp3 es sencillo.
• Que el Messenger, Skype, eMule, Bittorrent, Gnutella... también funcionan en Linux
• Que existe un navegador gratis al que le pueden añadir funcionalidades que te hacen la navegación una experiencia divertida, amena y con posibilidades casi infinitas.
• Que pueden cambiarle los colores, los iconos, la pantalla de inicio, la forma de las ventanas... y todo eso sin necesidad de instalar un programa añadido... que ya viene en el sistema operativo.
• Que la navegación por internet vuela y que realmente usas todo el ancho de banda de tu modem/router.
• Que varias organizaciones gubernamentales están quitando Windows para poner Linux.
• Que en España también hay organizaciones que realizan su propia distribución de Linux (Guadalinex)
• Que nos encontramos Linux en los servidores de internet, en las consolas de juegos como la PS3, en móviles como Samsung.

... si le decimos todas esas cosas... ¿qué pasará?

Yo ya comencé y el efecto es liberador :-)

Aquí está el sitio del blog donde surge un buen debate sobre el tema mírenlo y verán muchas otras verdades

Continuar leyendo

Windows Server 2003 (Parte 2)

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

Ahora en esta edición trabajaremos un poco con más profundidad esta herramienta tan necesaria hoy en día en un Server 2003 que es el Active Directory, aquí lo tienen.

Definición

En una red de Microsoft® Windows® Server 2003, el servicio de directorio Active Directory® proporciona la estructura y las funciones para organizar, administrar y controlar el acceso a los recursos de red. Para implementar y administrar una red de Windows Server 2003, deberá comprender el propósito y la estructura de Active Directory.

Active Directory proporciona también la capacidad de administrar centralmente la red de Windows Server 2003. Esta capacidad significa que puede almacenar centralmente información acerca de la empresa, por ejemplo, información de usuarios, grupos e impresoras y que los administradores pueden administrar la red desde una sola ubicación. Active Directory admite la delegación del control administrativo sobre los objetos de él mismo. Esta delegación permite que los administradores asignen a un grupo determinado de administradores, permisos administrativos específicos para objetos, como cuentas de usuario o de grupo. Active Directory es el servicio de directorio de una red de Windows Server 2003, mientras que un servicio de directorio es aquel que almacena información acerca de los recursos de la red y permite que los mismos resulten accesibles a los usuarios y a las aplicaciones. Los servicios de directorio proporcionan una manera coherente de nombrar, describir, localizar, tener acceso, administrar y asegurar la información relativa a los recursos de red.

La funcionalidad

Active Directory proporciona funcionalidad de servicio de directorio, como medio para organizar, administrar y controlar centralmente el acceso a los recursos de red. Asimismo hace que la topología física de red y los protocolos pasen desapercibidos, de manera que un usuario de una red pueda tener acceso a cualquier recurso sin saber dónde está el mismo o cómo está conectado físicamente a la red. Un ejemplo de este tipo de recurso es una impresora.

Active Directory está organizado en secciones que permiten el almacenamiento de una gran cantidad de objetos. Como resultado, es posible ampliar Active Directory a medida que crece una organización, permitiendo que una organización que tenga un único servidor con unos cuantos centenares de objetos, crezca hasta tener miles de servidores y millones de objetos.

Un servidor que ejecuta Windows Server 2003 almacena la configuración del sistema, la información de las aplicaciones y la información acerca de la ubicación de los perfiles de usuario en Active Directory. En combinación con las directivas de grupo, Active Directory permite a los administradores controlar escritorios distribuidos, servicios de red y aplicaciones desde una ubicación central, al tiempo que utiliza una interfaz de administración coherente.

Además, Active Directory proporciona un control centralizado del acceso a los recursos de red, al permitir que los usuarios sólo inicien sesión una sola vez para obtener pleno acceso a los recursos mediante Active Directory.

La estructura lógica de Active Directory incluye los siguientes componentes:
Objects. Estos son los componentes básicos de la estructura lógica.

Object classes.
Son las plantillas o los modelos para los tipos de objetos que se pueden crear en Active

Directory. Cada clase de objeto es definida por un grupo de atributos, los cuales definen los valores posibles que se pueden asociar a un objeto. Cada objeto tiene una combinación única de los valores de atributos.

Organizational units. Usted puede utilizar estos container objects para organizar otros objetos con propósitos administrativos. Organizando objetos en Organizational Unit, se hace más fácil localizar y administrar objetos. Usted puede también delegar la autoridad para administrar las Organizational Unit. Estas últimas pueden contener otras Organizational Units para simplificar la administración de objetos.

Domains. Son las unidades funcionales core de la estructura lógica de Active Directory, y asimismo es una
colección de los objetos administrativos definidos, que comparten en una base de datos común del directorio, políticas de la seguridad y relaciones de confianza con otros Domains. Los Domains proporcionan las tres funciones siguientes:
• Un límite administrativo para los objetos
• Medios de administrar la seguridad para los recursos compartidos
• Una unidad de réplica para los objetos

Domain trees. Son Domains agrupados en estructuras de jerarquía. Cuando se agrega un segundo dominio a un tree, se convierte en Child del tree Root Domain. El dominio al cual un Chile Domain se une, se llama Parent Domain. El Child Domain puede tener sus propios Child Domain, y su nombre se combina con el nombre de su Parent Domain para formar su propio y único nombre, Domain Name System (DNS). Un ejemplo de ellos sería corp.nwtraders.msft. De este modo, un tree tiene un Namespace contiguo.

Forests.
Un Forest es una instancia completa de Active Directory, y consiste en uno o más trees. En un solo two-level tree, el cual se recomienda para la mayoría de las organizaciones, todos los Child Domains se hacen Children del Forest Root Domain para formar un tree contiguo. El primer dominio en el forest se llama Forest Root Domain, y el nombre de ese dominio se refiere al forest, por ejemplo, nwtraders.msft. Por defecto, la información en Active Directory se comparte solamente dentro del forest. De esta manera, la seguridad del forest estará contenida en una sola instancia de Active Directory.

Siguiendo con todas estas funciones que nos brinda este Sistema Operativo que es Windows Server 2003, esperamos que les sirva de algo si alguien quiera profundizar en algun tema tratado en especifico me lo puede hacer llegar por mi email.

Salu2 nuevamente para la comunidad, este tema de los servidores esta abierto en el siguiente foro: www.ismm.edu.cu/SMF

Continuar leyendo

StartCraft (Parte 2)

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

Consejos y Estrategias

Hotkeys: Para llegar a ser un buen jugador de StarCraft es imprescindible dominar a fondo las HotKeys o teclas de acceso directo, aquí trataré de mencionarlas todas.


SHIFT: La tecla shift tiene varios usos en starcraft. Uno de ellos es que apretando esta tecla y el botón izquierdo del mouse podemos quitar unidades de una selección. Ej: Hemos seleccionado 11 Marines y 1 Firebat, para sacar este último, apretamos shift y hacemos click izquierdo sobre dicha unidad. Otra utilidad es darle órdenes a una unidad y luego manteniendo apretada esta tecla podemos darles otras órdenes, y cuando termine de hacer una pasará a la otra; es decir, poner en la cola las órdenes. Se puede usar para los comandos de mover, atacar, minar, reparar, etc. Algunos ejemplos pueden ser por ejemplo que mandemos a un worker a explorar, cliqueamos a donde queremos que vaya y luego manteniendo shift apretado cliqueamos en otras partes, así nos ahorramos mucho tiempo. Otro puede ser en caso de los Terran, queremos que luego que un SCV construya algo vuelva a minar, para eso le damos la orden de construir el edificio y antes que empiece a construirlo apretando shift hacemos click en un mineral. Además, esta tecla tiene otro uso. Apretando shift y F2-F4 podemos guardar la posición del mapa en ese momento, puede ser útil si hay una zona conflictiva en el mapa y la queremos tener siempre a mano, sólo apretando F2-F3 o F4 podemos localizarla.

CTRL: La tecla ctrl(control) sirve para seleccionar todas las unidades del mismo tipo con sólo mantener esta tecla apretada y clickquear con el botón izquierdo sobre la unidad. Otra forma de hacer lo mismo es mantener la tecla presionada y clickquear en la imagen de la unidad en una selección. ¿Qué aplicación se le puede dar? Fácil, si tenemos unos cuantos Siege Tank (Tanques de asedio) dispersos en la pantalla, presionamos ctrl y clickqueamos en una de ellas, con esto, obtendremos una selección de todos los Siege Tanks, para poder por ejemplo, pasarlos a modo asedio.  Además, apretando Ctrl+ 0-9 (¡No los del teclado numérico!) podemos guardar un grupo de unidades o un edificio para encontrarlos rápido. Un ejemplo clásico es asignarle un número al Comsat Station para que sea más rápido el barrido con el Scan. Así, cuando queremos utilizarlo, hacemos la siguiente combinación de teclas: 0/9 + S (corresponde a la tecla de atajo para ejecutar el Sweep)

OTRAS TECLAS: Apretando la tecla espacio nos localizará el mirador del mapa en el lugar donde se produjo la última transmisión. Este no es realmente una tecla, sino un truquito...si cliquean en el portrait de una unidad serán ubicados en el lugar donde se encuentra dicha unidad. Recuerden usar siempre las Hot keys, son muy útiles para no andar gastando tiempo con el mouse. Cada unidad, edificio y poder especial tiene una, es aquella que aparece resaltada de las demás en el nombre de esta. Algunas son fáciles de recordar, como la del Marine(M),otras no tanto. Por ejemplo, siempre resulta más fácil y más rápido presionar la tecla "T" para lanzar un Psi Storm que andar buscando y clickeando en el ícono del poder.

Esta es la lista de los atajos del teclado, en la versión en inglés del Starcraft:

TERRAN

ZERG

PROTOSS

SCV:S

Select larva:S

Probe:P

Marine:M

Drone:D

Zealot:Z

Firebat:F

Zergling:Z

Dragoon:D

Medic:C

Hidralisk:H

High Templar:T

Ghost:G

Mutalisk:M

Dark Templar:K

Vulture:V

Scourge:S

Archon:R

Tank:T

Queen:Q

Dark Archon:R

Goliath:G

Delfier:F

Shuttle:S

Wraith:W

Ultralisk:U

Scout:S

Dropship:D

Lurker:L

Corsair:O

Valkeriye:Y

Guardian:G

Carrier:C

Battlecruiser:B

Devourer:D

Observer:O

Science Vessel:V

 

Arbiter:A

 

 

Reaver:V

Drops: Con el drop me refiero a los desembarcos, las estrategias y cómo atacar con ellos. Obviamente variará según las razas.

Terran: Tienen como unidad de drop al Dropship. Un ataque tempranero de unos Marines con Medics descargados por el Dropship en el medio de la fuente de recursos del enemigo puede dañarlo económicamente y darnos cierta ventaja. Pero eso no nos servirá para ganarle, para eso tenemos que atacar(todo con los drops no) con algo más fuerte, digamos 3 Dropships, en el primero ponemos dos Tanques, en el segundo otro tanque y 2 Goliaths y en el tercero 2 Marines,1 Medic,1 SCV (VCE) y 2 Goliaths. Los Goliaths nos servirán principalmente de defensa anti-aérea, y un también ofrecerán cierta protección terrestre. El SCV es para reparar los tanques y para construir edificios, como Bunkers y Turrets (Torretas), es más, yo les recomendaría que lleven más SCVs, pero lo dejamos ahí. La descarga debe ser en lo posible en un lugar desprotegido, fuera del alcance del enemigo, y que este no nos vea. Atacamos con los tanques y defendemos con las otras unidades, así de simple, si el drop tiene éxito continúen trayendo unidades. Pero no descuiden sus flancos.               

Protoss: Tienen la unidad de drop más rápida de todas las razas(con el upgrade obviamente),aunque no es muy fuerte, el Shuttle (Lanzadera lo compensa con su velocidad.
Principalmente se usa para el Reaver Rush, pero también se suelen hacer drops igual que los Terran con Zealots y Dragons, también útiles.

Zerg: Es el más interesante, y el mejor, ya que como el Overlord (Superamo) es la unidad de transporte y de supply, la tendremos en abundancia. ¡Pero no se olviden de tener unos cuantos extra y hacerles todo los upgrades! lo que se hace habitualmente es aprovechar esta ventaja para realizar una descarga MASIVA de Hidralisks, Zerglings o lo que sea en la base enemiga, aunque el enemigo puede llegar a destruir algunos Overlords, la mayoría llegará y descargará su contenido letal, y para colmo los Overlods son detectores, y no nos tendremos que preocupar por unidades escondidas. Un buen ataque de drop debe tener al menos, como mínimo para que sea destructivo unos 12/15 Overlords repletos con lo que sea. Otra cosa que se suele hacer es llenar los Overlords con Lurkers, digamos unos 3 o 4 Overlords, y descárgalos en el medio de la base enemiga, letal. Especial contra los Terran temprano en el juego.

Trucos

Yo particularmente no soy partidario de usar trucos, creo que cuando se usan trucos para ganar un juego uno mismo es quien se engaña, pero al final muchas personas prefieren usarlos y bueno, tampoco soy quien para criticar el gusto ajeno, para aquellas personas que gustan de los cheats, aquí van:
Para poner las claves presiona “enter” escribe el código y presiona “enter” una vez mas.

código

Descripción

BLACK SHEEP WALL: Mapa completo
BREATHE DEEP: 500 de gas

FOOD FOR THOUGHT: Construir unidades por encima del limite permitido.
GAME OVER MAN: Perder el juego.
HEAL MA: La unidad seleccionada a continuación explota
MAN OVER GAME: Ganar el juego.
MEDIEVAL MAN:   Mejoras gratis en las unidades.
MODIFY THE PHASE VARIANCE:     Construir todos los edificios.
NOGLUES:     Enemigos sin magia.
OPERACION CWAL:  Construye mas rápidamente las unidades y edificios.
OPHELIA:    Cambio de nivel.
PIERU:  Acceder a todas la unidades.
POWER OVERWHELMING:      Modo Dios.
SHOW ME THE MONEY:  10.000 de gas y 10.000 de minerales.
SOMETHING FOR NOTHING:  Todas las mejoras
STAYING ALIVE:   La misión acaba en empate.
THE GATHERING:   Energía ilimitada en todas las unidades.
THERE IS NO COW LEVEL:  Acabar la misión actual.
WAR AINT WHAT IT USED TO BE:  Quita la niebla.
WHATS MINE IS MINE: 500 de mineral.

Bueno espero que los fans de StarCraft me sepan disculpar porque en realidad hay muchísimo mas que hablar sobre este juego, pero si ya se han dado cuenta voy por 5 hojas de Word y comprenderán que no puedo extender demasiado un articulo, aun me queda material de sobra para extender este articulo al menos por 5 hojas mas pero sencillamente es imposible, bueno espero que lo hallan disfrutado, espero haberles podido enseñar algo a los que no son tan duchos pero quieren llegar a serlo, voy a preparar un txt con todo el material que tengo sobre starcraft y si alguien está interesado solo tienen que solicitármelo a mi correo y se lo envío.

En el próximo artículo hablaremos de otro gigante de la Blizzard, el WoW (Word of Warcraft). Espero les comience a gustar esta sección de juegos, todo aquel que pueda colaborar conmigo brindándome juegos para poder analizarlos, escríbanme a mi email, será de gran ayuda.

Continuar leyendo

lunes, 10 de marzo de 2008

C sharp para contar (parte 2)

CHenry [chenry@hha.sld.cu]

BOXING AND UNBOXING.

class Test
{
  static void Main()
  {
    int i=123;
    object o=i;
// BOXING
    int j=(int)o;
// UNBOXING
  }  
}


Uso del boxing y unboxing:
Cuando una variable de tipo por valor necesita ser convertida a un tipo por referencia, un objeto box es creado para almacenar el valor, y el valor es copiado en este. Unboxing es simplemente lo contrario. Cuando el objeto box se "castea" a su tipo de valor original el valor es copiado en la apropiada variable.

El proceso de hacer “boxing” se explica imaginando la existencia de una clase T_Box para cada tipo por valor T.

class T_Box
{
  T value;
  T_Box(T t)
  {
//CONSTRUCTOR
    value = t;
  }
}
struct Point
{
  public int x, y;
  public Point(int x, int y)
  {
    this.x = x;
    this.y = y;
  }
}
Point p = new Point(10, 10);
object box = p;
p.x = 20;
Console.Write(((Point)box).x);

Declaración de constantes y variables.
class Test
{
  static void Main()
  {
    const int a = 1;
    const int b = 2, c = 3;
    int d;
    int e, f;
    int g = 4, h = 5;
    d = 4; e = 5; f = 6;
  }
}

Sentencias de control.
Las sentencias if, switch, while, do-while, for, break-continue, return, throw-try las trabaja igual que Java.

• Sentencia foreach:

La sentencia foreach enumera los elementos de una colección, ejecutando las sentencias para cada elemento de la colección.

using System;
using System.Collections;
class Test
{
  static void WriteList(ArrayList list)
  {
    foreach (object o in list)
    Console.WriteLine(o);
  }
  static void Main()
  {
    ArrayList list = new ArrayList();
    for (int i = 0; i < 10; i++)
    list.Add(i);
    WriteList(list);
  }
}

• Sentencia lock.

Parecido al synchronized de Java.
Una sentencia lock obtiene la exclusión-mútua para un objeto dado, ejecutando las sentencias y luego liberando el bloqueo.

La expresión lock debe contener un valor de un tipo por referencia, por tanto un objeto obtenido mediante “boxing” no es valido en una expresión lock. Una expresión lock de la forma:
lock (x) ...

System.CriticalSection.Enter(x);
try {...}
finally
{
  System.CriticalSection.Exit(x);
}

Esto es equivalente a: poner en situación crítica un objeto es usado y luego de ser usado sacarlo de la situación crítica.

La sentencia lock puede ser convenientemente usada para obtener la exclusión-mútua de los métodos estáticos de una clase, ejemplo:

class Cache
{
  public static void Add(object x)
  {
    lock (typeof(Cache)) {...}
  }
  public static void Remove(object x)
  {
    lock (typeof(Cache)) {...}
  }
}

Clases.

C# soporta solamente herencia simple, pero una clase puede implementar múltiples interfaces (igual a Java, la diferencia esta solo en la sintaxis). Una clase puede incluir: constantes, campos (variables u objetos), métodos, propiedades, indexers, eventos, operadores, constructores, destructores y declaraciones de tipos anidados.

Modificadores de clases:

• new: Es solo permitido en las clases anidadas, especifica que la clase oculta un miembro heredado con el mismo nombre.
• public, protected, internal y private: controlan el acceso de la clase, en dependencia del contexto donde la declaration de la clase ocurra algunos de estos modificadores no son permitidos.
• abstract: el modificador es usado para indicar que la clase esta incompleta, solo puede ser usada como base de otras clases, esta difiere de una clase no-abstracta en los siguientes aspectos:
• Una clase abstracta no puede ser instanciada, es un error tratar de usar el operador new.
• Pueden contener métodos abstractos y modificadores (no es un requerimiento).
• Una clase abstracta no puede ser sealed.

Toda clase que derive de una clase abstracta debe incluir la implementación de todos los métodos abstractos heredados.

abstract class A
{
  public abstract void F();
}
abstract class B: A
{
  public void G() {}
}

class C: B
{
  public override void F()
  {
// actual implementation of F
  }
}

• Sealead: El modificador es igual que el final de Java Se usa para “prevenir” la derivación de una clase. Ocurre error al tratar de heredar de una clase sealed. Una clase sealed no puede ser abstracta.
Nota: Este modificador es usado principalmente para impedir la derivación de una clase, pero aparte de esto se genera una especie de código especial, en particular debido a que de las clases sealed como no se puede derivar pueden transformarse las funciones “virtual” en invocaciones “no-virtual”.
P: A que programador se le ocurre ponerle “virtual” a una clase de la cual no se puede heredar????

• Cada miembro puede tener los siguientes tipos de acceso.
• public: miembros son accesible en todo el código.
• Protected: miembros son solo accesible para las clases derivadas (herederos).
• Internal: miembros son accedidos solo dentro del paquete .(igual al que pone Java por default).
• Protected internal: solo para las clases derivadas dentro del paquete.
• Private: solo la propia clase tiene acceso.

Nota: La clase base implícita de toda clase es object, esta a su vez no tiene clase base pues es igual que el object de Java.

La clase base debe ser como mínimo tan accesible como la clase que deriva de ella, seria un error que una clase public derivara de una clase private o con menos acceso que el public (internal).
Nota: Cuando una clase B deriva de una clase A es un error que A dependa de B.

Continuar leyendo

C# para contar (parte 2)

CHenry [chenry@hha.sld.cu]

BOXING AND UNBOXING.

class Test
{
  static void Main()
  {
    int i=123;
    object o=i;
// BOXING
    int j=(int)o;
// UNBOXING
  }  
}


Uso del boxing y unboxing:
Cuando una variable de tipo por valor necesita ser convertida a un tipo por referencia, un objeto box es creado para almacenar el valor, y el valor es copiado en este. Unboxing es simplemente lo contrario. Cuando el objeto box se "castea" a su tipo de valor original el valor es copiado en la apropiada variable.

El proceso de hacer “boxing” se explica imaginando la existencia de una clase T_Box para cada tipo por valor T.

class T_Box
{
  T value;
  T_Box(T t)
  {
//CONSTRUCTOR
    value = t;
  }
}
struct Point
{
  public int x, y;
  public Point(int x, int y)
  {
    this.x = x;
    this.y = y;
  }
}
Point p = new Point(10, 10);
object box = p;
p.x = 20;
Console.Write(((Point)box).x);

Declaración de constantes y variables.
class Test
{
  static void Main()
  {
    const int a = 1;
    const int b = 2, c = 3;
    int d;
    int e, f;
    int g = 4, h = 5;
    d = 4; e = 5; f = 6;
  }
}

Sentencias de control.
Las sentencias if, switch, while, do-while, for, break-continue, return, throw-try las trabaja igual que Java.

• Sentencia foreach:

La sentencia foreach enumera los elementos de una colección, ejecutando las sentencias para cada elemento de la colección.

using System;
using System.Collections;
class Test
{
  static void WriteList(ArrayList list)
  {
    foreach (object o in list)
    Console.WriteLine(o);
  }
  static void Main()
  {
    ArrayList list = new ArrayList();
    for (int i = 0; i < 10; i++)
    list.Add(i);
    WriteList(list);
  }
}

• Sentencia lock.

Parecido al synchronized de Java.
Una sentencia lock obtiene la exclusión-mútua para un objeto dado, ejecutando las sentencias y luego liberando el bloqueo.

La expresión lock debe contener un valor de un tipo por referencia, por tanto un objeto obtenido mediante “boxing” no es valido en una expresión lock. Una expresión lock de la forma:
lock (x) ...

System.CriticalSection.Enter(x);
try {...}
finally
{
  System.CriticalSection.Exit(x);
}

Esto es equivalente a: poner en situación crítica un objeto es usado y luego de ser usado sacarlo de la situación crítica.

La sentencia lock puede ser convenientemente usada para obtener la exclusión-mútua de los métodos estáticos de una clase, ejemplo:

class Cache
{
  public static void Add(object x)
  {
    lock (typeof(Cache)) {...}
  }
  public static void Remove(object x)
  {
    lock (typeof(Cache)) {...}
  }
}

Clases.

C# soporta solamente herencia simple, pero una clase puede implementar múltiples interfaces (igual a Java, la diferencia esta solo en la sintaxis). Una clase puede incluir: constantes, campos (variables u objetos), métodos, propiedades, indexers, eventos, operadores, constructores, destructores y declaraciones de tipos anidados.

Modificadores de clases:

• new: Es solo permitido en las clases anidadas, especifica que la clase oculta un miembro heredado con el mismo nombre.
• public, protected, internal y private: controlan el acceso de la clase, en dependencia del contexto donde la declaration de la clase ocurra algunos de estos modificadores no son permitidos.
• abstract: el modificador es usado para indicar que la clase esta incompleta, solo puede ser usada como base de otras clases, esta difiere de una clase no-abstracta en los siguientes aspectos:
• Una clase abstracta no puede ser instanciada, es un error tratar de usar el operador new.
• Pueden contener métodos abstractos y modificadores (no es un requerimiento).
• Una clase abstracta no puede ser sealed.

Toda clase que derive de una clase abstracta debe incluir la implementación de todos los métodos abstractos heredados.

abstract class A
{
  public abstract void F();
}
abstract class B: A
{
  public void G() {}
}

class C: B
{
  public override void F()
  {
// actual implementation of F
  }
}

• Sealead: El modificador es igual que el final de Java Se usa para “prevenir” la derivación de una clase. Ocurre error al tratar de heredar de una clase sealed. Una clase sealed no puede ser abstracta.
Nota: Este modificador es usado principalmente para impedir la derivación de una clase, pero aparte de esto se genera una especie de código especial, en particular debido a que de las clases sealed como no se puede derivar pueden transformarse las funciones “virtual” en invocaciones “no-virtual”.
P: A que programador se le ocurre ponerle “virtual” a una clase de la cual no se puede heredar????

• Cada miembro puede tener los siguientes tipos de acceso.
• public: miembros son accesible en todo el código.
• Protected: miembros son solo accesible para las clases derivadas (herederos).
• Internal: miembros son accedidos solo dentro del paquete .(igual al que pone Java por default).
• Protected internal: solo para las clases derivadas dentro del paquete.
• Private: solo la propia clase tiene acceso.

Nota: La clase base implícita de toda clase es object, esta a su vez no tiene clase base pues es igual que el object de Java.

La clase base debe ser como mínimo tan accesible como la clase que deriva de ella, seria un error que una clase public derivara de una clase private o con menos acceso que el public (internal).
Nota: Cuando una clase B deriva de una clase A es un error que A dependa de B.

Continuar leyendo

El CD-ROM

Reynier Reyes [rreyes33@alumno.uned.es]

Luego de haber aprobado satisfactoriamente un curso de Arquitectura de Máquinas, les pongo a su disposición un trabajo acerca del CD-ROM, estoy claro de que es un tema un poco atrasado porque podría abordar sobre el CD-RW o el DVD, pero este es en sí el principio de operación de todos esos dispositivos.

¿Qué es un CD-ROM?

El CD-ROM - Compact Disk Read Only Memory - es un medio óptico de almacenamiento de información, capaz de contener hasta 682 MB de datos, 74 minutos de audio de alta fidelidad o cerca de 333000 páginas de texto. Consiste en un pequeño disco de 120 mm de diámetro, con un agujero de 15 mm en el centro y un grosor de 1.2 mm. Según una leyenda que circula en el mundo de la técnica, estas dimensiones fueron escogidas porque pueden contener exactamente la Novena Sinfonía de Beethoven.

¿Como Funciona? (una versión simple)

Un disco óptico está fabricado mayormente de policarbonato (un plástico). Los datos son almacenados en una capa dentro del policarbonato. Otra capa metálica, refleja la luz del láser de vuelta hacia un censor.
Para leer los datos en el disco, la luz del láser brilla a través del policarbonato e impacta sobre la capa de los datos. De que manera la luz del láser es reflejada o absorbida, es interpretado por la computadora como un 1 o un 0.

En un CD la capa de los datos está cerca de la parte de arriba del disco, del lado de la etiqueta.
Características
Capacidad
• Según el tipo de CD, actualmente hay diferentes configuraciones:
• Diámetro: 80 mm - 215 MB o 21 minutos de audio.
• Diámetro: 120 mm - 650 MB o 74 minutos de audio.
• Diámetro: 120 mm - 700 MB o 80 minutos de audio.
• Diámetro: 120 mm - 800 MB o 90 minutos de audio.
• Diámetro: 120 mm - 875 MB o 100 minutos de audio.

Almacenamiento de la información

En un CD la información se almacena en formato digital, es decir, utiliza un sistema binario para guardar los datos. Estos datos se graban en una única espiral que comienza desde el interior del disco (próximo al centro), y finaliza en la parte externa. Los datos binarios se almacenan en forma de pozos y llanos, de tal forma que al incidir el haz de luz del láser, el ángulo de reflexión es distinto en función de si se trata de un pozo o de un llano.

Los pozos tienen una anchura de 0,6 micras, mientras que su profundidad (respecto a los llanos) se reduce a 0,12 micras. La longitud de pozos y llanos está entre las 0,9 y las 3,3 micras. Entre una revolución de la espiral y las adyacentes hay una distancia aproximada de 1,6 micras (lo que hace cerca de 45.000 pistas por centímetro).

Tiempo de acceso. Otro aspecto fundamental en la velocidad de una unidad de CD es el tiempo de acceso. Este se define como el tiempo transcurrido entre el momento en que la unidad recibe la orden de leer los datos, y la lectura del primer bit. El tiempo de acceso se mide en milisegundos, y se toma un promedio de diferentes lecturas para calcularlo, puesto que depende de la posición del dato en el disco.
Interfaces.

La interfase es la conexión física entre el CD-ROM y el bus de la computadora. Tres tipos fundamentales de interfase se encuentran en el mercado: SCSI, IDE y aquellas que son propias de un fabricante específico.
SCSI, (Small Computer System Interfase) es el nombre de una interfase que permite conectar distintos tipos de periféricos a la computadora, incluyendo CD-ROMs, discos duros y otros dispositivos. Su principal ventaja radica en que posibilita la conexión de hasta 7 dispositivos por cada conector del bus de la PC, lo que ofrece una impresionante flexibilidad al sistema. La gran desventaja es su alto costo. Si usted va a instalar una sola unidad de CD en su computadora, como sucede en la mayoría de los casos, no resulta práctico decidirse por una interfase SCSI.

IDE. La mayoría de nuestros lectores estarán bien familiarizados con la interfase IDE, por ser la que utilizan para conectar su disco duro. IDE, (Integrated Drive Electronics) es un estándar mundial para la conexión de periféricos. Los fabricantes de CD-ROM han aprovechado su amplia difusión para diseñar unidades que puedan conectarse directamente a la misma cinta o conector del disco duro. Esto simplifica en gran medida la instalación del CD-ROM y evita la necesidad de utilizar una tarjeta adicional para su conexión. El precio de las unidades IDE es menor que el de aquellas que utilizan la norma SCSI.

¿Por qué redondo? ¿Por qué un haz de luz?

La configuración en forma de disco le da a este soporte de datos versatilidad a la hora de acceder a cualquier parte de su superficie sin apenas movimientos del cabezal de lectura, usando solamente dos partes móviles, el cabezal que se mueve del centro al exterior del disco en línea recta y el eje de rotación que gira sobre sí mismo para trabajar conjuntamente con el cabezal y así obtener cualquier posición de la superficie con datos.
Este sistema de acceso a la información es superior a sistemas de cinta pues tiene menos calentamiento del soporte a altas velocidades (aun así se calienta), y el haz de luz no supone un problema de rozamiento (no toca el disco, sólo luz) como pasaba con los disquetes para datos o los discos de vinilo y cintas de audio

Ventajas de los Discos Ópticos.

Físicas: Un disco óptico es mucho más robusto que una cinta o un disquete. Físicamente es más difícil romperlos, fundirlos o arquearlos.
Fragilidad: No es sensible a ser tocado, pese a que puede ensuciarse demasiado o rayarse para después ser leído. No obstante, puede ser limpiado
Magnético: No es afectado en absoluto por los campos magnéticos.
Capacidad: Los discos ópticos guardan muchos más datos que los disquetes.
Y un poco más, el lado del disco en el reverso de los datos, puede lucir una linda etiqueta
Para los proveedores de software, un disco óptico es una gran manera de almacenar el software y los datos que ellos desean distribuir o vender.

Desventajas de los Discos Ópticos

Son propensos a adquirir hongo, por lo que necesitan de un cuidado minucioso del polvo, la humedad y el calor. Se pueden partir con facilidad si se mantienen fuera de la caja protectora o en el caso que no tengan una caja protectora efectiva.

Partes de la lectora del CD

Un motor que hace girar el disco.
Un motor acoplado a un mecanismo que posiciona la cabeza en sentido radial.
El conjunto de la cabeza lectora que incluye: una lente, varios prismas y espejos, (muy pequeñitos) varios servos magnéticos que ajustan la posición de la lente; un diodo emisor láser en infrarrojo, un foto detector bastante complejo para el ajuste de posición,; algunos circuitos electrónicos.
Queda además la placa del circuito impreso principal donde están los conectores de alimentación y de control.

Continuar leyendo

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