miércoles, 13 de octubre de 2010

FontsViewer

0

FontsViewer es un pequeño programa para visualizar y comparar las diferentes tipografías que se encuentran instaladas en tu ordenador.

Entres su capacidades se encuentra la posibilidad de cambiar el color de fondo y del texto de la fuente que estamos viendo, también se puede editar el texto y cambiar su tamaño, por ultimo la lista de fuentes la puedes ver de dos maneras diferentes, una lista estándar con todos lo nombres de fuentes y otra con el tipo de fuente ya aplicada a su nombre.

Screenshot



Descargar

DescargarSource Code

Licencia

FontsViewer se se encuentra vajo la licencia nueva BSD, por lo que si quieres o necesitas modificar algo de este programa para que quede a tu gusto, o hacer uno aun mejor, que nada te lo impida.

Comparte o puntua esta publicación ▼

domingo, 10 de octubre de 2010

HexDump

0

HexDump es un visor hexadecimal simple que se utiliza principalmente a través de la linea de comandos. Para usarlo simplemente ejecútalo con el nombre de un archivo como primer argumento:

HexDump.exe file.ext

Es muy útil en este caso redireccionar la salida a un archivo de texto para que quede guardado y pueda verse con mas calma:

HexDump.exe file.ext > file_hex.txt

Screenshot

DescargarSource Code

Código fuente

#include <stdio.h>

int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        printf("Usage:  HexDump file  \n");
        return 1;
    }

    FILE *file = fopen(argv[1],"rb");
    if (!file)
    {
        printf("El fichero no existe o no puede ser abierto.\n");
        return 2;
    }

    char d[] = "                \0";
    int bytes,index = 0;

    while (bytes=fread(d, 1, 16, file))
    {
        printf("%08X%c",index+=16,179);

        for (int i=0; i<bytes; i++)
        {
            printf(" %02X",(unsigned char)(d[i]));
            if ((i+1)%4 == 0) printf(" ");
            if (d[i] == 127 || d[i]< -127 || (d[i]>=0 && d[i]<=31)) d[i] = '.';
        }

        if (bytes < 16)
        {
            for (int i=bytes; i<16; i++)
            {
                printf("   ");
                if ((i+1)%4 == 0) printf(" ");
            }
            d[bytes] = '\0';
        }

        printf("%c%s\n",179,d);
    }
    fclose(file);
    return 0;
}

Comparte o puntua esta publicación ▼

sábado, 9 de octubre de 2010

PasswdGen

0

PasswdGen es un programa o utilidad CLI que genera contraseñas completamente aleatorias del tamaño deseado y con los caracteres que prefieras.

Modo de uso: PasswdGen -s size -c chars [-h]
Con -s se indica el tamaño de la contraseña y con -c la lista con todos los caracteres posibles. Con -h mostramos la ayuda.

Ejemplo: PasswdGen -s 10 -c 0123456789ABCDEF Generaría por ejemplo 93E41C6E20

Código fuente:

// PasswdGen.cpp
#include <iostream>
using namespace std;

void Usage()
{
    cout << endl << "PasswdGen 0.1  -  davidxl.blogspot.com" << endl << endl;
    cout << "Usage: PasswdGen -s <size> -c <chars> -h" << endl;
    cout << "  -h : Show Help (This)" << endl;
    cout << "  -s : Number of characters in password (default 8)" << endl;
    cout << "  -c : characters of password (default a..zA..Z..0..9)" << endl << endl;
    cout << "Example: PasswdGen -s 4 -c 0123456789"<< endl;
}

int main(int argc, char* argv[])
{
    if (argc < 2)
    {
        Usage();
        return 0;
    }

    unsigned int size = 8,i,clen;
    char * c = 0;

    for (i=1; i<argc ; i++)
    {
        if (strlen(argv[i]) > 1 && argv[i][0] == '-')
        {
            switch (argv[i][1])
            {
            case 's':
                size = atoi(argv[i+1]);
                break;
            case 'c':
                c = argv[i+1];
                break;
            case 'h':
                Usage();
                return 0;
            default:
                cout << "Comand '-" << argv[i][1] << "' invalid.";
                //return 1;
            }
        }
    }

    if (c == 0) c = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz";
    clen = strlen(c);

    char * passwd = new char [size+1];
    for (i=0; i<size; i++)
        passwd[i] = c[rand()%clen];
    passwd[i] = '\0';

    cout << passwd;
}

Comparte o puntua esta publicación ▼

Generar números aleatorios en C

0

En algunas ocasiones necesitamos una función que nos genere números aleatorios, C dispone de rand(), que al ser llamada retorna un numero comprendido entre 0 y 32767.

Esta función no resuelve nuestro problema si lo que queremos es un numero aleatorio cullo valor se encuentre entre, por ejemplo, 20 y 70, por lo que a continuación muestro el código de la función rand() sobrecargada para que se pueda establecer el mínimo y máximo, frand() que genera numeros en coma flotante entre 0 y 1 y un ejemplo para poner a prueba estas funciones.

#include<iostream>
using namespace std;

// retorna un numero del intervalo [min,max]
int rand(int min, int max)
{
    return rand() % (max-min+1) + min;
}

// retorna un numero del intervalo [0,1]
float frand()
{
    return float(rand())/32767.0;
}

// retorna un numero del intervalo [min,max]
int myrand(int min, int max)
{
    return rand()*(max-min+1)/RAND_MAX + min;
}

int main ()
{
    cout << "--------  Random Funtion Test  --------" << endl;
    cout << "Minimo y Maximo: ";
    int min, max, iter;
    cin >> min >> max;
    cout << endl << "Numero de iteraciones: ";
    cin >> iter;
    cout << endl;

    unsigned int range = max - min + 1;
    unsigned int * f = new unsigned int [range];
    memset (f,0,range*4);

    int rmax = min, rmin = max;
    for (int i=0; i<iter; i++)
    {
        int x = myrand(min,max);
        f[x-min]++;
        if (x<rmin) rmin = x;
        else if (x>rmax) rmax = x;
    }

    cout << " -> Min: " << rmin << " ,  Max: " << rmax << endl;
    cout << "TABLA DE FRECUENCIAS" << endl;
    for (int i=0; i<range; i++)
        cout << i+min << '\t' << f[i] << endl;
    cout << endl;

    return 0;
}

Comparte o puntua esta publicación ▼

domingo, 3 de octubre de 2010

ColorPicker sin imágenes, solo js+css3

0

A modo de experimento y base para un próximo proyecto hice un ColorPiker que no usa ninguna imagen, ya que las he sustituido por css gradients, por lo que solo es compatible de momento con Chrome y Firefox.


DescargarSource Code

Comparte o puntua esta publicación ▼