Publi

  • 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
  • Jugando con ImageMagick (II): Color y rotación

    Sigo con la serie de posts sobre ImageMagick, anteriormente estuvimos viendo cómo podemos redimensionar, añadir y quitar bordes a la imagen, cambiar y ecualizar el espacio de color, añadir efectos y capturar de la pantalla. Ahora veremos más cosas relacionadas con el color:

    Tocando los canales de color

    hamburgueson_33Imagina que queremos aplicar un efecto sólo en un canal, por ejemplo, un efecto radial-blur sólo en el canal rojo:

    $ convert -channel red -radial-blur 30 hamburgueson.jpg hamburgueson_rojo.jpg

    Donde 30 es el radio del emborronamiento (blur) radial.… Leer artículo completo

  • REISUB, ¿qué es? ¿para qué sirve? ¿cómo hacerlo de forma remota o en script? y más llamadas a Alt+Sysrq

    yJl7OB3sSpOdEIpHhZhd_DSC_1929_1_rEn muchos sitios, podemos ver esta palabra clave, para muchos RESUIB para otros RESIUB y normalmente REISUB. Y sirve para reiniciar el sistema Linux de forma segura después de que el sistema se congele; de la siguiente forma: Alt+Imprimir Pantalla + R,E,I,S,U,B (no hace falta soltar las teclas Alt + Imprimir pantalla). La tecla Imprimir pantalla podemos encontrarla como SysReq (System Request) o PetSis (Petición al sistema). Cada letra representa una acción del kernel:

    • R (Devuelve el control al teclado unRaw)
    • E (Termina todos los procesos tErm)
    • I (Mata los procesos que queden vivos full kIll)
    • S (Sincroniza los discos Sync)
    • U (Monta todos los sistemas de archivos como sólo lectura Umount)
    • B (Reinicia el ordenador Boot)

    Es muy recomendable dejar un poco de tiempo entre pulsación y pulsación, uno o dos segundos, ya que cada acción no es inmediata, puede que haya muchos procesos, muchos dispositivos, que haya información que volcar en ellos, etc; y todo no sea inmediato.… Leer artículo completo

  • Jugando con ImageMagick (I): Dimensiones, captura, color y efectos

    A menudo es necesario hacer una manipulación básica de imágenes y da mucha pereza ejecutar GIMP u otro editor de imágenes para una tontería; e incluso a veces necesitamos modificar gran cantidad de imágenes y necesitamos automatizar el proceso:

    Ejecución

    Aunque ImageMagick, que seguro que lo encontráis en los repositorios de vuestra distribución favorita, da mucho más de sí, aquí veremos ejemplos con convert, import y mogrify

    Redimensionado de imágenes

    hamburgueson_2$ convert -resize [dimensión/porcentaje] origen destino

    Por ejemplo para redimensionar con un ancho de 320 pixels:

    $ convert -resize 320 hamburgueson.jpg hamburgueson_mini.jpg

    De esta forma, si especificamos la altura, se ignorará, ya que convert intentará mantener el aspecto de la imagen.… Leer artículo completo

  • Creando macros de escritorio I: xmacroplay

    Voy a hablar de dos programas para crear macros, aunque hay más, claro que sí. Los dos programas están basados en la grabación de acciones del servidor X y la simulación de movimientos del ratón, clicks y acciones de teclado.

    En principio xmacroplay; lo podemos ejecutar así:

    $ xmacrorec2 mi_macro

    donde mi_macro es el archivo donde vamos a grabar; este archivo, si vemos su contenido tendrá los comandos en un lenguaje muy sencillo e inteligible, lo que nos permite crear macros directamente programándolos, no grabándolos.… Leer artículo completo

  • Colores para stdin y stderr

    Esto fue parte de un experimento que hice, se trata de conseguir que tras la ejecución de un comando la salida estándar del mismo se representara en color verde en mi terminal y la salida de error en color rojo (por supuesto podemos dejar sólo la salida de error en rojo), pero el hecho es demostrar que estos dos tipos de salida existen y hay forma de distinguirlas:

    $ comando 2(while read line; do echo -e «\e[01;31m$line\e[0m»; done) 1(while read line; do echo -e «\e[01;32m$line\e[0m»; done)

    En negrita está la redirección para la salida de error, y en cursiva la redirección para la salida estándar.… Leer artículo completo

  • Login a Facebook y acceso a aplicación automatizado

    A medida que va creciendo Facebook, los desarrolladores van siendo más imaginativos a la hora de crear aplicaciones que trabajen sobre esta red. Actualmente existen clientes para Facebook que no necesitan que estemos dentro de la página, y lo que presento a continuación es un pequeño ejemplo de todo ello.

    Este script es parte investigación / parte navegación y lectura de foros en los que no he encontrado la respuesta exacta a mis necesidades.… Leer artículo completo

  • Intercalar 2 ó más cadenas en PHP

    A la hora de crear un hash para una contraseña, es conveniente no incluir sólo la contraseña, sino concatenar una cadena o un número más; lo mismo cuando generamos claves para que interaccionen aplicaciones en varios servidores; aunque hay veces en que, dados los pocos datos de que disponemos a la hora de generar la clave, no tenemos mucho donde elegir a la hora de crear el hash.

    Por ese motivo se me ocurrió esta función en PHP, lo que hace es intercalar cadenas, es decir, tenemos dos cadenas, y queremos generar una cadena a partir de las dos anteriores, podemos coger un carácter de una, otro de otra, y así sucesivamente (como si estuviéramos barajando) hasta formar una cadena cuya longitud es la suma de las dos.… Leer artículo completo

  • Cuando Thunderbird 3 no puede abrir enlaces…

    Sobre todo si hacemos un upgrade desde la versión 2, en muchos sistemas, algo no termina de cuajar y puede causar que cuando abrimos un enlace con nuestro gestor de correo, éste no se abra en nuestro navegador preferido.
    Podemos hacer dos cosas:
    protohand

    Definir la aplicación con la que abrir los enlaces

    Esta es la opción clásica usada en Thunderbird 2 y no recuerdo bien si también en la primera versión.… Leer artículo completo

  • Terminal transparente para visualizar logs

    screenshot-01-08-2010-140805Es muy de 2002/2003, aunque todavía a muchos les gusta tener un pequeño terminal transparente en el fondo para ejecutar comandos o mostrar logs u otra información importante.

    Aquí comentaré algunas soluciones que he encontrado y cómo obtenerlas.

    xrootconsole

    Es muy ligero y rápido. Y vale para mostrar logs en xroot; el fondo es supuestamente transparente, aunque si cambiamos el fondo veremos que no, ya que en la ventana de xrootconsole se mantendrá el fondo anterior.… Leer artículo completo