DJMM Infomix

Que es Infomix

El nombre se tomó en su día a partir de mix (mezcla) de información de Informática, ya que pretendía ser precisamente eso: un "rebujito" de apuntes y trucos de categorías diversas. Aquí veremos algunas de las entradas de antaño, revisadas y actualizadas, y descartadas las obsoletas.

Ciertos temas están enfocados desde un punto de vista eminentemente teórico, mientras que sobre otros se aportan pequeñas soluciones a problemas cotidianos o tips de configuración, principalmente para sistemas basados en Windows.

El BIOS y el arranque del equipo

Para comenzar con lo más "bajo", vamos a hablar del BIOS. El Sistema Básico de Entrada/Salida (Basic Input/Output System), es un programa informático inscrito en componentes electrónicos de memoria Flash existentes en la placa base. Este programa controla el funcionamiento de la placa base y de dichos componentes. Se encarga de realizar las funciones básicas de manejo y configuración del ordenador. El BIOS se carga en la ROM (Read-Only Memory), y en la EEPROM (Electrically-Erasable Programmable Read-Only Memory).

Cuando se enciende o se reinicia un sistema informático, el BIOS realiza un inventario del hardware conectado al ordenador y efectúa un diagnóstico llamado POST (Power-On Self Test) para comprobar que el equipo funciona correctamente. Si no hay problemas, el BIOS emitirá un sonido corto para informar que no hay errores.

El modelo OSI de ISO

El modelo de interconexión de sistemas abiertos (ISO/IEC 7498-1), también llamado OSI (Open Systems Interconnection) es el modelo de red descriptivo creado por ISO (International Standard Organization) en el año 1984, como parte de un estándar. Es un marco de referencia para la definición de arquitecturas en la interconexión de los sistemas de comunicaciones, ideado para favorecer la interoperabilidad. El núcleo de este estándar es el modelo de referencia OSI, una normativa formada por siete capas que define las diferentes fases por las que deben pasar los datos para viajar de un dispositivo a otro sobre una red de comunicaciones. Siguiendo el esquema de este modelo se crearon numerosos protocolos. El modelo especifica el protocolo que debe ser usado en cada capa, y suele hablarse de modelo de referencia ya que es usado como una gran herramienta para la enseñanza de comunicación de redes. Se trata de una normativa estandarizada útil debido a la existencia de muchas tecnologías, fabricantes y compañías dentro del mundo de las comunicaciones, y al estar en continua expansión, se tuvo que crear un método para que todos pudieran entenderse de algún modo, incluso cuando las tecnologías no coincidieran. De este modo, no importa la localización geográfica o el lenguaje utilizado. Todo el mundo debe atenerse a unas normas mínimas para poder comunicarse entre sí. Esto es sobre todo importante cuando hablamos de la red de redes, es decir, Internet.

Este modelo está dividido en siete capas (la siguiente lista está tomada de Wikipedia):

  1. Capa física: Es la que se encarga de la topología de red y de las conexiones globales de la computadora hacia la red, se refiere tanto al medio físico como a la forma en la que se transmite la información.
  2. Capa de enlace de datos: Esta capa se ocupa del direccionamiento físico, del acceso al medio, de la detección de errores, de la distribución ordenada de tramas y del control del flujo.
  3. Capa de red: Se encarga de identificar el enrutamiento existente entre una o más redes. Las unidades de datos se denominan paquetes, y se pueden clasificar en protocolos enrutables y protocolos de enrutamiento.
  4. Capa de transporte: Capa encargada de efectuar el transporte de los datos (que se encuentran dentro del paquete) de la máquina origen a la de destino, independizándolo del tipo de red física que esté utilizando.
  5. Capa de sesión: Esta capa es la que se encarga de mantener y controlar el enlace establecido entre dos computadores que están transmitiendo datos de cualquier índole.
  6. Capa de presentación: El objetivo es encargarse de la representación de la información, de manera que aunque distintos equipos puedan tener diferentes representaciones internas de caracteres, los datos lleguen de manera reconocible.
  7. Capa de aplicación: Ofrece a las aplicaciones la posibilidad de acceder a los servicios de las demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos, como correo electrónico (Post Office Protocol y SMTP), gestores de bases de datos y servidor de ficheros (FTP).
Nota: Una definición técnica de un protocolo de comunicaciones de datos es: un conjunto de normas, o un acuerdo, que determina el formato y la transmisión de datos. La capa n de un equipo se comunica con la capa n de otro equipo. Las normas y convenciones que se utilizan en esta comunicación se denominan colectivamente protocolo de la capa n.

Tips de Windows

Ya avisaba de que Windows iba a tener protagonismo, ya que, por desgracia hemos tenido que lidiar con él durante años, no habiendo alternativas viables en aquellos tiempos y circunstancias. A continuación, trucos o tips que nos facilitarán un poco las cosas en este entorno:

Los archivos DLL: Son una especie de archivos auxiliares de Windows. Su nombre y extensión de archivo es la abreviatura de Dynamic Link Library (Biblioteca de Enlace Dinámico), y contienen funcionalidad o recursos que utilizan otras aplicaciones. En Windows las DLL las utiliza el sistema operativo para agrupar parte del código usado por las aplicaciones propias del sistema y no en el propio ejecutable lo que redunda en una mejor modularización. Algunas DLL son librerías y pequeños almacenes de iconos, cursores, imágenes, cuadros de diálogos, sonidos, vídeos, música y otros recursos. A nivel de usuario, es interesante conocer las DLL que nos pueden ser de utilidad para personalizar nuestro sistema. Por ejemplo al personalizar una carpeta y cambiar el icono, Windows de forma predeterminada nos da la ruta a la librería shell32.dll contenedora de iconos, pero hay muchas otras, inclusive con iconos con mayor resolución a las que podemos acceder. También es posible usando una pequeña aplicación extraer los iconos o imágenes contenidos en estos archivos y así poder utilizarlos a nuestro gusto. La mayor parte de las librerías se encuentran en la siguiente ruta: C:\Windows\System32\ (en sistemas de 32 bits). La siguiente tabla muestra la ubicación de las principales librerías DLL:

# Nombre Descripción Iconos # Nombre Descripción Iconos
1 shell32.dll Windows Shell Common DLL 306 4 netshell.dll Network Connections Shell 164
2 imageres.dll Windows Image Resource 218 5 mmcndmgr.dll MMC Node Manager DLL 129
3 wmploc.dll Windows Media Player Resources 208 6 moricons.dll Windows NT Setup Icon Resources Library 113

Otras librerías son: ieframe.dll (Internet Browser, 105 iconos), compstui.dll (Common Property Sheet User Interface DLL, 101 iconos), DDORes.dll (Device Category information and resources, 81 iconos), pnidui.dll (Network System Icon, 59 iconos), netcenter.dll (Network Center, 20 iconos), accessibilitycpl.dll, icomres.dll, mstscax.dll, networkexplorer.dll, setupapi.dll, usbaaplrc.dll (dispositivos USB) y wucltux.dll.

Eliminar flechas de acceso directo: Este tema va de gustos y estética. El caso es que hay quien opina que las típicas flechitas que Windows (desde hace ya varias versiones) asigna a los iconos de acceso directo que se crean en el escritorio son molestas a la vista y desmejoran el aspecto en general del mismo. Son los cuadraditos con una pequeña flecha en el centro que se insertan automáticamente en la esquina inferior izquierda de cada icono. En contra de esto se arguye que esta es la forma que tiene el Windows de distinguir entre acceso directo y programas o archivos que se copian directamente en el escritorio; aunque yo creo que no tiene sentido usar el escritorio para poner archivos o directamente programas, para eso hay otras carpetas, lo considero una pésima práctica, pero bueno... cada cual con sus preferencias.

Para descargar, las pautas explicativas de dos métodos para conseguir esto, y un icono transparente que nos vendrá bien en uno de los casos.

Pautas Icono

Borrar lista de conexiones del RDP: Cuando hacemos una conexión utilizando la herramienta estándar de Windows "Conexión a Escritorio remoto", tanto si ésta es exitosa como si no, además de permitirnos escribir manualmente una dirección IP o nombre DNS, automáticamente se crea un nuevo registro en la lista desplegable de las conexiones (combobox), para ofrecer opciones cada vez que se ejecute. Esto es especialmente útil si se conecta más de una vez a un mismo terminal remoto. Pero borrar elementos de esta lista no está tan claro, de hecho, no puede hacerse directamente desde la aplicación cliente (%SystemRoot%\system32\mstsc.exe); desde aquí solo puede seleccionarse cual conexión hacer, o escribir los valores para establecer una nueva. Aquí no hay 'click en botón derecho del ratón', 'Suprimir'.

Para hacerlo hay que tirar del Registro de Windows, vía "regedit", los pasos previos son:

  • Accedemos al registro mediante "Inicio – Ejecutar" o "Botón de inicio", en la caja de búsqueda escribimos "regedit", y pulsamos <Intro>.
  • Navegamos hasta la clave: HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default.

Estando la clave seleccionada (panel izquierdo del regedit), nos aparecerá una lista con todas la conexiones que hemos intentado o realizado usando la conexión a escritorio remoto de Windows, identificadas con el valor de cadena MRU#, donde # es un secuencial. Borramos las que no nos gusten (tecla <Supr> encima de cada valor de cadena a suprimir), confirmamos y ya está. No importa el orden en que se borren, luego, al conectar aparecerán solo las que hayamos dejado.

Panel GodMode en Windows 7 (32 y 64 bits): Para tener acceso al panel de control gigantesco denominado "GodMode" tan solo es necesario crear en el escritorio una carpeta con el nombre:

  • GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

Cambiar imagen de las credenciales: Si queremos cambiar la imagen que el sistema asigna automáticamente a la cuenta de usuario para las credenciales de Windows, basta acceder a la carpeta donde están todas y cambiarla; la carpeta es C:\ProgramData\Microsoft\User Account Pictures. Una sugerencia de imagen puede descargarse aquí:.

Imagen

Configuración de impresión para Notepad y Explorer: Los comandos por defecto que proporciona Windows en la configuración de la impresión son los siguientes (para las utilidades de sistema Notepad y Explorer):

  • Notepad. Encabezado: "&F"-Pie: "Página &p"
  • Explorer. Encabezado: "&w&bPágina &p de &P"-Pie: "&u&b&d"
Los márgenes predefinidos suelen ser 20mm (I/D) y 25mm (S/I) en Notepad.

Mostrar icono del Escritorio de Windows en la barra de acceso rápido: Si alguna vez lo eliminamos por accidente, podemos recuperarlo creando un fichero llamado "Mostrar Escritorio.scf", de texto plano, con el siguiente contenido:

[Shell] (línea) Command=2 (línea) IconFile=explorer.exe,3
[Taskbar] (línea) Command=ToggleDesktop

Y copiándolo a continuación en la carpeta del usuario: C:\...\Application Data\Microsoft\Internet Explorer\Quick Launch. Este tip es válido solo para Windows 7.

Sobre MySQL

Aquí hablaremos un poco de MySQL, pero solo teoría. Más bien explicaré porqué la utilizo preferentemente. Como suele pasar con la mayoría de herramientas informáticas, las ventajas del uso de una u otra serán relativas, dependiendo del contexto en el que se desenvuelva el estudio. Si nos estamos moviendo en el ámbito de las aplicaciones de pequeña/mediana escala, MySQL es, con diferencia, el SGBD más recomendable. Para acceder a bases de datos es mucho más útil emplear un motor o servidor que hace las funciones de intérprete entre las aplicaciones y usuarios con las bases de datos, y éste es precisamente el caso de MySQL.

Esta utilidad se traduce en ventajas, entre las que podemos mencionar las siguientes:

  • Acceso a las bases de datos de forma simultánea por varios usuarios y/o aplicaciones.
  • Seguridad, en forma de permisos y privilegios, gracias a la cual determinados usuarios tendrán permiso para consulta o modificación de determinadas tablas. Esto permite compartir datos sin que peligre la integridad de la base de datos o protegiendo determinados contenidos.
  • Potencia: MySQL es un lenguaje muy potente para consulta de bases de datos, ya que al usar un motor nos ahorra una enorme cantidad de trabajo.
  • Portabilidad: MySQL es también un lenguaje estandarizado, de modo que las consultas hechas usando MySQL son fácilmente portables a otros sistemas y plataformas. Esto, unido al uso de C/C++ proporciona una gran portabilidad. De hecho, MySQL está escrito en C y C++, está probado con multitud de compiladores y dispone de APIs para muchas plataformas diferentes.
  • Escalabilidad: es posible manipular bases de datos enormes, del orden de seis mil tablas y alrededor de cincuenta millones de registros, y hasta 32 índices por tabla.
  • Conectividad: es decir, permite las conexiones entre diferentes máquinas con distintos sistemas operativos. Es muy corriente que servidores Linux e incluso Unix, usando MySQL, sirvan datos para ordenadores con Windows, Linux, Solaris y otros SSOO. Para ello se usa TCP/IP, tuberías, o sockets Unix.
  • Es multihilo, con lo que también puede beneficiarse de los sistemas multiprocesador.
  • Permite manejar multitud de tipos para columnas.
  • Permite manejar registros de longitud fija o variable.

Creo que sobran los motivos. En todo caso, cabe añadir también que es fácil de aprender, y existe en la red gran información en forma de tutoriales y guías de uso, así como documentación técnica.

Programación Orientada a Objetos

Más teoría... La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 90. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.

Los objetos son entidades que tienen un determinado estado (atributos), comportamiento (métodos) e identidad:

  • El estado está compuesto de datos o informaciones; serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
  • El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él.
  • La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante).

Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separa el estado y el comportamiento (Fuente: Wikipedia).

Cuando se escribe un programa en un lenguaje orientado a objetos, definimos una plantilla o clase que describe las caracterísiticas y el comportamiento de un conjunto de objetos similares. La clase automóvil describe las características comunes de todos los automóviles: sus atributos y su comportamiento. Los atributos o propiedades se refieren a la marca o fabricante, el color, las dimensiones, si tienen dos, tres o más puertas, la potencia o, por ejemplo, el combustible que utiliza. El comportamiento se refiere a la posibilidad de desplazarse por una carretera, frenar, acelerar, cambiar de marcha, girar, y a la funcionalidad en general. Por último, tenemos automóviles concretos, por ejemplo el nuestro, el de algún amigo, o algún modelo específico de alguna marca (con todas sus propiedades). Una clase es, por tanto una plantilla implementada en software que describe un conjunto de objetos con atributos y comportamiento similares. Una instancia u objeto de una clase es una representación concreta y específica de una clase y que reside en la memoria del ordenador.

Los atributos son las caracterísiticas individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Éstos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables. Las variables de instancia también denominadas miembros de dato, son declaradas en la clase pero sus valores son fijados y cambiados en el objeto. Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un automóvil es el mismo: cuatro, para todos los automóviles.

El comportamiento de los objetos de una clase se implementa mediante funciones miembro o métodos. Un método es un conjunto de instrucciones que realizan una determinada tarea y son similares a las funciones de los lenguajes estructurados. Del mismo modo que hay variables de instancia y de clase, también hay métodos de instancia y de clase. En el primer caso, un objeto llama a un método para realizar una determinada tarea, en el segundo, el método se llama desde la propia clase.

Para descargar, un proyecto muy básico y fuertemente comentado, ilustrativo de los conceptos que acabamos de comentar:

Proyecto Java