sábado, 30 de diciembre de 2017

Cómo configurar nuestra conexión de internet para que sea más rápido

Introducción

Hay veces que tenemos conexiones a internet lentas en nuestra máquina, una solución a este problema puede consistir en utilizar DNS diferentes a la de nuestro proveedor habitual de conexión internet. 
La función más conocida de los protocolos DNS  consiste en asignar nombres a las direcciones IP para poder acceder a diferentes sitios sin tener que recordar valores numéricos.
El usuario escribe en el navegador “analisisyprogramacionoop.blogspot.com.es” y el ordenador solicita su IP correspondiente a un servidor. Los servidores DNS devuelven estas peticiones y le indican al ordenador la dirección IP del sitio, resolviendo la dirección.

La mayoría de los usuarios utilizamos como servidor DNS el que nos proporciona nuestro proveedor de servicios de Internet. Pero es posible configurar estos servidores manualmente a través del protocolo DHCP, de este modo podemos apuntar a servidores libres y gratuitos librándonos de alunas limitaciones de nuestro proveedor y ya de paso obtener protección adicional como el anonimato.

Creación de entradas DNS en Windows 2008 Server utilizando los servidores de Google

En este caso vamos a apuntar a los servidores de  Google, para ello, abrimos el Panel de Control y luego buscamos la opción Centro de  Redes y recursos compartidos.
En el panel de la izquierda hacemos clic en la opción Ver estado.

Cómo configurar nuestra conexión de internet para que sea más rápido


sábado, 23 de diciembre de 2017

Configuración de la Autenticación básica con LAMPP

Autenticación es el proceso por el cual se identifica el usuario que está haciendo la petición en servidor web. Con ello, podemos permitir o denegar la petición sobre todo o partes de los recursos o aplicaciones.  

Autenticación Anónima. Permite a los clientes acceder a áreas públicas de nuestra web, sin requerir que el cliente provea ninguna acreditación.

Autenticación Básica. Implementa el protocolo de autenticación Básica, un estándar de HTTP soportado por la mayoría de navegadores existentes. Permite que un cliente envíe un nombre de usuario y una contraseña en texto plano. 

Autenticación Digest Implementa el protocolo Digest Authentication, utilizado para la autenticación estándar para HTTP. En este caso el cliente envía el nombre de usuario y la password al servidor encriptados.

Configuración de la Autenticación básica con LAMPP

Control de acceso por usuarios (Autenticación básica en Linux Ubuntu-LAMPP)

Aquí está lo esencial en cuanto a proteger con contraseña un directorio de un servidor web.
Necesitaremos crear un archivo de contraseñas. Éste archivo lo colocamos en algún sitio no accesible mediante la Web. Por ejemplo, si los documentos son servidos desde /opt/lampp/htdocs  podemos colocar los archivos de contraseñas en /opt/lampp/passwd. Creamos la carpeta.

mkdir /opt/lampp/htdocs/passwd

añadimos estas líneas al archivo httpd.conf que está en /opt/lampp/etc/

#PARA CONTROL DE ACCESO POR USUARIOS
Alias /miweb/ /opt/lampp/htdocs/miweb
<Directory /opt/lampp/htdocs/miweb>.
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /opt/lampp/htdocs/passwd/salida
Require user nombre_usuario
</Directory>  
  
Ahora creamos el usuario en la carpeta passwd que creamos al principio. Nos colocamos en la carpeta /opt/lampp/bin  que es donde está la instrucción htpasswd.

cd /opt/lampp/bin

Si htpasswd no está instalado, podemos instalarlo con

apt-get install apache2-utils

y ejecutamos esta instrucción con permisos de root

sudo su
htpasswd -c /opt/lampp/htdocs/passwd/salida nombre_usuario

Esto nos pedirá una contraseña para el usuario y nos pedirá repetirla.
Una vez creado el archivo de contraseñas reiniciamos LAMPP y probamos a acceder de a nuestra página web del servidor desde un navegador

localhost/miweb/index.html

Tiene que pedir usuario y contraseña

acceso web por usuario


Más información en: Autenticación básica en Apache

sábado, 16 de diciembre de 2017

Habilitar un servidor FTP en Windows con IIS

Una forma directa de gestión de contenidos de un servidor web es a través de un servicio de FTP (File Transfer Protocol) antes de crear un servicio FTP hay que asegurarse que cuando se instaló IIS se eligió FTPAbrimos IIS y al desplegar el servidor  vemos Sitios FTP, al posicionarnos aparece una pantalla de sitios FTP  sobre la que pulsamos en Haga clic aquí para iniciar.

Habilitar un servidor FTP en Windows con IIS

domingo, 10 de diciembre de 2017

Como instalar un escritorio remoto con Ultra VNC

UltraVNC Server and Viewer es un software potente, fácil de usar y gratuito que puede mostrar la pantalla de un equipo (Servidor) en la pantalla de otro (Visor). El programa permite al espectador usar su ratón y teclado para controlar el Servidor Computadora de forma remota.

UltraVNC es una aplicación VNC que se adapta a equipos con Windows, y que tiene varias características que no se encuentran en otros productos VNC.

Para comenzar vamos a la página  y nos descargamos la versión Free dynamic DNS.

Free Dynamic DNS

sábado, 9 de diciembre de 2017

Curso básico de C#

Traigo aquí una recopilación de todos los artículos que se han publicado durante este año sobre C# ordenados en formato curso.

Curso básico de C#

domingo, 3 de diciembre de 2017

Conceptos de discos duros

Una unidad de disco duro o unidad de disco rígido (Hard Disk Drive, HDD) es un dispositivo de almacenamiento de datos que emplea un sistema de grabación magnética para almacenar archivos. Está compuesto de uno o más platos o discos rígidos, unidos por un mismo eje que gira a gran velocidad dentro de una caja metálica sellada. Sobre cada plato, y en cada una de sus caras, se sitúa un cabezal de lectura/escritura que flota sobre una lámina de aire generada por la rotación de los discos. Se trata de memoria no volátil que permite múltiples escrituras y lecturas. 

Discos básicos

Los discos básicos contienen volúmenes básicos, como particiones primarias y unidades lógicas en particiones extendidas. Se pueden utilizar discos básicos en equipos portátiles, o cuando vayamos a instalar varios sistemas operativos en particiones diferentes del mismo disco.
Antes del lanzamiento de Windows 2000 eran los únicos que se utilizaban. Un disco básico contiene particiones, también llamadas volúmenes básicos. 

 Los discos básicos utilizan la tabla de particiones. Esta tabla de particiones está almacenada al principio del disco duro, en el sector 0, en lo que se llama MBR (Master Boot Record). En los discos básicos con MBR sólo se pueden crear cuatro particiones primarias, con una unidad lógica cada una de ellas; o  tres primarias y una extendida. Dentro de la partición extendida es posible crear ilimitadas unidades lógicas hasta agotar la capacidad del disco duro. El límite máximo de cada partición de dos terabytes.
Conceptos básicos de discos duros

sábado, 2 de diciembre de 2017

Programación orientada a objetos: conceptos teóricos

Clases


Una clase es un molde que permite definir las características que tomara cada objeto de la clase. Consideremos la clase “coche” como molde de la que luego cada objeto adquiere las características de un coche concreto, por ejemplo micoche. Un coche tiene una serie de atributos que lo convierten en un coche. Cuatro ruedas, un motor, volante, etcétera. También tiene una serie de atributos como el color, el modelo, la marca, etc. Y luego unas funciones como acelerar, frenar, girar. 

En programación orientada a objetos tendríamos sólo la clase coche, y luego cada instancia de la clase (cada objeto) es un coche concreto. Un coche azul modelo A es una instancia concreta de la clase coche.

Una clase tiene variables y métodos. Las variables son las que definen los atributos del objeto en concreto, por ejemplo la variable color es la que define si luego una instancia concreta de coche será de color azul verde o rojo. Y los métodos son los que definen las funciones de la clase. En este caso tendríamos los métodos frenar, acelerar y girar.
Así pues la clase coche tendría las variables: color, cilindrada, marca y modelo. Y los métodos Frenear, acelerar y girar. La clase serían los planos y el código cliente la fábrica de coches de la que van saliendo las instancias  (coches).

Si lo implementamos como una clase real de software convendría que el código de cliente. El que crea las instancias no tuviera acceso directo a las variables de la clase, el color, la marca etc. Para ello se crean las propiedades que son similares a los métodos pero permiten leer y escribir las variables de la clase de una forma controlada por la propia clase y no por el código cliente. De este modo el código de la clase queda fuera de la vista del código cliente (encapsulación) esto permite que a medida que se crean las clases, estas se pueden almacenar en una librería y el programador se centra sólo en el código cliente que utiliza la clase. Una vez probada la clase no hay que volver a tocarla salvo haya que hacer alguna modificación de su funcionalidad. Esto mantiene controlados los cambios, sabemos que si tocamos las facturas no dejarán de funcionar otras partes del programa y podremos centrarnos sólo en probar de nuevo las facturas.




Programación orientada a objetos: conceptos teóricos

sábado, 25 de noviembre de 2017

Instalar Windows Internet Information Services (IIS)

Internet Information Services o IIS es un servidor web  para el sistema operativo  Windows.

Este servicio convierte la máquina donde se instala en un servidor web para Internet o para una intranet. Los ordenadores que tienen este servicio instalado pueden publicar páginas web tanto local como remotamente.
Para instalar IIS hay que abrir panel de control .

Instalar  IIS

sábado, 18 de noviembre de 2017

Curso de C#: eventos

Para disparar un evento en C# se utilizan los delegados


Un evento es la forma que tiene una clase para notificar a los clientes de la clase que ha ocurrido  algo digno de capturar en un método en el que se inserta código para tratarlo. Su utilización más habitual se produce en las interfaces gráficas; es de todos conocido el evento click que se ejecuta al pulsar un botón de una interfaz gráfica.

Los eventos proporcionan un medio adecuado para que los objetos puedan reaccionar a cambios de estado que pueden resultar útiles para los clientes del objeto.

Los eventos se declaran mediante delegados.


Eventos en C#

sábado, 11 de noviembre de 2017

Curso de C#: delegados

Conceptos teóricos


Un delegado es una referencia a una función, también se conoce como un puntero a una función. Un delegado permite acceder a una función de forma casi anónima, ya que simplemente tiene la dirección de memoria de dicha función. Y sabiendo la dirección de la memoria, podemos acceder a ella.
El equivalente de los delegados en el lenguaje C/C++ sería un puntero a función (callback)

Un delegado, es un tipo que define una firma o prototipo de método y se puede asociar a cualquier método con una firma compatible. Puede invocar (o llamar) al método a través del delegado. Un delegado permite enviar un método como parámetro a otro método.

Curso de C#. Delegados

sábado, 4 de noviembre de 2017

Curso de C#: interfaces

Interfaces

En teoría de orientación a objetos, la interfaz de una clase es todo lo que podemos hacer con ella. A efectos prácticos: todos los métodos, propiedades de la clase conforman su interfaz.

Nota.
(Las variables públicas también formarían parte de la interfaz, pero no es recomendable declarar variables públicas. Siempre acceder a ellas a través de propiedades).

No tendría sentido establecer una relación de herencia entre conjuntos completamente distintos, por más que muchos de sus miembros fueran a ser comunes. Por ejemplo, no estaría bien heredar una clase tarjeta de crédito y otra clase cuenta corriente de una clase banco. Por más que en todos ellos puedan hacerse ingresos o reintegros, está claro que ni las tarjetas de crédito ni las cuentas corrientes son bancos. En resumen, no hay que basarse únicamente en la funcionalidad para establecer una relación de herencia entre clases.
Es en este último caso donde juegan un papel importante las interfaces. Una interfaz es la definición de un conjunto de miembros que serán comunes entre clases que serán (o no) completamente distintas. La interfaz conoce cómo será la funcionalidad de cualquier clase que la implemente pero, no podrá conocer los detalles de esa implementación en cada una de esas clases, de modo que una interfaz no puede implementar nada de código, sino que, sólo puede describir un conjunto de miembros.

Interfaces en C#

sábado, 28 de octubre de 2017

Cómo cambiar el cielo de una fotografía con Photoshop

Muchas veces hacemos una fotografía magnífica pero el cielo nos la estropea porque nos sale quemado o bastante soso o ambas cosas. Otras veces nos sale un cielo precioso sin nada importante en el motivo. Hoy vamos a utilizar esas fotos para mejorar nuestras fotos, colocando el cielo que nos salió bien en la foto con el cielo quemado o soso.
Para ello lo primero que hay que hacer es abrir ambas fotos, la que tiene el cielo quemado o soso y la del cielo bonito.

Cómo cambiar el cielo de una fotografía con Photoshop
Puedes descargar esta foto aquí

sábado, 21 de octubre de 2017

Curso de C#: clases

Clases

Una clase es la plantilla a partir de la cual es posible crear objetos. Todos los objetos de la misma clase comparten la interface (es decir, métodos, campos y propiedades), pero los datos que contiene cada objeto en sus campos y propiedades pueden diferir.
Por su misión específica,  las clases (y las estructuras) se pueden dividir en tres grandes grupos:

Clases que ofrecen un valor

Son aquellas en las que lo principal es el valor que contienen. Por ejemplo, para pagar un artículo de 50 €. Es posible usar un billete de 50 u otro igual, también de 50. O incluso cinco de 10 € Lo importante es pagar los 50 €, pero no los billetes que utilicemos. Los objetos cuyo único interés es su valor son intercambiables, y suelen estar implementados como estructuras (Int32, Int16, Double...).


Curso de  C#: clases

sábado, 14 de octubre de 2017

Direccionamiento IPv4

La dirección IP es el identificador del dispositivo dentro en una red y o el identificador de la red debe ser único. Las características del direccionamiento IP están incluidas en el protocolo IP (Internet Protocol).

Actualmente se está desarrollando el nuevo protocolo IPv6 pero se espera que IPv4 se siga utilizando algunos años más. Una dirección IP es un número, que sirve para identificar de forma única a un dispositivo dentro de la red. Su asignación a un dispositivo se puede hacer de dos formas:

• Estática. En este caso, alguien  debe configurar manualmente todos los parámetros de red, incluyendo la dirección IP.

• Dinámica. En este caso, en la red donde se conecta el dispositivo debe haber un
equipo que se encargue de asignar de forma automática una dirección IP válida.

En cuanto al alcance podemos distinguir dos tipos de direcciones:

• Direcciones públicas. Son asignadas a dispositivos conectados a Internet  cuya dirección IP debe ser única para toda la Red. Hay organismos que se
encargan de gestionar dichas asignaciones.

• Direcciones privadas. Son direcciones asignadas a dispositivos dentro de una red que no están conectados con Internet. Los dispositivos que tienen asignada una dirección privada no pueden acceder a Internet con esa dirección y necesitan un dispositivo que les asigne una dirección pública.

Además todos los dispositivos físicos requieren una dirección IP única: La dirección MAC.

Las direcciones IP están construidas de dos partes: el identificador de red (ID network) y el identificador del dispositivo (ID host). Por Host entenderemos que es cualquier dispositivo que tiene asignada una dirección IP.

Formato de una dirección IPv4


El sistema de direccionamiento IP consiste en un número binario de 32 bits.

Direccionamiento IPv4

sábado, 7 de octubre de 2017

Curso de C#: conversiones y estructuras


Conversiones definidas

Con la sobrecarga de operadores es posible sumar objetos de clases distintas e incompatibles. Las conversiones definidas vienen a abundar un poco más sobre estos conceptos, permitiendo hacer compatibles tipos que antes no lo eran.
El fragmento de código a continuación es extraño al tener que usar constructores y propiedades:

Metros m=new Metros(10);
Centimetros c=new Centimetros(10);

Metros SumaMetros=m+c;
Centimetros SumaCentimetros=c+m;

Console.WriteLine(SumaMetros.Cantidad);
Console.WriteLine(SumaCentimetros.Cantidad);
Las conversiones definidas permiten manejarlo de un modo más natural:
Metros m=(Metros) 10;
Centimetros c=(Centimetros) 10;

Metros SumaMetros=m+c;
Centimetros SumaCentimetros=c+m;

Console.WriteLine((double) SumaMetros);
Console.WriteLine((double) SumaCentimetros);

Curso de C#: conversiones y estructuras

sábado, 30 de septiembre de 2017

Cómo crear un sistema operativo Linux-Ubuntu ejecutable dentro de un pendrive USB

Un pendrive con un sistema operativo autoejecutable desde el propio pendrive será útil para llevar nuestra máquina completa en el bolsillo y ejecutarla donde queramos o para arrancar  ordenadores con problemas, desde el pendrive. En este caso utilizaremos el sistema operativo Ubuntu de 32 bits.

Requisitos:
Descargar en nuestro equipo la aplicación Linux Live Creator  e instalamos la aplicación.
Descargamos también en nuestro equipo la ISO de Ubuntu de 32 bits.

La instalación la realizaremos en un pendrive de 16 Gb (8 Gb Mínimo)  vacío, pues se formateará.

Hecho esto procedemos del siguiente modo:
Ejecutamos Linux Live Creator,  asegurándonos antes de que el pendrive está insertado en nuestro equipo, sino, no lo reconocerá. 

Cómo crear un sistema operativo en una máquina virtual. Linux Live

Elegimos el pendrive (mínimo 8Gb), y el origen de nuestra ISO de Ubuntu  previamente descargada en nuestro equipo.
Cómo crear un sistema operativo en una máquina virtual.

En memoria RAM le ponemos el máximo  y le decimos que formatee el pendrive. Chequeamos las tres opciones que vienen:

Opciones de Linux Live

Hacemos Click en el rayo y nos muestra una pantalla de aviso.

Formateo de un pendrive, Linux Live.


Ahora tendremos que esperar unos minutos fijándonos en los mensajes de la parte inferior del programa.

Meter Ubuntu ejecutable en un pendrive


Elegimos con persistencia.

Hecho esto, podemos llevarnos el pendrive a cualquier equipo y al arrancar el equipo pulsamos la tecla escape para acceder a la BIOS y le decimos que arranque desde nuestro pendrive. Al abrirse el sistema operativo Ubuntu pedirá el idioma la primera vez y luego ojo, porque hay que elegir siempre probar Ubuntu, si elegimos instalar, lo hará en el disco duro del equipo donde tengamos el pendrive metido.

sábado, 23 de septiembre de 2017

Conceptos básicos de máquinas virtuales


Una máquina virtual es un software que simula un ordenador y puede ejecutar programas como si fuese un ordenador real. Este software fue definido como "un duplicado eficiente y aislado de una máquina física". Actualmente esta definición incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.

Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".

Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Windows por ejemplo) sin necesidad de instalarlo directamente en nuestra máquina y sin miedo a que se desconfigure el sistema operativo primario.

Conceptos básicos de Máquinas virtuales

sábado, 16 de septiembre de 2017

Verificar la autenticidad de un instalador de software ( Aplicación MultiHasher)

Cuando descargamos un instalador de internet, siempre tenemos la duda de si será bueno o tendrá virus, malware o alguna otra cosa. Para asegurarnos de que el software ya sea gratuito o de pago es auténtico y no contiene virus, existe un código llamado SHA-256 que nos permite verificar la autenticidad del software descargado.

Para comprobar dicho código, descargamos cualquier aplicación calculadora de código SHA (Secure Hash Algorithm). En este caso he optado por la aplicación MultiHasher. Desde la URL  pulsamos en Download Zip Version.

Verificar la autenticidad de un instalador de software ( Aplicación MultiHasher)

sábado, 9 de septiembre de 2017

Curso de C#: Indizadores y sobrecarga de operadores

Indizadores

Un indizador es un concepto más o menos nuevo. Se trata de una simplificación de un objeto que es en realidad un array o una colección.
A modo de ejemplo se muestra un caso concreto. Un libro no es más que un objeto que contiene una serie de capítulos, para construir el objeto Libro con una colección Capítulos dentro de él, en la que sea posible añadir o modificar capítulos, de modo que necesita un método Add y un método Modify y luego llamar a estos métodos desde el código cliente:
static void Main()
{
    Libro miLibro=new Libro();

    miLibro.Capitulos.Add("Las tres crisis");
    miLibro.Capitulos.Add("Cosmos");
    miLibro.Capitulos.Modify("El mundo y sus demonios",1);

    ...
}
Un indizador, permite tratar al objeto como un array o una colección, haciendo la codificación más intuitiva. El código equivalente al anterior sería así:
static void Main()
{
    Libro miLibro=new Libro();

    miLibro[0]=" Los dragones del edén ";
    miLibro[1]="Cosmos";
    miLibro[1]=" El mundo y sus demonios";

    ...
}
Curso de C#: Indizadores y sobrecarga de operadores

sábado, 2 de septiembre de 2017

Curso de Photoshop: filtro licuar

Si Photoshop es conocido mundialmente, es por los retoques de muchas modelos famosas que muestran atributos perfectos e imposibles de poseer en la vida real y muchas veces cuerpos que no se corresponden con su situación real.
Aunque resulte sorprendente muchos de estos retoques se realizan con una única herramienta de Photoshop: El filtro licuar.

Curso de Photoshop: filtro licuar
Puedes descargar fotos como esta aquí

sábado, 26 de agosto de 2017

Curso de C#: arrays

Arrays


Un array es un indicador que puede almacenar varios valores simultáneamente. Cada uno de estos valores se identifica mediante un número al cual se llama índice. Así, para acceder al primer elemento del array habría que usar el índice cero, para el segundo el índice uno, para el tercero el índice dos, y así sucesivamente. A continuación se muestra cómo se declara un array:

tipo[] variable;

Curso de C#: arrays


sábado, 19 de agosto de 2017

Curso de Photoshop: crear rayos de sol artificiales con photoshop

Vamos a tomar una foto y sobre ella, añadiremos unos rayos de sol artificiales. Siempre hay que procurar que el efecto quede lo más realista posible, poniendo especial cuidado en los ángulos de incidencia y los degradados. Comenzaremos con una foto de una iglesia, a la que deseamos añadir unos rayos para realzar el efecto de la ventana lateral,

Curso de Photoshop. Crear rayos de sol artificiales con photoshop
Puedes descargar esta foto aquí

sábado, 12 de agosto de 2017

Curso de C#: control de flujo, saltos y rupturas

Instrucciones de salto


Las instrucciones de salto permiten modificar el flujo del programa, forzando la siguiente iteración de un bucle antes de tiempo, o la salida del mismo o bien enviando la ejecución a un punto determinado del programa.

La instrucción Break


La instrucción break fuerza la salida de un bucle antes de tiempo o bien de una estructura de control de flujo condicional en la que se encuentre. Un ejemplo sencillo: 

    class InstruccionBreak
    {
        static void Main()
        {
            int num=0;

            while (true)
            {
                Console.WriteLine(num);
                num+=5;
                if (num>100) break;
            }

            string a=Console.ReadLine();
        }
    }

Curso de C#: control de flujo, saltos y rupturas