Publi

  • Limitar el uso de CPU de nuestras aplicaciones o procesos en GNU/Linux (señales, nice, cpulimit/cputool, cgroups, systemd slices)

    Algo que nos puede traer de cabeza como administradores de sistemas y, a veces como usuarios es el hecho de que un proceso se coma, devore y trate sin piedad la CPU de nuestro sistema. Ya no solo el hecho de que un programa deje inservible el ordenador, aunque a día de hoy con tantos núcleos de procesador, casi siempre tendremos algo de CPU para enviar una señal de parada a un proceso.… Leer artículo completo

  • Contenedores docker de aplicaciones de escritorio [con ejemplos listos para usar]

    En los últimos años, han surgido varias tecnologías para compartimentar aplicaciones. Desde ejecutar una aplicación desde una jaula, hasta virtualizar un sistema operativo completo dentro de nuestro sistema. Algo que se utiliza mucho en servidores. Actualmente hay una tecnología en auge, y es Docker. Docker nos permite encerrar una aplicación, junto con las bibliotecas que necesita para funcionar y ejecutarla en un entorno aislado, de forma que la aplicación compartimentada no pueda ver nada del exterior.… Leer artículo completo

  • Creando webs dinámicas con PHP. Un recorrido de más de 10 años hasta hoy

    phpVShhvm

    PHP es uno de los lenguajes de programación en el lado del servidor más popular y uno de los pilares en los que se apoyan cientos de millones de sitios web actualmente (aunque su uso no es exclusivo para web y puede darnos mucho juego).

    Ya que PHP debe ser versátil y fácil de utilizar, se trata de un lenguaje interpretado o de script. Es decir, el código que programamos se escribe en un archivo de texto plano en un formato inteligible para los desarrolladores (aunque lento para los ordenadores).… Leer artículo completo

  • Pasa tu web a HTTPS utilizando Let’s encrypt manual o automáticamente, tú decides

    photo-1461685265823-f8d5d0b08b9b

    La web no fue diseñada pensando en la seguridad, es decir, la comunicación se realiza de forma plana y cualquiera que pueda pinchar la línea puede ver los mensajes que pasan, el origen y el destino, y no hace falta ser un crack, sólo instalar un programa como Wireshark. Afortunadamente ahora tenemos HTTPS, es el mismo protocolo web, pero utilizando una capa de seguridad que cifra la comunicación entre las dos partes (nuestro navegador y el servidor) y hace que sea muy complicado que alguien que pueda interceptar la comunicación sepa qué estamos hablando.… Leer artículo completo

  • Y tú, ¿cuándo fue la última vez que hiciste una copia de seguridad de tus servidores?

    seguridad

    En este post me quiero dirigir a todos aquellos que administráis un servidor, una web o un blog. Son los grandes olvidados, las copias de seguridad. Esas que nadie tiene en cuenta, esas que todos ignoran, las que siempre se dejan para luego y las que nunca es un buen día para hacerlas. «Da mucha pereza», «cuando suba estos cambios me pongo»… luego pasa un tiempo y ni te acuerdas hasta que un lluvioso y fatídico día de otoño, de esos que es mejor no levantarse de la cama, te falla la conexión a Internet, tienes 100 cosas que hacer, y parece que estás mangando un resfriado.… Leer artículo completo

  • Cómo empotrar datos dentro de un ejecutable hecho en C

    photo-1453179592584-e2587867cfff

    En nuestras andanzas como programadores, seguro que nos hemos encontrado alguna vez en esta situación. Tenemos un programa que vamos a distribuir, pero que tiene ciertos archivos asociados (imágenes, texto, scripts, etc) que deben ir junto con el programa.
    En un primer momento podemos distribuir los archivos junto con el programa, y es una buena solución hasta que a alguien le da por cambiar esos archivos y consiguen que nuestro programa haga cosas diferentes a aquellas para las que ha sido pensado originalmente.… Leer artículo completo

  • Cómo crear un plugin para WordPress. Making of de SimTerm: insertar recursos JS/CSS y shortcodes (tercera parte)

    simterm
    Estoy haciendo un pequeño tutorial de cómo me lo he montado para crear un plugin de WordPress: simterm. El plugin inserta un shortcode que nos permite simular una ventana de terminal (sea el SO que sea) y hacer como que se escriben cosas y el sistema nos da la respuesta. Es perfecto para nuestros tutoriales y si seguís este blog, seguro que lo habéis visto miles de veces.

    Esta es la tercera parte, enfocada a recursos y shortcodes.… Leer artículo completo

  • Creando un modelo sencillo en Magento (paso a paso y con ejemplos)

    Anteriormente vimos cómo crear un plugin para Magento y cómo crear un controlador para Magento. Ahora le toca el turno al modelo. Intentaré poner con todo detalle todo el proceso.
    Por eso, vamos a editar app/code/local/NuestraEmpresa/nuestroPlugin/etc/config.xml, en nuestro ejemplo app/code/local/Poesia/HolaMundo/etc/config.xml para indicar que vamos a crear modelos y las conexiones de base de datos que se deben utilizar para el acceso. He pegado el archivo entero, pero indico con un comentario las novedades:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    Opcionalmente podemos poner un comentario contando qué hace nuestro módulo, nuestra web,
    información sobre la licencia, etc
    -->
    <config>
        <modules>
            <Poesia_HolaMundo> <!-- namespace_modulo -->

                <!-- Esta es la versión de nuestro módulo -->
                <version>0.0.1</version>

            </Poesia_HolaMundo>
        </modules>

        <frontend>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <routers>
        <holaMundo>
          <use>standard</use>
          <args>
            <module>Poesia_HolaMundo</module>
            <frontName>hm</frontName>
          </args>
        </holaMundo>
          </routers>
          <!-- Lo que necesitamos para utilizar los controladores -->
          <!-- Lo que necesitamos para el layout y las plantillas -->
          <layout>
        <updates>
          <holamundo>
            <file>poesia.xml</file>
          </holamundo>
        </updates>
          </layout>
          <!-- Lo que necesitamos para el layout y las plantillas -->
        </frontend>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
        <global>
          <models>
        <holamundo>
            <class>Poesia_Holamundo_Model</class>
            <resourceModel>holamundo_resource</resourceModel>
        </holamundo>
        <holamundo_resource>
            <class>Poesia_HolaMundo_Model_Resource</class>
            <entities>
            <pventamod>
                <table>poesia_postvtable</table>
            </pventamod>
            </entities>
        </holamundo_resource>
          </models>
          <resources>
            <holamundo_setup>
              <setup>
                <module>Poesia_HolaMundo</module>
              </setup>
              <connection>
                <use>core_setup</use>
              </connection>
            </holamundo_setup>
            <holamundo_write>
              <connection>
                <use>core_write</use>
              </connection>
            </holamundo_write>
            <holamundo_read>
              <connection>
                <use>core_read</use>
              </connection>
            </holamundo_read>
          </resources>

        </global>
        <!-- Necesario para informar a Magento sobre nuestro modelo -->
    </config>

    Ahora creamos el modelo (le intento dar a todo nombres diferentes para que veamos qué es cada cosa).… Leer artículo completo

  • Utilizar la salida de error en PHP

    Casi siempre, PHP es un lenguaje utilizado para la web y no para programas de consola o escritorio; aunque tenemos la posibilidad de utilizarlo para esos propósitos.

    Y es que si estamos familiarizados con PHP y tenemos muchas bibliotecas de clases/funciones en ese lenguaje, a menudo querremos utilizarlo para otros propósitos.

    Como sabemos, cuando queremos sacar texto por pantalla desde un programa tenemos la salida estándar y la salida de error (stdout, stderr); desde PHP podemos utilizar de forma fácil la salida estándar con las funciones habituales (echo, printf, print, print_r, etc).… Leer artículo completo