Publi

  • Creando un cliente para un servicio de red con pocas líneas en C++

    neon_open_splitshire_r

    En la era actual, es muy importante que múltiples aplicaciones accedan a servicios online para obtener la información que desean (o incluso enviarla). Es decir, las aplicaciones han perdido su simplicidad de ejecutarse en una sola máquina, y han pasado a ejecutarse en múltiples máquinas conectadas a través de Internet.

    Y, aunque muchos piensan que C++ no es un lenguaje muy indicado para ello, y que no se pueden hacer estas cosas.… Leer artículo completo

  • Certificados de seguridad para nuestra web. Opciones y recomendaciones.

    photo-1431804876478-99c5c9387ccf_r

    Es muy importante proporcionar una navegación segura a nuestros visitantes. De hecho cada día está más de moda hacerlo; más y más webs proporcionan una versión segura, y otras imponen esa seguridad. Por ejemplo, si tenemos una tienda online, es importante que los datos sensibles, como el pago, o los datos de nuestros clientes se transmitan por canales seguros. Incluso si tenemos un sistema de usuarios, es recomendable que la contraseña de ese usuario viaje por un canal seguro.… Leer artículo completo

  • Servidor web seguro (HTTPS) en C usando openSSL (pruebas)

    Hace unos días veíamos un ejemplo de un cliente web SSL con ayuda de openSSL. Ahora vamos a hacer un servidor al que se pueda conectar. Se trata sólo de una prueba de concepto, nada que podamos utilizar en el mundo real, pero está bien para ver cómo funciona la biblioteca.

    Creando un certificado auto-firmado

    Lo primero que vamos a hacer es crear una llave y un certificado para utilizarlos.… Leer artículo completo

  • Conexión segura a un servidor web (HTTPS) en C usando openSSL

    Bueno, el código no tiene mucha más explicación. El objetivo es poder conectar a un servidor web a través de un protocolo seguro y recibir datos, pero también que podamos ver si hay algún problema con el certificado, verificar el algoritmo de cifrado y los datos del certificado, verificar los certificados intermedios, etc.

    Si ignoramos SSL, lo que tenemos que hacer es conectar con un servidor a través de un puerto determinado (como estamos en web, sería el puerto 80, por defecto), y mandarle una serie de datos:

    GET / HTTP/1.1[CRLF]
    Host: openssl.org[CRLF]
    User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0[CRLF]
    [CRLF]

    Por ejemplo.… 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

  • Redirigir una web a otra URL dependiendo de la IP que conecte [Apache]

    La necesidad surge en un primer momento cuando, desde diferentes lugares se está desarrollando un sitio web. En ocasiones disponemos de un test.minuevositioweb.com (por ejemplo), pero hay veces que la migración puede resultar difícil, o lenta, dependiendo de nuestras posibilidades; y queremos tener el sitio operativo en la dirección web definitiva tanto para nosotros como para nuestros clientes (que a veces quieren ver cómo va el tema).

    Para esto, podemos optar por varias soluciones, por ejemplo modificando la programación del sitio web para detectar la dirección IP del usuario y, si esta no está permitida nos redirigir la conexión a otro lugar.… Leer artículo completo

  • Conocer la velocidad de descarga de nuestra conexión desde terminal

    A la hora de hacer un test de velocidad, muchas veces recurrimos a páginas que ofrecen aplicaciones Flash para hacer el test de velocidad, muchas veces Flash nos puede resultar incómodo, otras veces, estamos en un ordenador tan antiguo que no tira bien de Flash.

    Estos tests, suelen descargar un fichero relativamente grande, y dividen tamaño del archivo descargado por el tiempo empleado en su descarga, con lo que nos devuelven los Mb/s a lo que hemos descargado dicho archivo; suelen medir la velocidad de un conjunto muy complejo de elementos que están funcionando a la vez (por mencionar algunos de los más importantes):

    • El servidor que nos manda la información: Si el servidor está saturado, tal vez no nos mande la información al máximo de su velocidad
    • La conexión del servidor: Si la velocidad de subida del servidor es más pequeña que la velocidad de bajada del ordenador a analizar (por ejemplo si hacemos que nuestro ordenador envíe el test a casa de un amigo, el test no saldrá bien), si el proveedor de servicios ha penalizado la transferencia del servidor (a lo mejor por consumo excesivo de ancho de banda), o si el servidor tiene muchas peticiones simultáneas, tiene que repartir su ancho de banda entre todos.
    Leer artículo completo
  • Accediendo a bases de datos MySQL desde C++

    photo-1423592707957-3b212afa6733_r

    Muchos estamos acostumbrados a utilizar bases de datos en PHP pero cuando se trata de un programa de escritorio almacenamos los cambios en archivos sin contemplar esta posibilidad.

    Usar una base de datos puede ser un gran aliado a la hora de hacer aplicaciones que almacenen gran cantidad de información o vayamos a acceder desde varios puntos a dicha información (programas multipuesto, por ejemplo).

    También es de gran utilidad si construimos un software que haga más ligeras ciertas tareas dentro de un servidor web (necesitamos la posibilidad de ejecutar programas sobre el servidor y tal vez de compilarlos allí, pero es una opción bastante buena, en ocasiones un script puede ejecutarse de forma demasiado lenta.… Leer artículo completo

  • Navegando a través de un tunel SSH

    blogtunel

    En ocasiones, si queremos navegar de una forma algo más anónima y privada, en el lugar que nos encontramos no tenemos acceso a determinados servicios, o simplemente queremos usar una conexión diferente a la red, podemos intentar esto.
    Podemos navegar desde cualquier ordenador que disponga de un servidor SSH, por ejemplo un servidor que tengamos contratado (Dreamhost ofrece además de hosting SSH. Podéis usar el código DFIFTYHOST para tener casi un 50% de descuento el primer año).… Leer artículo completo

  • Guía de supervivencia para disfrutar de Linux Mint Debian Edition XFCE (III : ssh, nfs, y algunas utilidades para consola)

    Cosas que no vienen instaladas de serie y deberían, herramientas para redes y administración remota que nos permitirán, sobre todo jugar y aprender. Quiero que esta sea una guía completa para personas que se inician en el mundo Linux por lo que no profundizaré mucho en algunos aspectos y en ocasiones, como esta, serán cosas muy básicas.

    Servidor SSH

    Cuando tienes en casa varios ordenadores, en ocasiones tenemos la necesidad de acceder a uno de los otros ordenadores y ejecutar algo allí, ya sea porque tengamos archivos en ese ordenador que no tengamos en el que tenemos delante, porque vamos a realizar algo pesado y la otra máquina es más larga, o bien porque no tenemos acceso físico a dicha máquina.… Leer artículo completo