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

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

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

sábado, 5 de agosto de 2017

Curso de Photoshop: Saturación parcial de una foto

Dejar una foto en blanco y negro excepto una parte

En este tutorial de Photoshop vamos a dejar toda la fotografía en blanco y negro, excepto una selección que elijamos que quedará en color. Conviene que la parte que queda en color tenga colores que resaltan, dando un mayor contraste a la fotografía final.

Photoshop. Saturación parcial de una foto


Para comenzar vamos a tomar la herramienta  selección rápida.

Selección rápida photoshop


Con ella seleccionamos la parte que deseamos mantener en color. Para seleccionar vamos arrastrando la herramienta por el objeto. En este caso el coche rojo.  Una vez hemos hecho una selección tosca, podemos añadir o eliminar de nuestra selección las partes que nos falten o nos sobren. Para ello utilizamos de la barra de opciones de arriba (que pertenece a la herramienta Selección rápida) el pincel con el símbolo + para añadir a nuestra selección o el pincel con el símbolo resta – para eliminar de nuestra selección.

Añadir o restar de la selección

Para hacerlo bien, aumentamos la imagen con la herramienta Zoom. 

Herramienta zoom photoshop

A medida que necesitamos afinar más la selección, vamos disminuyendo el tamaño del pincel de selección.

Tamaño pincel photoshop


Una vez hecha nuestra selección, para dejar sólo en color el coche, elegimos del menú, Selección -> invertir.

Invertir selección photoshop

Hecho esto, vamos a la paleta de capas situada normalmente a la derecha.

paleta capas photoshop


Al pulsar sobre la paleta, se expande mostrando las diferentes capas (en nuestro caso sólo el fondo) y sus opciones.

paleta capas photoshop


Pulsamos el botón que representa un círculo blanco y negro (menú capas de ajuste) y despliega un menú, del cual  elegimos la opción tono/saturación.

opción tono/saturacíon del menú capas de ajuste photoshop



Ahora, tenemos un panel en el que podemos bajar la saturación al mínimo y ver que actúa sobre toda la foto, excepto sobre el coche seleccionado. Con esto ya tenemos una imagen como la de la portada.

dejar una zona en color y otra en blanco y negro con photoshop

Otra forma de hacer lo mismo con capas y máscaras

Se puede llegar a un resultado similar de forma diferente. En este caso, antes de seleccionar nada, vamos a la carpeta capas y sobre capas de ajuste, elegimos tono/saturación y lo ponemos todo en blanco y negro.


Capas de ajuste en el panel capas de Photoshop

crear capa tono/saturación con Photoshop


crear nueva capa tono/saturación con Photoshop


Ahora con la imagen en blanco y negro, vemos que en la paleta de paleta capas, se ha creado una nueva capa de ajustes encima de la capa fondo. Con la herramienta selector de color, elegimos un color negro y otro blanco (para hacer que la saturación/desaturación sea completa)

colores para máscara de capas con Photoshop

Nota. Si por algún motivo deseamos eliminar una capa. Basta con elegirla y arrastrarla y soltarla sobre el icono del cubo de la basura que hay debajo de la paleta capas en la derecha. Si en vez de eliminarla, queremos colocarla encima o debajo de otra capa, basta con arrastrarla y soltar la debajo o encima de la capa deseada).

Hecho esto, con el color negro por encima del blanco (para cambiarlos pulsar en las flechas) .

Herramienta color frente/fondo Photoshop


Elegimos la herramienta pincel y vamos pintando sobre la imagen.

Herramienta pincel Photoshop

Esto nos crea una máscara que va mostrando de nuevo el color de la capa fondo (con negro sobre blanco en la herramienta color frontal)

Pintar con una máscara de Photoshop

u ocultándolo si ponemos blanco sobre negro.

Herramienta color frontal Photoshop


Ocultar color con una máscara de Photoshop


Esto funciona porque hemos creado una máscara que permite ver u ocultar la capa fondo que es la que está en color, mientras que en la parte superior hemos colocado una capa en blanco y negro. El pincel nos permite crear o eliminar la máscara. 

Estas técnicas dan mucho juego en fotografía creativa, por ejemplo, podríamos haber elegido los muñecos en vez del coche, con este resultado:

Fotografía creativa con Photoshop




sábado, 29 de julio de 2017

Curso de C#: control de flujo, estructuras iterativas

Bucles For 


Los bucles for van asignando valores a una variable desde un valor inicial hasta un valor final, y cuando la variable contiene un valor que está fuera del intervalo el bucle termina.

for (var=inicial;condición;siguientevalor)
{
    Instrucciones
}

CURSO DE C#: control de flujo, estructuras iterativas

sábado, 15 de julio de 2017

Listas simplemente enlazadas (Linked List)

Concepto de lista enlazada


Una lista simplemente enlazada pertenece a las estructuras de datos fundamentales. Suele utilizarse para implementar otras estructuras de datos. 
Está estructurada en una secuencia de nodos, en los que se guardan los datos  y un puntero que apunta (contiene la dirección de la ubicación) al siguiente nodo. 
La principal utilidad de la lista enlazada es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento físico en memoria. De este modo se permite que el orden de lectura de la lista sea diferente al orden de almacenamiento físico. Al contrario de un array, el acceso a cada elemento no se hace a través de un índice sino mediante un puntero. Otra diferencia con los arrays es que estos pueden ser accedidos de forma aleatoria mientras que la lista se recorre de forma ordenada.
La lista también permite añadir o eliminar nodos en cualquier lugar aunque no permite un acceso aleatorio. Cuando es necesario hacer varias operaciones de inserción y eliminación de elementos en un conjunto resulta conveniente utilizar listas enlazadas. El puntero del último nodo contiene un valor vacío Null.

Listas simplemente enlazadas

sábado, 8 de julio de 2017

Acciones sobre muchos archivos en Photoshop

En Photoshop se pueden crear procesos por lotes para actuar en un sólo paso sobre muchas imágenes sin tener que hacerlo una a una. 

Se pueden automatizar muchas funciones. Para ello, primero es necesario crear una Acción (lo que se desea hacer con cada imagen) y luego procesar los archivos por lotes (para ejecutar esa misma acción con todas las imágenes de una carpeta).

Acciones sobre muchos archivos en Photoshop

sábado, 1 de julio de 2017

Curso de C#: Control de flujo, estructuras condicionales


Instrucción IF...ELSE IF...ELSE


Si esta condición se evalúa a true (verdadero) se ejecutan las líneas del bloque, y si se evalúa a false (falso) no se ejecutan. en C#:

if (num==10)
{
    Console.WriteLine("El número es igual a 10");
}

En este pequeño ejemplo, se evalúa como verdadero o falso lo que está dentro de los paréntesis, es decir, num==10. Por lo tanto, el operador == retornará true siempre que num valga 10, y false si vale otra cosa. No confundir el operador de comparación == con el de asignación =. 

La instrucción if ejecuta el código de su bloque siempre que la expresión que se evalúa retorne true. Sin embargo, no es necesario abrir el bloque en el caso de que solamente haya que ejecutar una sentencia. Así, podríamos haber escrito el ejemplo de esta otra forma:

if (num==10)
    Console.WriteLine("El número es igual a 10");

O bien:

if (num==10) Console.WriteLine("El número es igual a 10");

Curso de C#: Control de flujo, estructuras condicionales

sábado, 24 de junio de 2017

Fotos en tres dimensiones con Photoshop

Hacer una foto en tres dimensiones es muy sencillo, y se puede realizar con cualquier cámara, incluso con la del móvil.
Para hacer una foto en tres dimensiones lo primero que hay que tener en cuenta es que en realidad necesitamos dos fotos normales y corrientes tomadas cada una de ellas como vistas por cada ojo diferente. Es decir para tomar una foto en tres dimensiones necesitamos tomar una foto y luego desplazar la cámara ligeramente (unos centímetros) y tomas una segunda foto intentando que el encuadre sea similar. Hecho esto, una vez disponemos de nuestras dos fotos normales y corrientes, con el mismo encuadre pero ligeramente desplazadas (tal y como veríamos la misma escena con el ojo izquierdo y con el derecho) tenemos varias formas de verla en tres dimensiones. Voy a explicar dos de ellas.

fotos en tres dimensiones con photoshop

sábado, 17 de junio de 2017

Curso de C#: campos y propiedades

Campos


Ambas cosas (campos y propiedades) representan a los datos de una clase, aunque cada uno de ellos lo hace de un modo diferente. Los campos de una clase se construyen a base de variables. 

class Circunferencia
    {

        public double Radio;
        public double Perimetro;
        public double Area;
        public const double PI=3.1415926;
    }
  
Los modificadores de acceso de los que se habló al comienzo de este curso  (private, protected, internal y public) son aplicables a las variables y constantes solamente cuando estas representan los campos de una clase, y para ello deben estar declaradas como miembros de la misma dentro de su bloque. Sin embargo, una variable que esté declarada en otro bloque distinto (dentro de un método, por ejemplo) no podrá ser un campo de la clase, pues será siempre privada para el código que esté dentro de ese bloque, de modo que no se podrá acceder a ella desde fuera del mismo. 

Curso de C#: campos y propiedades

sábado, 10 de junio de 2017

Cómo hacer una panorámica con Photoshop

Para hacer una panorámica con photoshop, primero es preciso disponer de al menos dos fotos lo suficientemente contiguas y encuadradas como para que photoshop pueda unirlas automáticamente. Si no son contiguas, photoshop producirá un error y no las podrá unir, y si no están bien encuadradas, photoshop generará un panorama distorsionado por los bordes.

Una vez disponemos de las fotos adecuadas, basta con abrirlas en photoshop con la opción archivo -> abrir.

Panorama con Photoshop

sábado, 3 de junio de 2017

Curso de C# : constructores y destructores

Constructores


El constructor de una clase es un método que se encarga de ejecutar las primeras acciones de un objeto cuando este se crea al instanciar la clase. Estas acciones pueden ser: inicializar variables, abrir archivos, asignar valores por defecto a las propiedades. Un par de reglas:

1º. El constructor ha de llamarse exactamente igual que la clase.
2º. El constructor nunca puede retornar un valor.

Lo primero que se ejecuta al crear un objeto es el constructor de la clase a la que dicho objeto pertenece (el compilador no exige que exista). 

    class Objeto
    {
        public Objeto()
        {
            Console.WriteLine("objeto instanciado");
        }
    }

    class ConstructoresApp
    {
        static void Main()
        {
            Objeto o = new Objeto();
            string a=Console.ReadLine();
        }
    }

En este ejemplo, la clase Objeto tiene un constructor (en negrita). Se declara igual que un método, con la salvedad de que no se pone ningún tipo de retorno Al ejecutar este programa, la salida en la consola sería esta:

Curso de C# : constructores y destructores


sábado, 27 de mayo de 2017

Excepciones en Visual Basic.NET

Vamos a utilizar los eventos para cosas que esperamos que le suceda al objeto. A veces suceden cosas que no se esperan. En .NET, las situaciones excepcionales son tratadas con el uso de excepciones, una implementación para el manejo de las condiciones de error. Dicho programa consiste en "manejar la excepción" cuando se pueden producir errores. Se puede escribir código para "atrapar" la excepción, con lo que la ejecución del programa no se detiene por completo. Por otra parte, se pueden crear excepciones personalizadas para la aplicación, para facilitar información específica al  programa y el usuario acerca de qué ha ido mal.

 Generar una excepción


Esta pequeña aplicación enseña cómo se captura una excepción.

Sobre el evento Click de un botón del formulario ponemos:

Private Sub Boton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Boton.Click

        Dim numbers() As Integer = {1, 2, 3, 4, 5}
        MessageBox.Show(numbers(9))
End Sub


Al ejecutar el programa saltará una excepción, pues intenta leer el índice 9 de un array que tiene 5 elementos, y dice que el array está fuera de rango. Se puede prevenir este error capturando la excepción.

Excepciones en Visual Basic.NET

sábado, 20 de mayo de 2017

Curso de C#: métodos

Métodos


Los métodos son bloques de código manejan los datos de la clase. Cómo se define un método en C#:

acceso tipo NombreMetodo(TipoArg1 argumento1, TipoArg2 argumento2 ...)
{
    // Aquí se codifica lo que tiene que hacer el método
}

acceso es el modificador de acceso del método, que puede ser private, protected, internal o public (como las variables). Posteriormente el tipo de retorno, es decir, el tipo de dato que devolverá el método (que puede ser cualquier tipo). Luego el nombre del método (sin espacios en blanco). Después, entre paréntesis y separados unos de otros por comas, la lista de argumentos que aceptará el método: cada uno de ellos se especificará poniendo primero el tipo y después el nombre del mismo. Por fin, la llave de apertura de bloque seguida del código del método y, para terminarlo, la llave de cierre del bloque.


Curso de C#: métodos


sábado, 13 de mayo de 2017

Principios SOLID de la programación orientada a objetos

Solid es un acrónimo para establecer los cinco principios básicos de la programación orientada a objetos y diseño. El objetivo de tener un buen diseño de programación es llegar a la fase de mantenimiento de una forma más legible y sencilla así como conseguir crear nuevas funcionalidades sin tener que modificar en gran medida código antiguo. Los costes de mantenimiento pueden abarcar el 80% de un proyecto de software por lo que hay que valorar un buen diseño.
Las reglas SOLID son un conjunto de principios que, aplicados correctamente,  ayudan a escribir software de calidad en cualquier lenguaje de programación orientado a objetos. El código será más fácil de leer, testear y mantener.

Los procesos de refactorización serán mucho más sencillos si se cumplen estas reglas.

Los principios en los que se basa SOLID son los siguientes:
Principio de Responsabilidad Única
Principio Open/Closed
Principio de Sustitución de Liskov
Principio de Segregación de Interfaces
Principio de Inversión de Dependencias


Principios SOLID de la programación orientada a objetos





sábado, 6 de mayo de 2017

Curso de C#: operadores

Los operadores sirven, para efectuar operaciones con uno o más parámetros (sumar, restar, comparar...) y retornar un resultado. Aquí se muestra una tabla con los operadores de C#.

Operadores de C#
Tomado de el Guille

sábado, 29 de abril de 2017

Interfaces predefinidos en .NET

Interfaces genéricas de .NET


. NET define varias interfaces genéricas de uso común de entre las que podemos elegir para implementar nuestras clases. Estas interfaces nos permiten obtener funcionalidad adicional para nuestro objeto. Algunas interfaces se describen en la tabla siguiente:



Interfaz


Descripción

IComparable

Define el ordenamiento de instancias de la clase. Es útil si queremos utilizar la clase como un valor clave en SortedList o vamos a usar el método Sort del ArrayList.


IEnumerable e IEnumerator


Estas dos interfaces trabajan juntas dando soporte a los For…Each de nuestra clase


IFormattable


Permite definir formateos de cadena definidos por el usuario


IList


Permite a la clase servir como fuente de datos Para controles tales como ListBox y DataGrid. La implementación de la base es List.


ICloneable


Permite definir exactamente como será copiado nuestro objeto.


IComponent


Provee soporte como componente a nuestra clase en tiempo de diseño. La base de esta implementación es Component.


IDataErrorInfo


Permite añadir a la clase información sobre errores.  El soporte de esta interface nos permite usar el control Dataerror en un formulario de Windows.



A continuación, vamos a crear una clase simple que representa un punto. Vamos a usar esta clase como una base para la aplicación de los interfaces IComparable, IEnumerator IEnumerable, y de IFormattable. Estas interfaces de usuario hacen que la clase sea más fácil de usar para otros desarrolladores.

Interfaces predefinidos en .NET

Related Posts Plugin for WordPress, Blogger...