Publi

  • Leer ficheros de configuración INI desde nuestros scripts en BASH

    Archivos de configuración en BASH
    Una de las tareas que debemos hacer como programadores es la de facilitar al usuario la configuración de nuestros programas. Haciéndolos más flexibles y adaptables a las necesidades de cada individuo.
    Y una forma muy fácil de definir configuración para nuestros programas es en ficheros con formato INI. Este formato se introdujo en los años 90 en versiones de Windows como la 3.1. En aquella época, teníamos en varios archivos con extensión INI la configuración de nuestro sistema Windows y teníamos que modificar los archivos y reiniciar Windows para que los cambios tuvieran efecto.… Leer artículo completo

  • Bailando con bits III. Mostrando el valor binario de un número [bash, C, C++, PHP, Java, Python, Ruby]

    photo-1425036458755-dc303a604201_red

    De todos es sabido que un ordenador, internamente trabaja con ceros y unos, simplemente eso, a partir de ese simple valor, verdadero o falso, abierto o cerrado, existe o no existe es capaz de formar sonidos, imágenes, textos y cualquier cosa que podamos imaginarnos.

    Aunque no vamos a hacer algo tan complicado, muchas veces puede que tengamos un valor entre manos y queramos saber qué bits hay a uno y qué bits hay a cero aunque sólo sea para verificar que una operación se está realizando como debe o porque estamos aprendiendo a utilizar este sistema de numeración y queremos verificar que todo nos sale bien.… Leer artículo completo

  • [Bash] Llamar a una variable cuyo nombre lo contiene otra variable

    numbers

    Imaginemos el caso en que tenemos tres variables (ROJO=5 ; VERDE=6 ; AZUL=7), y una función a la que le pasaremos el nombre del color y nos devolverá su valor (así visto parece tontería, pero luego podremos normalizarlo, aclararlo, oscurecerlo, etc).

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ROJO=5
    VERDE=6
    AZUL=7

    function get_color()
    {
       echo ${!1}
    }

    get_color ROJO

    Efectivamente si en Bash escribimos ${!VARIABLE} no nos devuelve el nombre que contiene la variable, sino que devuelve el valor de la variable cuyo nombre es $VARIABLE.… Leer artículo completo

  • Ordenación en PHP. Ordenar provincias, pero Madrid y Barcelona ponerlas primero.

    En el desarrollo del registro de una página web para España, es normal que la mayoría de las personas vengan de Madrid, Barcelona, Valencia o Sevilla (las provincias podemos cambiarlas).

    El algoritmo para ello, en PHP es el siguiente:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?php
    $provincias = array ("Almería",   "Cádiz",       "Córdoba",  "Granada",     "Huelva",     "Jaén",           "Málaga",
    "Huesca",    "Teruel",      "Zaragoza", "Asturias",    "Cantabria",  "Sevilla",        "Zamora",
    "Ávila",     "Burgos",      "León",     "Palencia",    "Salamanca",  "Segovia",        "Soria",
    "Albacete",  "Ciudad Real", "Cuenca",   "Guadalajara", "Toledo",
    "Barcelona", "Girona",      "Lleida",   "Tarragona",   "Alicante",   "Castellón",      "Valencia",
    "Badajoz",   "Cáceres",     "A Coruña", "Lugo",        "Ourense",    "Pontevedra",     "La Rioja",
    "Murcia",    "Navarra",     "Álava",    "Guipúzcoa",   "Vizcaya",    "Islas Baleares", "Las Palmas",
    "Santa Cruz de Tenerife",   "Ceuta",    "Melilla",     "Valladolid", "Madrid");

    function ordena_provincias ($a, $b)
    {
    static $primeras = array ("Madrid", "Barcelona", "Valencia", "Sevilla");

    $iaa = in_array($a, $primeras);
    $iab = in_array($b, $primeras);

    /* Si las dos provincias están en el array $primeras miramos en qué posición están */
    if ( ($iaa) &amp;&amp; ($iab) )
    {
    $iaa = array_search($a, $primeras);
    $iab = array_search($b, $primeras);

    return ($iaa<$iab)?
    Leer artículo completo