Buenos Aires: (011) 5254-0544

Cómo utilizar el API de ELSERVER.COM: PHP en acción

En un post anterior vimos los conceptos básicos sobre el API de ELSERVER.COM: como listar, crear, modificar y eliminar elementos a través de llamadas HTTP. Sin embargo, no lo aplicamos a ningún lenguaje de programación en particular.

Hoy vamos a avanzar en ese sentido: vamos a ver cómo integrar llamadas al API en nuestras aplicaciones PHP.

Utilizando cURL

Para hacer llamadas HTTP vamos a utilizar la librería cURL, disponible por defecto en toda nuestra plataforma. Si nunca lo utilizaron, pueden investigar más en la documentación oficial.

Como vamos a utilizar cURL muchas veces, nos conviene armar una función que podamos usar de esta forma:

curl($method, $url, $data);

Es bastante intuitivo para qué nos servirá cada argumento:

  • method indicará el método HTTP a utilizar: GET, POST, PUT o DELETE,
  • url será la URL del API con la que queremos contactar,
  • data será un array con los parámetros a enviar en la llamada.

Internamente, esta función se encargará de setear todas las opciones necesarias del objeto cURL, hacer la llamada y retornar el resultado convirtiendo en un array asociativo el JSON que devuelve el API.

El código de esta función podría ser así:

function curl ($method, $url, $data) {

    // Convertimos el array de parametros en un query string
    $data = http_build_query($data);

    // y lo agregamos a la URL en caso de un GET o DELETE
    if (($method === "GET") || ($method === "DELETE")) {
        $url .= '?' . $data;
    }

    // Definimos opciones comunes a todas las llamadas
    $options = array(
        CURLOPT_URL => $url,
        CURLOPT_CUSTOMREQUEST => $method,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false
    );

    // Si es necesario, agregamos los parametros al body de la llamada
    if ($data) {
        $options[CURLOPT_POSTFIELDS] = $data;
    }

    // Ejecutamos la llamada
    $call = curl_init();
    curl_setopt_array($call, $options);
    $response = curl_exec($call);
    curl_close($call);

    // Retornamos el resultado como array
    return json_decode($response, true);

}

Perfecto, ya tenemos nuestra función lista. Pueden incluirla en un archivo de helpers o en alguna clase de utilidades comunes, cambiarle el nombre o modificarla como gusten, siempre y cuando tengan acceso simple a ella.

Ahora si, vamos a utilizarla para conectarnos con el API de ELSERVER.

Validando nuestro usuario

Si leyeron el post anterior, deben recordar que para toda acción del API necesitamos un permiso, una llave única que identifique a nuestro usuario: el access_token.

Vamos a obtenerlo:

$login = curl(
    'GET',
    'http://cloudapi.elserver.com/sso/login/',
    array(
        'sso' => 'miusuario@ejemplo.com',
        'password' => 'miclave'
    )
);

Si ejecutamos ese script y hacemos un print_r de $login, podrán ver un resultado como el siguiente:

Array
(
    [access_token] => f049ef54faf3r8245de4469ebd55eb47
    [sso] => miusuario@ejemplo.com
)

¡Vamos bien! Ahora sólo debemos enviar el contenido de $login['access_token'] en todas las llamadas sucesivas.

Pedidos REST

Para seguir con nuestro ejemplo clásico, empecemos por listar las casillas de correo de nuestra cuenta. Pueden hacer la siguiente prueba:

$list = curl(
    'GET',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar'
    )
);

Cambiando el valor de account por la cuenta deseada, por supuesto.

Si todo salió bien, $list ahora contiene la respuesta que entregó el API, es decir, un array con el listado de cuentas de correo.

Ya se deben imaginar cómo funcionan los llamados de escritura:

Para agregar una casilla de correo:

$create = curl(
    'POST',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail',
        'password' => 'somepassword'
    )
);

… modificarla:

$update = curl(
    'PUT',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail',
        'info' => 'Betatester',
        'mailing' => 1
    )
);

… o eliminarla:

$delete = curl(
    'DELETE',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail'
    )
);

Recuerden que las funciones de escritura devuelven data: 1 en caso de ser exitosas. Por lo que si en el último ejemplo el usuario pudo ser borrado, al hacer un print_r de $delete veremos:

Array
(
    [data] => 1
)

Tareas avanzadas

Con esto resulta muy fácil automatizar tareas frecuentes de nuestra cuenta de hosting. Por ejemplo, podemos programar un script que active la opción de mailing para todos nuestros usuarios de correo:

// Obtenemos nuestro access token
$login = curl(
    'GET',
    'http://cloudapi.elserver.com/sso/login/',
    array(
        'sso' => 'miusuario@ejemplo.com',
        'password' => 'miclave'
    )
);

// Definimos nuestra cuenta y la URL del API
$account = 'micuenta.com.ar';
$url = 'http://cloudapi.elserver.com/email/';

// Obtenemos el listado de casillas de correo
$emails = curl(
    'GET',
    $url,
    array(
        'access_token' => $login['access_token'],
        'account' => $account
    )
);

// Recorremos el listado activando el mailing
foreach ($emails['data'] as $email) {
    $result = curl(
        'PUT',
        $url,
        array(
            'access_token' => $login['access_token'],
            'account' => $account,
            'user' => $email['user'],
            'mailing' => 1
        )
    );

    // Si hubo un error, lo logueamos
    if ($result['error']) {
        $errors[] = $email['user'];
    }
}

// Reportamos si hubo errores
if (!empty($errors)) {
    echo 'Errores al modificar los siguientes usuarios:';
    echo implode($errors);
}

// Si no, retornamos un mensaje feliz
echo 'Finalizado!';

Tengan en cuenta que, si bien nuestro API es muy rápido, cada llamada HTTP toma su tiempo: la ejecución de PHP puede cortarse si superamos el tiempo máximo para un proceso (60 segundos).

Este ejemplo es ilustrativo, si tienen decenas y decenas de casillas de correo conviene hacer el proceso por partes. Para eso en todos los listados pueden utilizar paginado, definiendo:

  • offset, la posición en la que queremos que comience nuestro listado
  • limit, la cantidad de registros a obtener

Por ejemplo, para obtener la primer página de un listado largo podemos definir offset en 0 y limit en 20. Para obtener la segunda definimos offset en 20, para la tercera en 40 y así sucesivamente.

En resumen

Nuestro nuevo API REST maneja todas sus funciones de una forma similar, por lo que pueden consultar en nuestra documentación el resto de los módulos y ponerlos en práctica.

Por ejemplo, pueden agregar autorespuestas para un listado de usuarios de email, crear usuarios FTP temporales, cambiar el horario de ejecución de un cron, descargar backups… todo desde sus propias aplicaciones, utilizando nuestro API.

Si tienen alguna consulta, no duden en escribirnos a desarrollo@elserver.com para que podamos brindarle toda la ayuda que necesiten.

Compartí este artículo

[IMPORTANTE]

Te informamos que entre la 1:00 am y 4:00 am (hora Argentina) del 14 de Mayo de 2013  estaremos interrumpiendo el servicio de correo entrante por espacio de 1 hora para realizar tareas de mantenimiento.

Por cualquier inconveniente, contactanos por chat o correo a soporte@elserver.com.

Gracias!

Compartí este artículo

Uno de los aspectos más potentes del nuevo panel de control es la posibilidad de ejecutar cualquier acción a través de nuestro API. Es una de las características fundamentales de nuestra nueva aplicación, al punto tal que la UI (es decir la interfaz del usuario) está desarrollada íntegramente en JavaScript y todo el procesamiento se realiza mediante llamadas al API. Esto quiere decir que cualquier usuario de la plataforma, o que simplemente tengan un usuario SSO, puede crear un Panel de Control con exactamente las mismas funcionalidades.

En este artículo vamos a tomar como ejemplo una acción cotidiana como dar de alta un usuario de mail y ver que es lo que pasa detrás de escena.

Alta de un usuario de mail desde el Panel de Control

Para crear un usuario de mail los pasos son los siguientes:

1- Ingresar al panel de control (http://panelbeta.elserver.com/) con tu SSO.

2- Seleccionar desde la izquierda la cuenta a la que le querés crear un nuevo usuario de mail.

3- Una vez desplegado el menu de la cuenta, hacer click en Emails.

4- En esta sección hacer click en el botón de “Agregar email”.

5- Completar los datos de Usuario y Contraseña del nuevo mail.

6- Hacer click en el botón de “Guardar Cambios”.

Alta de un usuario de mail mediante el API

Para replicar esta misma funcionalidad pero directamente desde el API del Panel de Control, debemos:

1- Validarnos: Para ejecutar cualquier comando en el API debemos tener un Access Token. Para obtenerlo, debemos ejecutar un login en el módulo SSO, que se traduce a lo siguiente:

http://cloudapi.elserver.com/sso/login/?sso=miusuariosso@dominio.com&password=miclavedesso

El resultado será un json con 2 datos: access_token y sso. Almacenemos el primero porque lo necesitaremos para todas las llamadas que hagamos al API.

2- Ejecutar el alta: A diferencia de la UI, el API recibe directamente la cuenta sobre la que vamos a trabajar como un parámetro, no hace falta ejecutar ninguna instrucción de selección de cuenta. El namespace del módulo es /account/email/ y siguiendo los lineamientos de cualquier API REST debemos hacer un POST a esa dirección para agregar un elemento nuevo.

Para cualquier acción que no sea GET, podemos usar cualquier aplicación online o para facilitar las cosas el API soporta que le sobreescriban el método con un argumento del estilo method=POST. Esto último es lo que usaremos en esta oportunidad.

Ya tenemos nuestro access_token, y el namespace y método a donde debemos enviar nuestra información, solo resta elegir nuestro usuario y clave: cosmefulanito@midominio.com y clave eseperrotienelacolapeluda en nuestra cuenta midominio.com. La llamada completa quedaría así:

http://cloudapi.elserver.com/account/email/?account=midominio.com&user=cosmefulanito@midominio.com&password=eseperrotienelacolapeluda&method=POST&access_token=[ACCESS_TOKEN]

Si todo salió correctamente, deberíamos obtener un json con una respuestas {data: 1}. y listo, acabamos de emular la funcionalidad del Panel de Control pero directamente en el API.

Espero que les sirva como introducción al uso de nuestro API. En los próximos días profundizaremos más en los módulos que lo componen y en su utilización.

Compartí este artículo

Cómo utilizar el API de ELSERVER: primeros pasos

Si las palabras JSON RESTFul API no te suenan familiares, esta guía es para vos: hoy vamos a ver cómo utilizar el API de ELSERVER desde cero. ¡Comencemos!

¿Qué es un API?

Sin entrar en palabras complicadas, un API sirve para leer o modificar información de una web desde un sitio externo. Esto permite que cualquier desarrollador pueda integrar funcionalidad de cierto servicio web en sus propias aplicaciones.

Muchas plataformas ofrecen un API público para sus usuarios. Por ejemplo, con el API de Facebook podemos mostrar amigos, fotos y Likes; con el API de Twitter podemos publicar y leer tweets; con el de Flickr podemos obtener o subir fotos… y mucho más, en muchos más servicios.

Lo mejor es que casi la totalidad de los API disponibles son independientes del lenguaje de programación que usemos: desde Javascript, PHP, Phyton o cualquier otro lenguaje podremos utilizar las mismas funciones y obtener resultados idénticos.

Entonces, ¿qué permite hacer el API de ELSERVER? Literalmente todo: todas las tareas que podés realizar desde el Panel de Control, podés hacerlas a través de nuestro nuevo API.

Manos a la obra

Nuestro API es REST, es decir, utiliza los siguientes métodos HTTP:

  • GET para listar elementos
  • POST para crear un nuevo elemento
  • PUT para modificar un elemento
  • DELETE para eliminar un elemento

Las llamadas deben hacerse a una URL con la siguiente estructura:

http://cloudapi.elserver.com/

Donde method define el elemento en cuestión: email, site, admin, etc. En nuestra web se encuentra la lista completa de los módulos disponibles hasta el momento.

Cada llamada tiene una serie de parámetros a enviar. Dos de ellos son necesarios para casi todas las funciones:

  • account, el nombre de la cuenta donde se encuentra el elemento a leer o modificar
  • access_token, un código que identifica a nuestro usuario para que el API sepa que tenemos permiso para acceder a la cuenta deseada

Para obtener un access_token debemos validarnos, de la siguiente forma:

GET http://api.elserver.com/sso/login/
    ?sso=micuenta@ejemplo.com
    &password=miclave

… siendo los parámetros sso y password los mismos que utilizás para ingresar al Panel de Control. La respuesta a esta llamada será un JSON con este formato:

{
    "access_token": "0ed896b0dc2wb7cwwb748drbt7a9f8d6",
    "sso": "micuenta@ejemplo.com"
}

Esa maraña de letras y números es tu access_token. Es muy importante que no lo compartas, ya que es un código que te identifica como usuario: es como si fuera tu SSO y password, dos en uno.

Debemos enviar este parámetro en todas las llamadas porque es una forma simple de decirle al API quienes somos, que sepa que tenemos permiso para hacer lo que le pedimos.

Por ejemplo, listar las casillas de correo de una cuenta:

GET http://api.elserver.com/email/
    ?account=micuenta
    &access_token=0ed896b0dc2wb7cwwb748drbt7a9f8d6

Si enviamos los datos correctamente, recibiremos una respuesta como esta:

{
    "paging": {
        "records": 2
    },
    "data": [
        {
            "info": "Juan",
            "msgsize": 0,
            "hardquota": 0,
            "mailing": 0,
            "isalias": 0,
            "antispam": 1,
            "autoreply": 0,
            "user": "juan",
            "softquota": 0
        },
        {
            "info": "Esteban",
            "msgsize": 0,
            "hardquota": 0,
            "mailing": 0,
            "isalias": 0,
            "antispam": 0,
            "autoreply": 0,
            "user": "esteban",
            "softquota": 0
        }
    ]
}

Todos los listados tienen un formato idéntico: en paging obtendremos la cantidad total de registros, en data un array de los mismos con sus detalles particulares.

Por ejemplo, mirando el resultado que obtuvimos, podemos saber qué casillas de nuestra cuenta tienen activado el filtro antispam chequeando si ese parámetro está en 0 o 1.

Ya hemos visto en acción las operaciones de lectura, con las cuales obtenemos datos. Pasemos ahora a las de escritura: ¿cómo hacemos para modificar ese dato? ¿Y cómo creamos un usuario de correo nuevo? Bien, sigamos adelante.

Enviando datos al API

Para estas llamadas utilizaremos la misma URL pero con distintos métodos: POST, PUT y DELETE. Como siempre, son obligatorios los parámetros account y access_token, más los que requiera cada pedido.

Agregar

Por ejemplo, para crear una casilla de correo hacemos un POST agregando:

  • user, el nombre de la casilla a crear
  • password, la clave de la casilla a crear

Si todo salió bien, el API crea la casilla en el instante y ya podemos utilizarla, por ejemplo, ingresando a ella a través del nuevo Webmail.

Modificar

Para modificar una casilla de correo, enviamos un PUT con:

  • user, el nombre de la casilla a modificar

… y la clave de todas las propiedades que querramos modificar, con su nuevo valor.

Eliminar

Es muy simple, lo logramos con un DELETE especificando:

  • user, el nombre de la casilla a borrar

Como ven, el campo user funciona como el ID único en esta serie de elementos. En esto, nuestro API se diferencia de algunos otros que utilizan IDs numéricos incrementales que forman parte de la URL en los pedidos PUT y DELETE. Tengan en cuenta este detalle al utilizar los métodos sync de librerías Javascript como Backbone o Spine.

Mensajes de éxito o error

Si la operación fue exitosa, en la respuesta veremos este flag:

{
    "data": 1
}

En caso de error recibiremos un aviso como este:

{
    "error": {
        "type": "oError",
        "message": "Selected user does not exist"
    }
}

Emulando métodos HTTP

Algunos navegadores no permiten los métodos PUT o DELETE, por eso los formularios web siempre utilizan sólamente GET o POST. Para eludir esta limitación, podemos emular estos métodos especificando el parámetro opcional method. El API tratará a esa llamada como si de un método nativo se tratara:

GET http://api.elserver.com/email/
    ?account=micuenta
    &access_token=0ed896b0dc2wb7cwwb748drbt7a9f8d6
    &user=esteban
    &info=Test
    &method=PUT

Es decir que podemos ejecutar operaciones de cualquier tipo directamente desde la URL de nuestro navegador (un pedido GET) especificando el método deseado (POST, PUT o DELETE).

En resumen

Hoy vimos cómo hacer llamadas al API en general, a través de HTTP, pero sin aplicarlo puntualmente a ningún lenguaje de programación. En el próximo post vamos a ver cómo poner todo esto en acción desde PHP, creando una librería simple para manejar validaciones y pedidos.

Por ejemplo, podemos programar un script que cree usuarios FTP descartables para que nuestros clientes puedan enviarnos archivos pesados, comparar dos archivos de nuestros backups o procesar las estadísticas de las visitas a nuestra web para hacer nuestros propios gráficos. ¡Las posibilidades son enormes!

Mientras tanto, pueden probar el API online en nuestro playground. En los comentarios vamos a responder cualquier duda o consulta.

¡Hasta el próximo post!

Compartí este artículo

Te presentamos nuestro nuevo Panel de Control

Hace mucho tiempo en ELSERVER.COM venimos trabajando para brindarte una mejor experiencia en la aplicación por la que controlás toda la funcionalidad de tus cuentas: el Panel de Control. Por eso desarrollamos una nueva versión, más simple y mucho, mucho más rápida.

Esta nueva versión del Panel de Control desde hoy se encuentra en Beta pública, es decir: ¡podés probarla ahora mismo!

Durante todo el mes vamos a publicar notas y tutoriales sobre el nuevo Panel, para que lo vayas conociendo. Mientras tanto, tené en cuenta que:

  • Esta es una versión preeliminar disponible sólo para clientes directos de ELSERVER.COM, seguimos trabajando para mejorarlo hasta llegar a la versión definitiva que reemplazará al Grid Panel actual.
  • Todo lo que hagas en el Panel Beta es real, es decir: si modificás algo desde este nuevo panel lo verás reflejado en el viejo y viceversa.
  • Nos tomaremos todo Mayo para testear la aplicación con ustedes, los heavy users. Para la primera semana de Junio, una vez que todos nos hayamos familiarizado con la herramienta, haremos el relanzamiento oficial del nuevo Panel con nombre y URL nuevas :)

Ahora sí, repasemos las novedades.

Lo nuevo en el Panel Beta

Todas tus cuentas en un sólo lugar

Navegar por tus cuentas en el Panel actual es complicado, lo sabemos. Entrar a tu panel SSO, de ahí al panel de una cuenta, de ahí al panel de un cliente…

Por eso el Panel Beta presenta una nueva interfaz unificada en donde podrás encontrar todas tus cuentas en el sidebar, y cambiar de una a otra con un click. Al desplegar cada una, verás sus secciones y podrás llegar siempre rápido a lo que buscás.

Si sos revendedor, podés agregar tantos clientes como quieras a tu sidebar para acceder a ellos rápidamente.

¿Rápido? Mucho, mucho más rápido

Queremos que tardes el menor tiempo posible en acceder y modificar todos los elementos de tu cuenta. Por eso en esta versión pusimos el foco en la velocidad: el Panel Beta es una single page app. ¡Nunca se refresca la página completa! Sólo se actualizan los elementos necesarios.

Es mucho más fácil navegar entre los distintos elementos de un listado, al hacer click en uno verás el detalle en el panel derecho, listo para editar.

Al modificar o eliminar elementos, el pedido se ejecuta de fondo, así que podés seguir trabajando mientras la tarea se completa. Aún así, ¡sólo tarda un instante! El cartel de Cargando a veces no termina de aparecer y ya le decimos que tiene que ocultarse. Sí, nos odia.

Backups fáciles de navegar y restaurar

Una de las grandes novedades es la posibilidad de explorar los backups de tu web tal como recorrés las carpetas de tu disco.

En la sección backups encontrarás los respaldos completos de tu sitio, uno por hora en los últimos diez días. Es decir: 24 copias de 10 días, 240 copias completas de todo tu contenido web.

Al entrar a una de ellas, verás las carpetas y archivos de tu sitio tal como estaban en ese momento. Podés ingresar en las carpetas con un doble click, y restaurar o descargar cualquiera de los archivos.

Estadísticas renovadas

Renovamos por completo las estadísticas, para que puedas ver la información que buscás de una forma más simple y organizada. Podés ver datos completos sobre tus visitas, transferencia y hits; y conocer a través de qué fuentes llegan tus visitas, qué sitios te enlazaron y qué frases buscan para llegar a tu web.

Más fácil de adaptar a tus colores e imagen de marca

Si sos revendedor, el nuevo Panel Beta te permite crear skins con tus colores y logo en un instante. No tenés que preocuparte por subir archivos CSS, editar código que no comprendés o depender de un diseñador: el Panel Beta lo hace por vos.

English? Yes, sir

Porque pensamos en tus ventas y sabemos lo importante que es expandirse a todos los mercados, el nuevo Panel está disponible en múltiples idiomas. Las versiones en Español, Inglés e Italiano están completas, y hay muchas más traducciones por venir.

Impecable detrás de escena

El Panel Beta integra nuestro nuevo API REST, que permite llamadas Ajax cross-domain y alta de tareas asincrónicas. Este nuevo API está abierto a todos los desarrolladores que quieran integrar las funcionalidades del Panel Beta en sus propias aplicaciones.

Probá el Panel Beta en panelbeta.elserver.com

Primeros pasos en el Panel Beta

¿Dónde encuentro cada sección?

Las mudanzas suelen ser un dolor de cabeza. Pero queremos que esta sea la excepción. Por eso, hemos reordenado todas las secciones del Grid Panel en un sólo listado de secciones. Todo lo relativo a tu cuenta lo encontrarás al hacer click en su nombre. Se desplegará un menú con los siguientes ítems:

  • Inicio: un resumen del estado de tu cuenta.
  • Administradores: todos los usuarios SSO que tienen acceso a la cuenta.
  • Estadísticas: gráficos y reportes sobre tus visitas.
  • Sitios: todos los sitios de tu cuenta, lo que en el Grid Panel encontrabas como dominios.
  • Emails: todas las cuentas de correo, más la lista blanca y negra de remitentes.
  • Respaldos: los backups de tu cuenta, mostrados como carpetas navegables.
  • FTP – SSH: los usuarios FTP – SSH de tu cuenta, que antes encontrabas en el menú administración.
  • Bases de datos: tus bases MySQL con sus respectivos usuarios.
  • Servidores Virtuales: si tenés contratado un SPV de correo, aparecerá aquí.
  • Tareas programadas: los Cron que hayas programado.
  • Carpetas protegidas: las carpetas con acceso restringido de tu cuenta, con sus respectivos usuarios.
  • Importación de datos: las tareas de importación FTP
  • DNS: tus registros DNS, lo que antes figuraba como Gestión de Zonas.
  • Facturas: las facturas emitidas de tu cuenta, tus datos de facturación y servicios contratados.

Si sos reseller, adicionalmente tendrás disponible las siguientes secciones:

  • Clientes: el listado de cuentas de tus clientes, lo que antes figuraba como subcuentas.
  • Planes: los planes de hosting que vende tu cuenta.
  • Temas: la nueva sección de skins simples del Panel de Control.

Lo básico: crear, modificar y eliminar elementos

Como verás, al hacer click en una de esas secciones – por ejemplo, email – se accede a un listado: cada registro – cada email – está representado por un ícono, con el nombre que lo identifica debajo. Al hacer click sobre él, verás el detalle listo para editar a la derecha de tu pantalla: luego de cambiar los datos que quieras actualizar – por ejemplo, la contraseña de esa cuenta de email – hacé click en el botón Guardar cambios. ¡Listo!

Para eliminar un elemento, seleccionalo con un click y presioná el botón Eliminar.

En cada listado encontrarás la opción para crear un elemento – Crear email, por ejemplo – arriba del listado. Al hacer click en él, verás un formulario muy similar al anterior, pero obviamente, vacío: completalo con los datos que desees y hacé click en Guardar cambios.

¡Sí, sabemos que darte este paso a paso puede ser muy obvio! Ojalá así sea, significaría que hemos hecho la interfaz del nuevo Panel más intuitiva y fácil de usar.

Y ahora, tenés el control

Pero ahora, te cedemos la palabra: te invitamos a probar la Beta y contarnos qué te parece: esperamos todas tus dudas, críticas, pedidos y comentarios. Nos encantaría escuchar tu opinión.

En caso de que tengas algún inconveniente al usarlo, podés escribirnos a soporte@elserver.com. Y, como siempre, a través de Facebook y Twitter.

¡Hasta la próxima!

Compartí este artículo

Inspirate: se viene un nuevo TEDxUTN

tedxutn2

Este sábado 4 de Mayo a partir de las 10 horas estaremos disfrutando un nuevo TEDxUTN, el evento TED que se desarrolla en la Universidad Tecnológica Nacional.

Las conferencias TED son promovidas por una organización sin fines de lucro dedicada a la propagación de “Ideas que vale la pena difundir”. Su objetivo es diseminar ideas que inspiren a cambiar actitudes, vidas y, como resultado de eso, el mundo.
Con el mismo espíritu, TEDxUTN nació en julio de 2011 y es una conferencia licenciada por TED organizada independientemente por Autoridades, Alumnos y Graduados de la Facultad Regional Buenos Aires de la Universidad Tecnológica Nacional.

El formato es innovador: charlas de un máximo de 18 minutos por orador donde expone una idea que vale la pena difundir. Desde las 10 hasta las 18 hs podés ver online a los 16 oradores que estarán compartiendo ideas, experiencias y aprendizajes. Entre ellos está: Axel Kuschevatzky (periodista especializado en cine, guionista y productor cinematográfico argentino), Facundo Garretón (emprendedor, fundador de InvertirOnline.com, miembro de Endeavor), Alejandro Repetto (científico, ingeniero en informática con experiencias en  Singularity University, Silicon Valley, NASA), Graciela Chichilnisky (autora del mercado de carbono del Protocolo de Kyoto), entre otros geniales oradores.

ELSERVER.COM estará como todos los años acompañando este excelente evento que aporta conocimiento y dispara nuevas fronteras. No te lo pierdas, seguilo online en la web de TEDxUTN.

Compartí este artículo

Actualizando y asegurando Joomla!

Muchos de nuestros clientes eligen el popular (y gratuito) CMS Joomla! para sus proyectos. Si bien en los últimos años ha perdido terreno frente a otros competidores tales como WordPress, es una opción vigente por su capacidad para añadir fácilmente características extra al sitio. Esto se realiza a través de extensiones tales como componentes y plugins (alrededor de 8600 extensiones oficiales), que proveen diversas funcionalidades tales como encuestas, sistema de suscripción y envío de newsletters, carrito de compras, foros, galerías, etc. En este enlace podés encontrar un listado de las extensiones más populares. Pero bueno, no estamos acá para hablar de plugins. De hecho, el abuso de este tipo de extensiones genera una notoria pérdida de performance del sitio de acuerdo a que cada componente que agregamos al sitio tiene su propia lógica, consultas a la base de datos, etc.

Este artículo pretende ser una guía para actualizar Joomla! a su versión más reciente e implementar algunas medidas de seguridad dado que, de acuerdo a nuestra estadística no oficial (fuente:soporte@elserver.com), Joomla! es también uno de los CMS más vulnerados.

Al momento de escribir este post, la última versión estable de Joomla! es la 2.5. Si bien se ha avanzado en la rama 3.0, se recomienda su instalación solo para sitios nuevos dado que no es compatible con muchas extensiones y plugins existentes.

Joomla! 1.5.x ha dejado de ser soportada en Abril del 2012. Esto significa que la comunidad que trabaja en el desarrollo y mantenimiento de este paquete no se encuentra activamente corrigiendo bugs y agujeros de seguridad para esta rama. Actualizar a una versión más reciente, es fundamental para mantener la seguridad en el sitio.

Migrando a Joomla! 2.5 desde 1.5.x (dificultad: intermedia)

Como siempre, antes de realizar cualquier upgrade de versión realizamos manualmente un backup del directorio FTP y base de datos. Si bien ELSERVER.COM mantiene 10 copias de tu sitio siempre, lo recomendable es tener una copia del momento exacto anterior a realizar un cambio tan drástico. Podés usar el componente Akeeba Backup a tal fin.

El paso dos es asegurarnos de haber actualizado a la última versión disponible de la rama 1.5 (1.5.26). Para actualizar a Joomla! 1.5.26, por favor siga las instrucciones de este enlace http://joomlacode.org/gf/project/spanish/frs/?action=FrsReleaseView&release_id=16897

Paso 3: Preparar la migración. Vamos a usar un componente que se encarga de la mayoría de las tareas. Este componente es jUpgrade. Procedemos a instalar el componente y luego a reflexionar acerca de las siguientes preguntas:

  • ¿Está actualizada mi versión de Joomla! 1.5? (asumiendo que seguiste los pasos, sí)
  • ¿Modificaste algún archivo o tabla mysql del core de Joomla!? (en caso afirmativo, estos cambios se pierden post migración)
  • ¿Son las extensiones de tu sitio compatibles con Joomla! 2.5? (podés usar el buscador avanzado del directorio oficial de extensiones Joomla! para comprobarlo)
  • ¿Existe una versión Joomla! 2.5 de tu template actual?

Una vez resueltas todas estas dudas e instalado el componente, estamos listos para la operatoria. Recordamos que es fundamental contar con un backup de acuerdo a lo mencionado anteriormente (nunca se sabe si algo puede salir mal). Vamos al paso a paso (imágenes al final del artículo):

  1. Descargar e instalar la extensión jUpgrade.
  2. Chequear que la extensión “Mootools Upgrade” esté activa. Para esto ingresar a Extensions > Plugin Manager.
  3. Configurar el componente a través de la opción “Parameters” del mismo. Ver captura de pantalla para el seteo de opciones recomendadas.
  4. Una vez configurados los parámetros, click en “Start Upgrade”.

Finalizada la migración, el componente nos mostrará sendos accesos al front y back-end de la nueva instalación. Ingresamos a ambos para chequear que todo haya quedado en orden, una vez hecho esto tenemos que mover los nuevos archivos para dar por finalizada la migración.

Teniendo en cuenta (una vez más por las dudas) que disponés de un backup de directorio y base de datos:

  1. Eliminamos del directorio de instalación original todos los directorios y carpetas, a excepción de la carpeta ‘jUpgrade’ en donde se encuentra el directorio de la nueva instalación.
  2. Usando un cliente FTP, movemos todos los archivos de la carpeta ‘jUpgrade’ directamente en el directorio principal. Por ejemplo:
    Origen ‘/nombrecuenta/htdocs/jUpgrade/’
    Destino ‘/nombrecuenta/htdocs/jUpgrade/’
  3. Solo nos resta actualizar la ruta en el configuration.php de la nueva instalación para comenzar a usar la versión de Joomla! 2.5.

Desde ya, por cualquier inconveniente en este proceso contactanos por cualquiera de los canales habituales: chat, mail o a alguno de los teléfonos de tu ciudad.

Hemos dado un gran paso para asegurar y optimizar nuestra instalación Joomla!. En el próximo post vamos a revisar algunas medidas de seguridad para evitar hackeos e infecciones.

Hasta la próxima!

JUpgrade_Page_3_-_Parameters_screen

JUpgrade_Page_1_-_jUpgrade_logo

JUpgrade_Page_4_-_Step_9_panel

Compartí este artículo

¡Mirá los videos de Mejorando.la Conferencia!

El pasado 22 de marzo pasamos una excelente tarde en compañía de 6 emprendedores y empresarios que están transformando la manera de pensar y hacer tecnología en Argentina.

Más de 160 personas dijeron presente en el auditorio de la Universidad de Palermo y permanecimos a sala llena hasta las 20,30 hs cuando termino el evento. ¡Gracias a todos por el compromiso!

Entre las historias y los proyectos que se expusieron tuvimos a Christian Van Der Henst (@cvander) contándonos cómo las estadísticas se apoderaron de su vida y la batería de apps que usa para medir TODO. Después se subió al escenario Joel Chornik (@joelchornik) a contar cómo fue que a un chico de 15 años se le ocurrió crear una empresa que hoy es líder en Cloud Hosting (ELSERVER.COM) y hacerla crecer ininterrumpidamente. Para cerrar el bloque Santiago Siri (@santisiri) nos contó su ultimo gran proyecto: El Partido de la Red y cómo planea revolucionar los sistemas de gobierno tradicionales con una real democracia tecnológica.

Luego del break Johnny Halife (@johnnyhalife) y Patricio Jutard (@patojutard) nos presentaron Mural.ly una app muy interesante para trabajo creativo y en equipo que está creciendo vertiginosamente. Bryan Tafel (@bryantafel) nos sacudió con su historia emprendedora fuera y dentro de una corporación como RIM y para cerrar, el gran John Freddy Vega (@freddier) nos alucinó con el backstage de Platzi, la plataforma de e-learning que con CVander crearon para Mejorando.la Cursos.

Y como no queremos que te pierdas nada, te vamos a ir compartiendo en este post las charlas, estate atento! :)

Arrancamos con dos: con ustedes Christian Van Der Henst y Joel Chornik en acción.

Sigue Bryan Tafel y su apasionante historia:

Freddy Vega te llena de información súper valiosa mientras te cuenta con qué pases mágicos crearon – con CVander – Platzi:

Seguimos con la magia, esta vez qué es y cómo se hizo Mural.ly

¿Te gustaron las charlas? ¡Compartilas para que más amigos se inspiren! Flecha

Compartí este artículo

Hands on: SVN

En este artículo vamos a ver como utilizar el control de versiones SVN para mejorar el proceso de desarrollo de aplicaciones.

Clientes de SVN

Dependiendo del entorno que usemos o las preferencias personales que tengamos, podemos usar un cliente con una interfaz visual o trabajar directamente desde la consola ejecutando los comandos. En lo que respecta al primer caso, en Windows existe un cliente muy popular, el Tortoise SVN, que debido a la impracticidad de la consola del sistema operativo de nuestro amigo Bill, se convirtió en la mejor opción para trabajar con SVN en Windows. Para el resto, recomiendo la consola y es en ella que nos vamos a centrar en este post.

Comenzando a trabajar con un nuevo repositorio local

Aclaración: La creación de un repositorio en el servidor no está cubierta por este artículo, el enfoque es exclusivamente desde el cliente.

Bien, ya decidimos usar SVN, ¡bien por nosotros! Para comenzar a trabajar con un repositorio, lo primero que debemos hacer es un checkout para hacer la descarga inicial de contenidos. Si no hay contenidos, no importa, esto nos permitirá dejar configurado el repositorio en la carpeta desde donde lo vamos a desarrollar. Si no es un repositorio público, le vamos a tener que especificar el usuario y la contraseña para validarnos. Lo que nos quedaría algo como lo siguiente:

user@server:/path/to/our/local/repository$ svn checkout http://svn.myrepo.com/svn/trunk/ . –username myUser –password myPassword

Bien, ya tenemos el repositorio listo para ser editado, extendido y publicado.

Utilización diaria de SVN

Día normal en la oficina, llegamos y lo primero que hacemos para seguir desarrollando el proyecto del repositorio (perdón, lo segundo, lo primero debería ser una taza de café) es hacer un Update para descargar las actualizaciones que se hayan publicado (pensando en proyectos que involucren varios desarrolladores).

user@server:/path/to/our/local/repository$ svn update

Ahora si estamos listos para seguir con el proyecto. Si necesitamos hacer alguna gestión con los archivos del repositorio, es imprescindible hacerlo a través de los comandos de svn, ya sea agregar, eliminar, mover o renombrar archivos o directorios. De otra forma, los archivos y directorios físicos se verán afectados pero no la base de seguimiento que tiene el SVN y nos volveremos locos tratando de resolver esos conflictos.

Una vez que estamos satisfechos con el trabajo realizado y queremos publicarlo, debemos hacer un commit acompañado de un comentario sobre lo que trató la modificación. Una buena práctica es no dejar este comentario vacío y completarlo con al menos un texto descriptivo sobre lo que acabamos de hacer.

user@server:/path/to/our/local/repository$ svn commit -m ‘Solucionado bug al tratar de agregar una tarea’

Glosario de comandos

Add: Agrega un archivo al repositorio.

Checkout: Comando que permite hacer la descarga inicial de un repositorio.

Cleanup: Limpia el repositorio de archivos que puedan haber sido borrados del repositorio pero todavía existir físicamente, archivos que permanezcan lockeados, etc.

Commit: Permite publicar los cambios locales en el repositorio para que esté a disposición de todos los clientes cuando hagan un Update.

Copy: Copia un archivo existente en el repositorio.

Delete: Elimina un archivo del repositorio.

Info: Devuelve la información del repositorio con el que estamos trabajando.

Mkdir: Crea un nuevo directorio en el repositorio.

Move: Mueve o renombra un archivo del repositorio.

Status: Devuelve el estado actual del repositorio.

Update: Permite actualizar el repositorio local con los cambios subidos al día de la fecha (o también se puede especificar número de la revisión específica que se quiere).

Resolved: Remueve el estado de “Conflict” del repositorio local, si es que realmente se han resuelto los conflictos que se detectaron. Recordemos que no podemos hacer un Commit si tenemos conflictos en nuestra versión local.

Espero que este post sirva como empujón final para los que estaban indecisos sobre si usar estas tecnologías o como referencia para aquellos que están comenzando a usarlo.

Hay acciones más avanzadas para ignorar archivos (carpetas de cache, archivos temporales, archivos de configuración, etc), manejo de hooks, importación inicial de contenidos, branches, resolución avanzada de conflictos, entre otras cosas, que serán cubiertos en un posterior artículo para usuarios más avanzados.

Próximamente haremos un Hands On de GIT para los que prefieran utilizar ese sistema de control de versiones.

Saludos!

Compartí este artículo

¿Qué es el protocolo SSL?

Seguridad con SSLLa seguridad es, cada vez más, una condición para desarrollar tu negocio en internet.

Carritos de compra, sitios de registraciones y hasta las aplicaciones para Facebook, la red social más importante del mundo, hoy exigen tener un certificado Secure Sockets Layer (SSL).

¿Pero qué es finalmente el SSL y por qué es tan importante?

SSL es un protocolo criptográfico que hace que los intercambios en Internet requieran una autenticación, lo cual otorga seguridad y privacidad a las comunicaciones.

Su función es cumplir tres simples pasos:

  1. Negociar entre las partes el algoritmo que usará para comunicarse, y poner a disposición el certificado
  2. Identificar mediante certificados digitales al portador
  3. Cifrar el tráfico de la información involucrada en la transacción

Si el certificado es aprobado comienza el intercambio de la información privada y crítica requerida en la transacción pero de manera segura, completamente encriptada. Que la información está encriptada significa que se utilizó un algoritmo de cifrado con una clave para transformar un mensaje en una combinación incomprensible para cualquiera que no tenga la claves secreta de descifrado del algoritmo.

Nuestros certificados SSL utilizan uno de los algortimos de cifrado más habituales, 128 bits: si quisieran vulnerarlo significaría un trabajo de un billón de años para el atacante que quisiera entrar a una sesión protegida.

Contratá ahora tu certificado SSL y empezá a trabajar en un entorno seguro y escalable, cumpliendo con las nuevas normas de Facebook. Vos ocupate de la creatividad, nosotros la hacemos correr.

¿Querés certificados más potentes? Contratalo acá

Compartí este artículo

Ingreso Clientes

Datos incorrectos. Por favor revisa el e-mail y la contraseña.

Ingresaste correctamente.

Olvidé mi contraseña

Cerrar

Recuperar contraseña

Te llegará un correo con la información acerca de como proceder.

Volver

Cerrar