Google

lenguaje de programación C (Opinión)

Para mi C++ es el mejor lenguaje de programación que hay en el mercado, sin lugar a dudas es de los mas potentes y los que te permiten manejar la maquina tal y como quieres, todo esto es debido a que es un lenguaje bastante próximo al hardware de la maquina. Además eso también le permite conseguir mayor velocidad. Se le puede achacar que es un poco más difícil que otros lenguajes de programación, pero si ha servido como ejemplo para inspirar a otros muchos lenguajes posteriores como Java o Javascript también dice mucho en favor de C++.

EL lenguaje C es el resultado de un proceso de desarrollo que inició con un lenguaje denominado BCPL. Este influenció a otro llamado B (inventado por Ken Thompson). En los años 70; éste lenguaje llevó a la aparición del C.

Con la popularidad de las microcomputadoras muchas compañías comenzaron a implementar su propio C por lo cual surgieron discrepancias entre sí. Por esta razón ANSI (American National Standars Institute, por sus siglas en inglés), estableció un comité en 1983 para crear una definición no ambigua del lenguaje C e independiente de la máquina que pudiera utilizarse en todos los tipos de C.

Algunos de las C existentes son:

-Quick C
-C++
-Turbo C
-Turbo C ++
-Borland C
-Borland C++
-Microsoft C
-etc.

Hay muchas leyendas acerca del origen de C y el sistema operativo con el que está íntimamente relacionado, Unix. Unade ellas es:

El desarrollo de C fue el resultado del deseo de los programadores de jugar con SpaceTravel. Habían estado jugando en el computadora central de su compañía, pero debido a su poca capacidad de proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenían suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que no se utilizaba; pero esa máquina no tenía sistema operativo, así que decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 que había en su oficina, pero era muy costoso, pues todo el código estaba escrito en lenguaje ensamblador. Entonces decidieron usar un lenguaje de alto nivel y portable para que el sistema operativo se pudiera portar fácilmente de un ordenador a otro. Consideraron usar B, pero carecía de las funcionalidades necesarias para aprovechar algunas características avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.

Algunas características del lenguaje C son las siguientes:

1 Es un lenguaje de propósito.general. Este lenguaje se ha utilizado para el desarrollo de aplicaciones tan dispares como: hojas de.cálculos, gestores de bases de datos, compiladores, sistemas operativos.
2 Es un lenguaje de medio nivel. Este lenguaje permite programar a alto nivel (pensando a nivel lógico y no en la máquina física) y abajo nivel (con lo que se puede obtener la máxima eficiencia y un.control absoluto de cuanto sucede en el interior del ordenador).
3 Es un lenguaje portátil. Los programas escritos en C son fácilmente transportables a otros sistemas.
4 Es un lenguaje potente y eficiente. Usando C, un programador puede casi alcanzar la eficiencia del código ensamblador junto con la.estructura del Algol o Pascal.
..............
wikimediafoundation.org y trabajo enviado por Richarrd A. Sequeda A. a Monografia
universidad de las parmas de gran canarias

Piratería de software

A diferencia de los piratas de los siglos XVII y XVIII, estos no llevan parche en un ojo ni espadas. Hoy cada año, las compañías dedicada a la producción de "software" para ordenadores pierden millones de dólares a causa de personas, que ilegalmente descargan o duplican sus programas, así como también, los millones en perdida de usuario de computadoras, que han recibido en venta, copias de programas que no les pertenecen legalmente. Para poner un ejemplo, podemos nombrar la hoja de calculo 1 2 3 de Lotus: más de la mita de las copias existente de este programa, según se a calculado (año 2004) son ilegales. Este problema es en especial lastimoso debido a que la mayorías de las personas no se dan cuenta que el distribuir música, copiar programas informático o libros para distribuirlos pueden violar las leyes que protegen la propiedad intelectual en el país en donde viven. Sin embargo debido a esto y a las exigencias de los mismo usuarios de los software, numerosas compañías dedicada a este negocio están eliminando de sus productos la protección física contra copias, y es que el duplicado de los software es tan sencillo como fotocopiar un libro o duplicar un casete.

La propiedad intelectual y el software:

Las leyes de propiedad intelectual protegen las obras literarias, artísticas y científicas que cumplan los requisitos de originalidad y creatividad, no siendo objeto de protección las ideas, fórmulas matemáticas, obras no originales y en general todo aquello que no cumpla con los requisitos establecidos en la Ley. El software no se ajusta legalmente a ninguna definición de la propiedad intelectual en la mayorías de los países, pero el propósito de las leyes de propiedad intelectual es el de asegurar que se recompense justamente el trabajo mental y que se estimule la innovación. Los programadores, inventores, científico, escritores, editores y músicos dependen de las ideas y la expresión de esas ideas para obtener sus ingresos. Por lo tanto “Veamos con malos ojos el negocio de descargar o duplicar ilegalmente programas”.

Fuentes y recursos:

The CPSR Newsletter, Computer Professionals for Social Responsibility.
EFFector, Electronic Frontier Foundation.

El programa HOLA MUNDO del lenguaje c


Él Hola Mundo se caracteriza por su sencillez, especialmente cuando se utiliza en programas de línea de comandos.

Este programa se ha convertido en un clásico dentro de los libros de programació., Simplemente muestra en pantalla el mensaje HOLA MUNDO, esto que puede parecer muy tonto es algo fundamental puesto que si no sabemos imprimir mensajes ó datos en la pantalla difícilmente nuestro programa se podrá comunicar con el usuario que lo utilice.

Mostraremos el programa y a continuación describiremos cada una de las instrucciones que lo forman.

/* Programa : HOLA MUNDO */


#include <stdio.h>

main()
{
printf ("\nHola mundo");
}

Como podemos observar se trata de un programa muy sencillo. La primera línea es lo que se conoce como un comentario, un mensaje que el programa añade al código del programa para explicar o aclarar su funcionamiento o el de una parte de él. Los comentarios se pueden situar en cualquier parte de nuestro código y se considerará como comentarios cualquier mensaje que se encuentre entre los caracteres/* y */.

Los "/*" y "*/" no son caracteres, sino símbolos o banderas.


La siguiente línea es lo que se conoce como directiva del preprocesador, todos los compiladores de C disponen de un preprocesador, un programa que examina el código antes de compilarlo y que permite modificarlo de cara al compilador en distintos sentidos. Las directivas se caracterizan por comenzar con el carácter # y se deben incluir al comienzo de la línea aunque es probable que esto dependa de la implementación del compilador con el que estemos trabajando. La directiva include permite añadir a nuestro código algún fichero de texto, de tal forma que la directiva es sustituida por el texto que contiene el fichero indicado. En general los ficheros que acompañan a esta directiva son ficheros .H (Header -Cabecera), en los que se incluyen definiciones de funciones que deseamos utilizar en nuestros programas, constantes o tipos complejos de datos.

La librería stdio.h (STandarD Input/Output) con tiene las funciones estándar de entrada salida, y en ella se encuentra la función printf que utilizamos en nuestro programa. Como se observa en el código el nombre de la función a incluir debe ir entre los caracteres <...>.

En la siguiente línea nos encontramos con main(). Esto indica que aquí comienza nuestro programa, en realidad estamos definiendo una función (esto se indica con los paréntesis al final de la línea). La función main (principal en inglés) siempre debe existir y contendrá el programa principal.

Finalmente nos encontramos el programa principal, una sentencia printf entre llaves ({, }). Las llaves en C representan bloques, y encierran un conjunto de sentencias o instrucciones (lo que el computador ejecutará), considerando todas ellas como una sola, permitiendo una definición homogénea de los distintos bloques que constituyen el programa. En nuestro caso tenemos un sólo bloque que no es ni más ni menos que el programa principal, que en nuestro caso está compuesto por una sola sentencia (la línea que contiene e l printf). Como se observa en el código las sentencias en C deben terminar con un punto y coma (;), #include y main() no son sentencias, dan información sobre la estructura del programa, y por tanto no finalizan con un punto y coma.

NOTA: La razón de que la línea "main()" no tenga un punto y coma ";" al final es debido a que la sentencia en sí termina al cerrar el corchete, no en que dicha línea proporcione información sobre la estructura del programa. De hecho, si el "main()"constituyese una línea de prototipo tendría un ";" al final.

La función printf permite visualizar datos formateados en pantalla, es decir, permite indicar un formato como si de un impreso o formulario se tratase indicando donde se deben visualizar cada uno.

El mensaje debe ir entre comillas dobles (") y dentro de las comillas se puede mostrar cualquier secuencia de caracteres. El formato de esta función para este segundo tema será:

printf ("mensaje");

En nuestro programa observamos que el mensaje de texto que visualiza la instrucción printf comienza con los caracteres \n. Estos caracteres nos permiten algunas funciones especiales para controlar la forma de visualizar los mensajes, la más utilizada en\n que significa nueva línea, así nuestra sentencia printf ("\nHOLAMUNDO"); moverá el cursor (la posición de la pantalla donde actualmente se visualizan los datos) a una nueva línea situándolo ala izquierda de la pantalla y visualizará el mensaje HOLA MUNDO.

Las secuencias antecedidas por \ que se pueden incluir en una instrucción printf son:


Nueva línea \n ,Tabulador horizontal \t,Tabulador vertical \v,Backspace (<-) \b,Retorno de carro \r,Avance de página \f, Pitido (alerta) \a, Caracter \ \\, Caracter ? \?, Caracter ' \' ,Caracter " \", Número Octal (ooo) \ooo, Número Hexadecimal (hh) \xhh .


Algunos comentarios sobre estos códigos:

En primer lugar el primer grupo (hasta carácter \), eran utilizados para mover el cursor en terminales. Los terminales podían ser una pantalla o una impresora, esta es la razón por la que nos encontramos cosas como avance de página o retorno de carro. Los caracteres \ ? '. " son especiales puesto que se utilizan dentro del mensaje a visualizar para indicar como se visualiza, o sea, si escribimos \ el compilador buscará el siguiente carácter y si es alguno de los anteriores los visualiza sino corresponde con ninguno simplemente lo ignora, con lo cual no podríamos visualizar el carácter \. Otro tanto sucede con las comillas puesto que para C, las comillas representan una cadena de caracteres, si escribimos " en nuestro mensaje se considerará que éste termina ahí con lo que lo que se encuentre después no tendrá sentido para el compilador.

Por último Número octal y Número hexadecimal nos permite introducir directamente el código numérico en octal o hexadecimal del carácter que deseemos visualizar, dependiendo del que esté activo en nuestro computador. En general el código utilizado para representar internamente los caracteres por los computadores es el código ASCII (American Standard Code for Information Interchange).

Nota: El lenguaje C diferencia entre mayúsculas y minúsculas con lo cual main, MAIN, MaIn, serían identificadores distintos para el compilador, en general en C se suele escribir todo en minúsculas a excepción de los mensajes a visualizar (cuyo uso depende del programador) y de las constantes, esto no tiene por que hacerse así pero digamos que se trata de una tradición de la programación en C. Las separaciones entre líneas también son arbitrarias y su única función es facilitar la legibilidad del código, sirviendo de separadores entre fragmentos de programa relacionados entre sí.

Algoritmo de eliminacion

La estrategia para diseñar el algoritmo de eliminación sobre árboles AVL (Árbol AVL es un término usado en computación para referirse a un tipo especial de árbol binario ideado por los matemáticos rusos Adelson-Velskii y Landis.) es la misma que para la inserción: Se utiliza el mismo algoritmo que sobre árboles binarios de búsqueda, pero en cada recursión se detectan y corrigen errores por medio de balancear() y se actualiza la altura del nodo actual.

Recordamos un poco la idea del algoritmo de eliminación sobre árboles binarios de búsqueda. Primero se recorre el árbol para detectar el nodo a eliminar. Una vez hecho esto hay tres casos a diferenciar por su complejidad:

· Si dicho nodo es una hoja procedemos a eliminarlos de inmediato, sin más.
· Si dicho nodo tiene un sólo hijo, el nodo puede eliminarse después de ajustar un apuntador del padre para saltar el nodo. Esto se muestra en la Figura:
. Si dicho nodo tiene dos hijos el caso es un poco más complicado. Lo que se estila hacer (y que de hecho se hace en el algoritmo gracias a la función auxiliar eliminar_min()) reemplazar el nodo actual por el menor nodo de su subárbol derecho (y luego eliminar éste).

Estructuras de datos

La computadora guarda los distintos tipos de datos de una forma lógica de tal manera que pueda encontrar los valores de forma rápida y eficiente. La forma como son guardados los datos se llama estructura de los datos, de aquí el término de datos estructurados

Datos estructurados
Estructura de Datos es una colección de datos que se caracterizan por su organización y las operaciones que se definen en ella. Los datos de tipo estándar pueden ser organizados en diferentes estructuras de datos: estáticas y dinámicas.

Estructura de Datos estáticas
Son aquellas en las que el espacio ocupado en memoria se define en tiempo de compilación y no puede ser modificado durante la ejecución del programa. Corresponden a este tipo los arrays y registros.

Estructuras de Datos Dinámicas
Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo de ejecución. Corresponden a este tipo las listas, árboles y grafos . Estas estructuras no son soportadas en todos los lenguajes. La elección de la estructura de datos idónea dependerá de la naturaleza del problema a resolver y, en menor medida, del lenguaje. Las estructuras de datos tienen en común que un identificador, nombre, puede representar a múltiples datos individuales.

Arrays:
Un arreglo (array) es una colección de datos del mismo tipo, que se almacenan en posiciones consecutivas de memoria y reciben un nombre común. Para referirse a un determinado elemento de un array se deberá utilizar un índice, que especifique su posición relativa en el array. Un arreglo es una colección finita, homogénea y ordenada de elementos. Finita:Todo arreglo tiene un límite; es decir,debe determinarse cuál será el número máximo de elementos que podrán formar parte del arreglo. Homogénea: Todos los elementos del arreglo deben ser del mismo tipo. Ordenada: Se puede determinar cuál es el primer elemento, el segundo, el tercero,.... y el n-ésimo elemento.

Los arreglos se clasifican de acuerdo con el número de dimensiones que tienen. Así se tienen los:

- Unidimensionales (vectores)
- Bidimensionales (tablas o matrices)
- Multidimensionales (tres o más dimensiones)
Fuente y recursos:
Entren otros

¿Qué es un algoritmo?

Es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Es decir, que un algoritmo es un método para encontrar la solución a algún problema. Los algoritmos son el objeto de estudio de la algoritmia y su definición queda formalizada por la Máquina de Turing.
En la vida cotidiana se emplean algoritmos en multitud de ocasiones para resolver diversos problemas. Algunos ejemplos se encuentran en los instructivos (manuales de usuario), los cuales muestran algoritmos para usar el aparato en cuestión o inclusive en las instrucciones que recibe un trabajador por parte de su patrón. También existen ejemplos de índole matemática, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver Sistema lineal de ecuaciones.
¿Cómo puede ser expresado un algoritmo?
Los algoritmos pueden ser expresados de muchas maneras incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos, no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:

1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
3. Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
El algoritmo y el Pseudocódigo
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural. Tiene varias ventajas con respecto a los diagramas de flujo entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudocódigo no está regido por ningún estándar.
Fuentes y recursos:
Domingo Giménez Cánovas, Algorítmica
Xavier Franch Gutiérrez, estructuras de datos

Acerca de los controles ActiveX

Los controles ActiveX son módulos de software basados en la arquitectura del modelo de objetos componentes (COM) de Microsoft. Agregan funcionalidad a las aplicaciones de software, ya que permiten incorporar al paquete básico de software módulos construidos previamente. Los módulos se pueden intercambiar, pero siguen apareciendo como parte del software original.

En Internet, los controles ActiveX se pueden vincular a páginas Web y los navegadores compatibles con ActiveX pueden descargarlos. Los controles ActiveX convierten las páginas Web en páginas de software que funcionan como cualquier otro programa ejecutado desde un servidor.

Primer virus informático de difusión masiva


Richard Skrenta, creador del primer virus informático solía gastar bromas a sus amigos metiendo ficheros en las copias piratas de los videojuegos con mensajes en los que se anunciaba su autodestrucción en pocos segundos. La broma podía parecer poco graciosa a sus compañeros, pero ha resultado más que pesada para el resto del mundo cuando crea el programa informático llamado "Elk Cloner".

"Elk Cloner" fue el primer virus de difusión masiva. Su propagación se producía mediante disquetes por tratarse de un período en la que Internet era un sistema limitado a los círculos académicos, este virus informático fue escrito para las máquinas Apple II, que al infectarse mostraban el siguiente mensaje en pantalla por cada cincuenta veces que se encendiese la computadora:
Elk Cloner: The program with a personality
It will get on all your disks
It will infiltrate your chips
Yes it's Cloner!
It will stick to you like glue
it will modify RAM tooSend in the Cloner!
El código fuente de Elk Cloner puede ser visto en:
http://www.skrenta.com/cloner/clone-src.txt
Skrenta nos cuenta : "Tuve la idea de dejar un residuo en el sistema operativo de la Apple II. El siguiente usuario que llegara, si no hacía un reinicio completo con su propio disco, podía ser afectado por el código que había dejado. Me dí cuenta que un programa auto-propagable podía ser escrito, pero más que dejar que hiciera daño rápidamente, quería que se mantuviera de bajo perfil para que afectara a otras personas también."
Si embargo, El primer virus que llamó la atención mediática a nivel mundial fue "Jerusalem", debido a la magnitud de las pérdidas que causó a varias empresas y particulares, este virus, luego de propagarse silenciosamente liberaba su carga destructiva cada viernes 13, eliminando archivos en las máquinas infectadas. Su descubrimiento y aislamiento en 1987 por la Universidad Hebrea de Jerusalem, puso en vela, a cientos de usuarios que desconocían por completo que los computadores también pueden ser enfermados por “virus”.
Fuentes y recursos:
Diario el pais de españa
Malicious mobile code, autor:Roger A. Grimes

Red Telefónica

La red telefónica es la de mayor cobertura geográfica, la que mayor número de usuarios tiene, y ocasionalmente se ha afirmado que es "el sistema más complejo del que dispone la humanidad". Permite establecer una llamada entre dos usuarios en cualquier parte del planeta de manera distribuida, automática, prácticamente instantánea. Este es el ejemplo más importante de una red con conmutación de circuitos.

¿Como funciona la red telefónica?

Una llamada iniciada por el usuario origen llega a la red por medio de un canal de muy baja capacidad, el canal de acceso, dedicado precisamente a ese usuario denominado línea de abonado. En un extremo de la línea de abonado se encuentra el aparato terminal del usuario (teléfono o fax) y el otro está conectado al primer nodo de la red, que en este caso se llamó central local. La función de una central consiste en identificar en el número seleccionado, la central a la cual está conectado el usuario destino y enrutar la llamada hacia dicha central, con el objeto que ésta le indique al usuario destino, por medio de una señal de timbre, que tiene una llamada. Al identificar la ubicación del destino reserva una trayectoria entre ambos usuarios para poder iniciar la conversación. La trayectoria o ruta no siempre es la misma en llamadas consecutivas, ya que ésta depende de la disponibilidad instantánea de canales entre las distintas centrales.

Existen 2 tipos de redes telefónicas, las redes publicas que a su vez se dividen en red publica móvil y red publica fija. Y también existen las redes telefónicas privadas que están básicamente formadas por un conmutador.

Las redes telefónicas publicas fijas, están formados por diferentes tipos de centrales, que se utilizan según el tipo de llamada realizada por el usuarios. Éstas son:

CCA – Central con Capacidad de Usuario
CCE – Central con Capacidad de Enlace
CTU – Central de Transito Urbano
CTI – Central de Transito Internacional
CI – Central Internacional
CM – Central Mundial

Es evidente que por la dispersión geográfica de la red telefónica y de sus usuarios existen varias centrales locales, las cuales están enlazadas entre sí por medio de canales de mayor capacidad, de manera que cuando ocurran situaciones de alto tráfico no haya un bloqueo entre las centrales. Existe una jerarquía entre las diferentes centrales que les permite a cada una de ellas enrutar las llamadas de acuerdo con los tráficos que se presenten.

Los enlaces entre los abonados y las centrales locales son normalmente cables de cobre, pero las centrales pueden comunicarse entre sí por medio de enlaces de cable coaxial, de fibras ópticas o de canales de microondas. En caso de enlaces entre centrales ubicadas en diferentes ciudades se usan cables de fibras ópticas y enlaces satelitales, dependiendo de la distancia que se desee cubrir. Como las necesidades de manejo de tráfico de los canales que enlazan centrales de los diferentes niveles jerárquicos aumentan conforme incrementa el nivel jerárquico, también las capacidades de los mismos deben ser mayores en la misma medida; de otra manera, aunque el usuario pudiese tener acceso a la red por medio de su línea de abonado conectada a una central local, su intento de llamada sería bloqueado por no poder establecerse un enlace completo hacia la ubicación del usuario destino (evidentemente cuando el usuario destino está haciendo otra llamada, al llegar la solicitud de conexión a su central local, ésta detecta el hecho y envía de regreso una señal que genera la señal de "ocupado").

La red telefónica está organizada de manera jerárquica. El nivel más bajo (las centrales locales) está formado por el conjunto de nodos a los cuales están conectados los usuarios. Le siguen nodos o centrales en niveles superiores, enlazados de manera tal que entre mayor sea la jerarquía, de igual manera será la capacidad que los enlaza. Con esta arquitectura se proporcionan a los usuarios diferentes rutas para colocar sus llamadas, que son seleccionadas por los mismos nodos, de acuerdo con criterios preestablecidos, tratando de que una llamada no sea enrutada más que por aquellos nodos y canales estrictamente indispensables para completarla (se trata de minimizar el número de canales y nodos por los cuales pasa una llamada para mantenerlos desocupados en la medida de lo posible).

Asimismo existen nodos (centrales) que permiten enrutar una llamada hacia otra localidad, ya sea dentro o fuera del país. Este tipo de centrales se denominan centrales automáticas de larga distancia. El inicio de una llamada de larga distancia es identificado por la central por medio del primer dígito (en México, un "9"), y el segundo dígito le indica el tipo de enlace (nacional o internacional; en este último caso, le indica también el país de que se trata). A pesar de que el acceso a las centrales de larga distancia se realiza en cada país por medio de un código propio, éste señala, sin lugar a dudas, cuál es el destino final de la llamada. El código de un país es independiente del que origina la llamada.

Cada una de estas centrales telefónicas, están divididas a su vez en 2 partes principales:

Parte de Control
Parte de Conmutación

La parte de control, se lleva a cabo por diferentes microprocesadores, los cuales se encargan de enrutar, direccionar, limitar y dar diferentes tipos de servicios a los usuarios.

La parte de conmutación se encarga de las interconexiones necesarias en los equipos para poder realizar las llamadas.

Nodos de conmutación:

Los nodos son parte fundamental en cualquier red de telecomunicaciones, son los encargados de realizar las diversas funciones de procesamiento que requieren cada una de las señales o mensajes que circulan o transitan a través de los enlaces de la red. Desde un punto de vista topológico, los nodos proveen los enlaces físicos entre los diversos canales que conforman la red. Los nodos de una red de telecomunicaciones son equipos (en su mayor parte digitales, aunque pueden tener alguna etapa de procesamiento analógico, como un modulador) que realizan las siguientes funciones:

a) Establecimiento y verificación de un protocolo. Los nodos de la red de telecomunicaciones realizan los diferentes procesos de comunicación de acuerdo a un conjunto de reglas conocidas como protocolos; éstos se ejecutan en los nodos, garantizando una comunicación exitosa entre sí, utilizando para ello, los canales que los enlazan.

b) Transmisión. Existe la necesidad de hacer uso eficiente de los canales, por lo cual, en esta función, los nodos adaptan al canal, la información o los mensajes en los cuales está contenida, para su transporte eficiente y efectivo a través de la red.

c) Interfase. En esta función el nodo se encarga de proporcionar al canal las señales que serán transmitidas de acuerdo con el medio de que está formado el canal. Esto es, si el canal es de radio, las señales deberán ser electromagnéticas a la salida del nodo, independientemente de la forma que hayan tenido a su entrada y también de que el procesamiento en el nodo haya sido por medio de señales eléctricas.

d) Recuperación. Si durante una transmisión se interrumpe la posibilidad de terminar exitosamente la transferencia de información de un nodo a otro, el sistema, a través de sus nodos, debe ser capaz de recuperarse y reanudar en cuanto sea posible la transmisión de aquellas partes del mensaje que no fueron transmitidas con éxito.

e) Formateo. Cuando un mensaje transita a lo largo de una red, pero principalmente cuando existe una interconexión entre redes que manejan distintos protocolos, puede ser necesario que en los nodos se modifique el formato de los mensajes para que todos los nodos de la red (o de la conexión de redes) puedan trabajar con éste; esto se conoce con el nombre de formateo (o, en su caso, de reformateo).

f) Enrutamiento. Cuando un mensaje llega a un nodo de la red de telecomunicaciones, debe tener información acerca de los usuarios de origen y destino; es decir, sobre el usuario que lo generó y aquel al que está destinado. Sin embargo, cada vez que el mensaje transita por un nodo y considerando que en cada nodo hay varios enlaces conectados por los que, al menos en teoría, el mensaje podría ser enviado a cualquiera de ellos, en cada nodo se debe tomar la decisión de cuál debe ser el siguiente nodo al que debe enviarse el mensaje para garantizar que llegue a su destino rápidamente. Este proceso se denomina enrutamiento a través de la red. La selección de la ruta en cada nodo depende, entre otros factores, del número de mensajes que en cada momento están en proceso de ser transmitidos a través de los diferentes enlaces de la red.

g) Repetición. Existen protocolos que entre sus reglas tienen una previsión por medio de la cual el nodo receptor detecta si ha habido algún error en la transmisión. Esto permite al nodo destino solicitar al nodo previo que retransmita el mensaje hasta que llegue sin errores y el nodo receptor pueda, a su vez, retransmitirlo al siguiente nodo.

h) Direccionamiento. Un nodo requiere la capacidad de identificar direcciones para poder hacer llegar un mensaje a su destino, principalmente cuando el usuario final está conectado a otra red de telecomunicaciones.

i) Control de flujo. Todo canal de comunicaciones tiene una cierta capacidad de manejar mensajes; cuando el canal está saturado no se deben enviar más por medio de ese canal, hasta que los previamente enviados hayan sido entregados a sus destinos.

Las funciones que se han descrito, son las más importantes, por lo tanto son las que deben tener instrumentadas los nodos de una red compleja. Por ejemplo, si una red consiste solamente en dos nodos a cada uno de los cuales están conectados una variedad de usuarios, es evidente que no se requieren funciones tales como direccionamiento o enrutamiento en cada uno de ellos.
El valor de las telecomunicaciones es el conjunto de servicios que se ofrecen por medio de las redes y que se ponen a disposición de los usuarios. Es decir, del tipo de comunicación que se puede establecer y del tipo de información que se puede enviar a través de éstas. Por ejemplo, a través de la red telefónica se prestan servicios de comunicación oral a personas y empresas. Entre éstos están el servicio telefónico local (tanto residencial como comercial e industrial), el servicio de larga distancia nacional y el servicio de larga distancia internacional, aunque en los últimos años se pueden hacer también, transmisiones de fax y de datos.

Por medio de una red de televisión por cable se pueden prestar servicios de distribución de señales de televisión a residencias en general, pero últimamente se han iniciado servicios restringidos, como son los servicios de "pago por evento". Es posible que gracias a los avances tecnológicos en diversos campos, en un futuro no muy lejano estén interconectadas las redes de telefonía con las de televisión por cable, y a través de esta interconexión los usuarios podrán explotar simultáneamente la gran capacidad de las redes de cable para televisión y la gran cobertura y capacidad de procesamiento que tienen las redes telefónicas.

La conmutación se puede dar de 2 formas:

a) Conmutación de circuitos: en la que primero se establece la trayectoria a seguir

b) Conmutación de paquetes: la cual funciona a traves de ráfagas de información.

Señalización:

Es la forma en que se va a comunicar el equipo

Señalización de línea: se da entre centrales
Señalización de usuario: se da entre el usuario y la central
Señalización de registro: se da entre centrales.

La comunicación entre 2 usuarios se da de la siguiente manera:

1. Cuando un abonado levanta el auricular de su aparato telefónico, la central lo identifica y le envía una "invitación a marcar".
2. La central espera a recibir el número seleccionado, para, a su vez, escoger una ruta del usuario fuente al destino.
3. Si la línea de abonado del usuario destino está ocupada, la central lo detecta y le envía al usuario fuente una señal ("tono de ocupado").
4. Si la línea del usuario destino no está ocupada, la central a la cual está conectado genera una señal para indicarle al destino la presencia de una llamada.
5. Al contestar la llamada el usuario destino, se suspende la generación de dichas señales.
6. Al concluir la conversación, las centrales deben desconectar la llamada y poner los canales a la disposición de otro usuario, a partir de ese momento.
7. Al concluir la llamada se debe contabilizar su costo para su facturación, para ser cobrado al usuario que la inició.

En una red telefónica conmutada, la señalización transporta la inteligencia necesaria para que un abonado se comunique con cualquier otro de esa red. La señalización indica al switch que un abonado desea servicio, le proporciona los datos necesarios para identificar al abonado distante que se solicite y entonces enruta debidamente la llamada a lo largo de su trayectoria.

Epidemia de fraude por Internet

¡Cuidado! Pueden robarle la identidad
Todo comenzó con mensajes obscenos de desconocidos en el contestador automático de la joven. Después, recibió la llamada de un hombre que decía responder a las invitaciones inmorales que ella había publicado en Internet, cuando en realidad ni siquiera tenía computadora. Le tomó tiempo descubrir que alguien había adoptado su identidad en el ciberespacio. El misterioso impostor no solo había publicado los anuncios electrónicos, sino que también había revelado su dirección, la manera de llegar... y hasta el modo de burlar la alarma de la casa.
¿Cómo consiguen estos individuos sin escrúpulos los datos personales? De manera muy fácil. Primero suelen obtener el tipo de información que generalmente se brinda en las solicitudes de crédito o en las operaciones de telecompra. Otros interceptan la correspondencia comercial que llega al buzón. Hay quienes se especializan en el uso de cámaras o binoculares para espiar el número que las personas ingresan en los cajeros automáticos o en los teléfonos públicos. En varios países se puede obtener con facilidad información privada en los tribunales, los archivos públicos o en Internet.
Al respeto asociación de Internautas ha alertado sobre la existencia de dos páginas web fraudulentas, que simulan las de Amazon y MySpace, y que constituyen sendas peligrosas trampas para los usuarios de ambos servicios. La asociación recordó que este portal ha registrado ya varios intentos de robos de claves de los usuarios de este sitio, por lo que recomienda a los internautas que no utilicen los buscadores para entrar en MySpace y tecleen directamente la dirección de la Web en el navegador.

Este tipo de estafas por Internet, conocidas como 'phishing', consisten en una página Web falsa que simula ser una entidad financiera o una tienda (utilizan los logotipos y los colores de la firma) y que pide al cliente que facilite sus claves o datos personales para actualizar las bases de datos, entre otras excusas.

Algunos consejos para cuando compre por Internet:
1. Nunca confiarte de subastas por Internet. En algunos sitios hay la opción a ver si el usuario subastador tiene malos antecedentes, en base a los reportes de los mismos usuarios. Si es una primera vez de ese usuario, con mayor razón desconfiar.

2. Es bueno apreciar la oferta que te hacen detenidamente. Muchos creemos que es una oferta única con la trampa de que "está muy barato" lo que ofrece. Hay que ver en todo el sitio si hay otros productos del mismo tipo y qué usuarios lo ofrecen.

3. Jamás envíes dinero si no estas seguro completamente de que del otro lado hay alguna garantía. Aunque bien sabemos que del otro lado hay una persona que tampoco sabe nuestras intenciones, la mayoría de la gente que sabe vender en subastas estar al tanto de cómo protegerse, sin hacer desconfiar al usuario. Una persona que quiere estafar a otra generalmente no le gusta las preguntas, esa es tu mejor arma. En este caso, es mejor ser cobarde que pen...sarlo.
Fuentes y recursos:

Diario el mundo de España
Libro de respuesta para ayuda financiera, autor: Thomson Peterson's

Hacker desplazado por el cinismo

Hacker es el neologismo utilizado para referirse a un experto en varias o alguna rama técnica relacionada con las tecnologías de la información y las telecomunicaciones: programación, redes de computadoras, sistemas operativos, hardware de red/voz, etc. Se suele llamar hackeo y hackear a las obras propias de un hacker.

El término "Hacker" trasciende a los expertos relacionados con la informática, para también referirse a cualquier profesional que está en la cúspide de la excelencia en su profesión, ya que en la descripción más pura, un hacker es aquella persona que le apasiona el conocimiento, descubrir o aprender nuevas cosas y entender el funcionamiento de éstas. Con el paso de los año, el idealismo de la primera comunidad de hackers fue desplazado parcialmente por el cinismo, conforme con los fuertes intereses monetarios, que se apoderaron de la joven industria de los computadores personales. Al mismo tiempo, en términos hacker asumió una connotación nueva más siniestra, en los medios de comunicación. Aunque mucha gente aún usa ese terminó para describir a los genios del software, es más común que se refiera al acceso no autorizado a sistemas de computación. Los hackers de antaño insiste que este acceso electrónico no autorizado en realidad debe llamarse cracking o violación, pero el público en general y los medios de comunicación populares no distingue entre los dos términos
Fuentes y recursos:
Autor: Mariano MataixLorda, diccionario de electronica informatica...
Autor: tom forester y perry marrison, Computer ethics