Welcome !

Bienvenido a mi blog ! Espero encuentres lo que buscas....

martes, 9 de septiembre de 2014

Conversiones en c#

Buenas.... las conversiones son algo siempre útil, y como estoy cansada de buscar info en una página y otra, voy a poner aquí las que vaya utilizando, con la idea de tener una referencia rápida.  Espero que al final quede lo más completa posible, y no tener q googlear cada 5 min porque necesito otra conversión q no sé o no me acuerdo....

Sin más preámbulos, aquí va:

Algunas pueden hacerse con la clase Convert (http://msdn.microsoft.com/es-es/library/t2htb6f1(v=vs.90).aspx)
  • De decimal a binario

            Convert.ToString(d, 2);    //devuelve un String

  • De decimal a hexadecimal: 

            Convert.ToString(d, 16);      //devuelve un String

  • De binario a decimal:

            int n = Int32.Parse(b);
            n = Convert.ToInt32(n.ToString(), 2);
            Convert.ToString(n, 10); //devuelve un String

  • De binario a hexadecimal:

            int n = Int32.Parse(b);
            n = Convert.ToInt32(n.ToString(), 2);
            Convert.ToString(n, 16); //devuelve un String

  • De hexadecimal a decimal:

            int n = Int32.Parse(h);
            n = Convert.ToInt32(n.ToString(), 16);
            Convert.ToString(n, 10); //devuelve un String

  • De hexadecimal a binario:

            int n = Int32.Parse(h);
            n = Convert.ToInt32(n.ToString(), 16);
            Convert.ToString(n, 2); //devuelve un String


Con arrays:


  • De string a byte[]:

            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
            byte[] mensaje = encoding.GetBytes(respuesta);  //respuesta es un String

  • De byte[] a short[]:

       public static short[] ByteArrayToShortArray(byte[] bytes)
        {
            var shorts = Array.ConvertAll(bytes, b => (short)b);
            return shorts;
        }

  • De short[] a string:

        public static string deShortAString(short[] s) {
            string rta = "";

            for (int i = 0; i < s.Length; i++)
            {
                // Muestra el short en formato hexadecimal
                rta += string.Format("[{0:X2}]", s[i]);
            }
            return rta;
        }

Es todo por hoy, en el futuro, iré actualizando ésto para q quede completito :) Acepto sugerencias ...

lunes, 28 de abril de 2014

Java - Substance

Me he quemado la cabeza buscando una forma de poner mi aplicación java más bonita, y como soy una simple programadora, y no le hago al diseño, no he logrado hacerlo muy bien :( por lo que he recurrido al uso de Substance (es una librería) para hacer el look and feel de mi aplicación, y la verdad que he quedado bastante satisfecha con el resultado...

Paso a mostrarles la forma más sencilla de utilizar ésta librería.  De aquí en más ustedes pueden innovar cambiando botones, fondo, watermarks, etc.

En mi caso estoy usando Substance 5.3 y netbeans 7.0.1
Con googlear un poquito encontrarán Substance5.3.jar y seguramente otras versiones más nuevas, creo q van por el 7 y algo.






































Los resultados como pueden ver, son mejores que la simple IU q nos proporciona güindows.

Bueno, manos a la obra... lo primero que hay q hacer es descargar la librería.  Yo TODOS los jars que necesito los descargo de http://www.java2s.com/

Aquí, el enlace para descargar Substance 5.3.jar

Luego lo agregamos a las librerías de nuestro proyecto de la manera tradicional (clic derecho sobre libraries, add jar/folder y seleccionamos nuestro jar descargado).  Nos debe quedar así:



Para aplicarlo, es muy fácil, en el constructor de nuestro Frame, y ANTES de initComponents(), deben ir las siguientes líneas de código:

      JFrame.setDefaultLookAndFeelDecorated(true);
      SubstanceLookAndFeel.setSkin("org.jvnet.substance.skin.CremeCoffeeSkin");  //Acá yo usé el skin CremeCoffee, pero hay muchos, muchos más...

Pueden cambiar otras cositas de la IU como el aspecto de los botones por ejemplo, yo para hacerlo redondeado, usé lo siguiente... (ésto va después de initComponents() ya que sino no nos reconocerá el boton, nos dirá que no existe)

      this.boton.putClientProperty(SubstanceLookAndFeel.BUTTON_SHAPER_PROPERTY, new StandardButtonShaper());

Y mi IU de prueba, con el CremeCoffee skin y el botoncito redondeado, me quedó de la siguiente manera:

CremeCoffeeSkin y boton redondeado

le puse varios controles distintos, y un cuadro rojo para ver como se veían y la diferencia de colores...jejeje

Finalmente, para ver todos los skins disponibles, e ir probando, los listé de la siguiente manera (simplemente recorriendo el Map de skins):

Map<String, SkinInfo> allSkins = SubstanceLookAndFeel.getAllSkins();
        Iterator it = allSkins.entrySet().iterator();

        while (it.hasNext()) {
            Map.Entry e = (Map.Entry)it.next();
            System.out.println(""+e.getKey());
        }                        

Así, podremos ver los skins disponibles, y sólo cambiando la línea

SubstanceLookAndFeel.setSkin("org.jvnet.substance.skin.SaharaSkin")

aplicamos el que más nos guste.
Algunos ejemplos....
DustSkin

EmeraldDuskSkin

NebulaSkin

Eso es todo, espero les haya gustado, y despierten el bichito de las IU bonitas.
Saludos

Seguridad en Redes - Malware

Hay varios tipos de malware con los que podemos encontrarnos, los clasificamos teniendo en cuenta si necesitan o no un programa anfitrión:


®     Trampa: Es una entrada secreta a un programa que permite que alguien que es consciente de la trampa acceda sin pasar por los procedimientos de acceso de seguridad habituales.  Consiste en un código que reconoce secuencias especiales de entrada o que se activa cuando se ejecuta desde un identificador de usuario en particular o a partir de una secuencia improbable de acontecimientos.  Se vuelven amenazas cuando programadores sin escrúpulos las utilizan para obtener acceso no autorizado.
®     Bomba lógica: Es uno de los tipos más antiguos de amenaza, antecesor de virus y gusanos.  Es un código introducido en algún programa legítimo que está preparado para “explotar” cuando convergen ciertas condiciones, éstas pueden ser la presencia o ausencia de ciertos archivos, un día concreto a la semana o fecha, o un usuario concreto ejecutando la aplicación.  Una vez activada, la bomba puede alterar o borrar datos o archivos completos, causar la interrupción de la máquina, o provocar otros daños.
®   Caballo de Troya: Es un programa o procedimiento de comandos útil, o aparentemente útil, que contiene código oculto que al invocarse lleva a cabo funciones no deseadas o perjudiciales.  Se puede usar para llevar a cabo indirectamente funciones que un usuario no autorizado no podría realizar directamente.  Otra función común es la destrucción de datos; el programa parece estar realizando una función útil, pero también puede estar borrando los archivos del usuario sin ser percibido.
®     Zombi: Es un programa que, sin ser percibido, toma el control de otro computador conectado a internet y, luego lo utiliza para lanzar ataques que hacen difícil seguir la pista del creador del zombi.  Se usan en ataques de denegación de servicio, normalmente contra sitios web muy concretos.  Se instalan en cientos de computadores pertenecientes a terceras partes que no sospechan de nada, y luego se usan para inundar el sitio web elegido produciendo un elevado tráfico de internet.
®     Virus: Es un programa que puede infectar a otros modificándolos; esta modificación incluye una copia del programa del virus, que puede luego continuar infectando otros programas.  Contiene en su código de instrucciones la receta para hacer copias perfectas de sí mismo.  Alojado en un computador, toma temporalmente el control del sistema operativo del computador, luego, cuando éste entra en contacto con una parte de software no infectada, una nueva copia del virus pasa al nuevo programa.  Así la infección puede propagarse de computador en computador por medio de usuarios desprevenidos que intercambian información mediante pen drive o envían programas entre sí a través de la red.

Un virus puede hacer cualquier cosa que realicen otros programas.  La única diferencia es que se adjunta a otro programa y se ejecuta secretamente a la vez que lo hace dicho programa.  Una vez que el virus se ha ejecutado, puede llevar a cabo cualquier función, como borrar archivos y programas.
®  Gusano: Es un programa que no necesita de otro, ni de la intervención de la acción de un humano  para reproducirse y ejecutarse.  Busca activamente más máquinas que infectar y cada máquina que sea infectada sirve de lanzadera para automática para atacar a otras máquinas.  Una vez activo dentro del sistema, puede comportarse como un virus de computador o una bacteria, o podría implantar caballos de Troya o llevar a cabo cualquier número de acciones perjudiciales o destructivas.  Para replicarse a sí mismo, usa algún tipo de vehículo de la red como correo electrónico, capacidad de ejecución remota o capacidad de acceso remoto.
Fuente: Fundamentos de seguridad en redes.  Aplicaciones y estándares.  William Stallings