| Subcribe via RSS

Ofertas en Caricaturas Personalizadas

Octubre 21st, 2009 | No Comments » | Posted in mis-proyectos

Por un tiempo limitado vamos a ofrecer importantes descuentos en Caricaturas Personalizadas.

CaricaturasOnline.com es un servicio de caricaturas para particulares. Hacemos caricaturas totalmente personalizadas o eligiendo alguno de nuestros modelos.

Tags: ,

Nuevos lanzamientos

Octubre 21st, 2009 | No Comments » | Posted in mis-proyectos

El área abaconegocios.com de Urlan Heat lanza dos nuevos proyectos que llevaban un tiempo gestándose:

* Alquiler de sillas en Bilbao – Alquiler de sillas de oficina para reuniones de empresa, eventos y reuniones familiares.

* AlquilerVaporetas.com – En colaboración con una empresa de limpieza de la zona hemos puesto en marcha el servicio de alquiler de maquinaria de limpieza (hemos empezado por vaporetas) en Bilbao.

Programa de afiliados en BuscoProfe.com

Octubre 19th, 2009 | No Comments » | Posted in mis-proyectos

BuscoProfe.com es una web para ayudar a estudiantes con sus trabajos de clase. Damos servicio en asignaturas de programación (C, C++, Pascal, Java, PHP, Python, etc…).

Acabamos de lanzar un programa de afiliados en el que ofrecemos un 5% de todo lo que se facture a los visitantes que nos lleguen.

Si tienes una web cuyos visitantes son estudiantes (de secundaria, universitarios, formación profesional, etc…) te interesará nuestro programa de afiliados. Entra aquí para ver toda la información.

Tags: ,

Procesos en C: Ejemplo de un sencillo cronómetro con SIGALRM

Octubre 19th, 2009 | No Comments » | Posted in C/C++, programacion

Continuando con el artículo de la semana pasada sobre procesos en C hoy os dejo aquí un sencillo ejemplo de un cronómetro:

// Para las funciones pause y alarm:
#include <unistd.h>
// Para las constantes SIGALRM y similares
#include <signal.h>
 
#include <stdio.h>
 
// Esta es la función que se va a ejecutar cada vez que se reciba la
// señal SIGALRM
void contar_segundos() {
	// Usamos static para que se conserve el valor de "segundos"
	// entre cada llamada a la función
	static int segundos=0;
 
	segundos++;
	printf("Han pasado %d segundos.\n", segundos);
}
 
int main() {
	// Asociamos la señal SIGALRM a la función contar_segundos
	signal(SIGALRM, contar_segundos);
 
	// Ponemos en marcha un bucle
	while(1) {
		// Establecemos una alarma para dentro de un segundo
		alarm(1);
		// Pausamos la ejecución del programa para que 
		// se quede esperando a recibir una señal.
		pause();
	}
}

¿Necesitas ayuda con algún trabajo de clase? Entra en BuscoProfe.com

Tags: , , ,

Curso de PHP+MySQL en Bilbao

Octubre 17th, 2009 | No Comments » | Posted in php

Estamos cerrando ya un grupo para empezar en breve otra edición del curso de programación en PHP+MySQL en Bilbao.

Más información sobre el contenido del curso aquí:

Curso de programación PHP+MySQL en Bilbao

Tags: , ,

Cambiar el tamaño de un iframe desde el iframe

Octubre 15th, 2009 | No Comments » | Posted in javascript

En ocasiones, cuando estamos usando JavaScript e iframes, nos encontramos con que hemos añadido algún elemento al iframe y no encaja en el espacio asignado originalmente. Por ejemplo, si tenemos un iframe:

<iframe src="loquesea.html" id="cosas"></iframe>

Y desde el fichero loquesea.html queremos cambiar su altura seguramente pensaremos en hacer:

document.getElementById('cosas').style.cols = '150px';

Pero cmo el iframe es parte del documento “padre” no podemos acceder a él así. En su lugar podemos usar:

parent.document.getElementById('cosas').style.cols = '150px';
Tags: ,

Servicio de copias de seguridad para webs y tiendas

En Urlan Heat hemos lanzado oficialmente un servicio que ya venimos ofreciendo desde hace un tiempo a varios clientes: un servicio de backup de webs y tiendas online.

El servicio que ofrecemos es completo: nosotros nos encargamos de realizar una copia completa de la web (tanto de ficheros como de bases de datos). En caso de existir algún problema la podemos restaurar rápidamente, también nos encargamos nosotros de la restauración de la tienda si es necesario.

Dependiendo de las veces que se actualice la web los backups pueden hacerse diariamente, semanalmente o mensualmente.

Esta es una idea que nos solicitaron hace algún tiempo varios clientes que estaban preocupados por la posibilidad de perder todo el trabajo de semanas, meses o incluso años. Muchas compañías ofrecen el servicio automático de backup pero en ocasiones es engorroso o difícil de usar y por eso suelen pedirnos ayuda.

Visitar la información del servicio de backup y restauración de webs y tiendas online.

Tags: , , ,

Procesos en C: Señales (SIGINT)

Octubre 13th, 2009 | No Comments » | Posted in C/C++, programacion

Desde hace un tiempo tengo la idea de escribir sobre el tema de procesos y señales en C.

Las señales se usan para la comunicación entre procesos y manipularlos. Un ejemplo muy conocido de señal es la señal SIGINT, que se envía cuando el usuario pulsa CTRL+C durante la ejecución de un programa. Cuando el programa que estamos ejecutando recibe esta señal finalizará su ejecución.

En el siguiente ejemplo vamos a ver cómo podemos hacer para que el programa realice alguna acción especial cuando el usuario pulse CTRL+C. La acción a ejecutar va a ser mostrar el mensaje: “¿Por qué me interrumpes?”:

// Para las funciones pause y alarm:
#include <unistd.h>
// Para las constantes SIGALRM y similares
#include <signal.h>
 
#include <stdio.h>
 
// Esta función es la que vamos a usar como controlador de la señal SIGINT
void despedida() {
	printf("------------------------\n");
	printf("¿Por qué me interrumpes?\n");
	printf("------------------------\n");
	raise(SIGTERM);
}
 
int main() {
 
	// Asociamos la señal SIGINT con la funcion "senal"
	signal(SIGINT, despedida);
 
	// Comenzamos un bucle que hará que el programa muestre sin
	// parar el mensaje "Nada nuevo por aquí"
	while(1) {
		printf("Nada nuevo por aquí.\n");
	}
}

En este programa, cuando el usuario pulse CTRL+C, en lugar de cerrarse directamente, se ejecutará la función que hemos asociado con esta señal (la funcion despedida).

La función despedida muestra el mensaje “¿Por qué me interrumpes?” y genera la señal SIGTERM (”raise” envía una señal al propio proceso). Si no hiciéramos esto el proceso no se detendría nunca (hasta que lo “matemos” con kill). Si te aburres haz la prueba con esta funcion:

void despedida() {
	printf("------------------------\n");
	printf("¿Por qué me interrumpes?\n");
	printf("------------------------\n");
}

Otra posibilidad es usar la función signal de nuevo para indicar al proceso que use la acción por defecto de SIGINT (SIG_DFL – Signal Default):

void despedida() {
	printf("------------------------\n");
	printf("¿Por qué me interrumpes?\n");
	printf("------------------------\n");
	signal(SIGINT, SIG_DFL); // Indicamos al programa que use la acción por defecto
	raise(SIGINT);
}

¿Pero por qué no podemos simplemente llamar a raise(SIGINT);?

Se podría pensar que bastaría con llamar a raise(SIGINT):

void despedida() {
	printf("------------------------\n");
	printf("¿Por qué me interrumpes?\n");
	printf("------------------------\n");
	raise(SIGINT);
}

El problema es que la señal SIGINT va a ser procesada por la función “despedida”. De esta forma, cuando pulsemos CTRL+C, se llamará a la función despedida. La función despedida genera de nuevo la señal SIGINT, que va a ser procesada de nuevo por ella misma. El resultado es que cuando pulsamos CTRL+c el proceso comenzará a ejecutar una y otra vez la función despedida mostrando el mensaje “¿Por qué me interrumpes?” sin parar.

¿Por qué? Cada vez que se pulse CTRL+C se ejecuta la función “despedida” en lugar de ejecutarse la acción por defecto (cerrar el programa).


¿Necesitas ayuda con algún trabajo de clase? Entra en BuscoProfe.com

Tags: , , ,

Alquiler de portátiles en Bilbao y Bizkaia

Octubre 12th, 2009 | No Comments » | Posted in Servicios a empresas, mis-proyectos

Este mes andamos muy activos en la empresa y lanzamos otro nuevo servicio de alquiler de portátiles en Bilbao y alrededores. Como el alquiler de proyectores, es un servicio que veníamos prestando desde hace un tiempo pero ahora lo hemos hecho de manera oficial.

Hemos abierto una nueva sección en la web de AbacoProyectores con información sobre el alquiler de portátiles. Y las tarifas, como siempre, muy competitivas.

Tags: , ,

Automatizar la conexión a sFTP

Septiembre 25th, 2009 | 2 Comments | Posted in Bash, linux, privacidad-y-seguridad

En este artículo os voy a contar cómo descargar ficheros mediante sFTP (FTP encriptado) de manera automatizada; es decir, sin tener que andar ejecutando el comando ni tener que meter la clave a mano cada vez.

El script es bien sencillito:

#!/bin/bash
 
# Aquí ponemos los datos de conexión
USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22
 
lftp -p${PUERTO} -u ${USUARIO},${CLAVE} sftp://${HOST} << CMD
get copia_seguridad.bz2 copia_seguridad.bz2
bye
CMD

Basta con que sustituyas estos datos por los de tu servidor:

USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22

El puerto se puede dejar el de ssh por defecto, pero en varios servidores me he encontrado que usan uno distinto así que la opción para especificar el puerto es muy útil para mí.

lftp (sophisticated file transfer program) es el que se va a encargar de identificarse en el servidor mediante sftp. Todo lo que escribamos entre <

Me he pasado un buen rato hasta que he conseguido ponerlo en marcha así que lo dejo aquí por si a alguien le puede servir de ayuda.

Aquí podéis ver otra forma de hacerlo

Tags: , , ,