| Subcribe via RSS

Publicados ya cuatro capítulos del Curso de PHP

Octubre 29th, 2009 | No Comments » | Posted in mis-proyectos, php, programacion

Ya están publicados los primeros cuatro capítulos del curso de PHP en el Rincón del PHP.

Si tenéis dudas sobre PHP pasaos por el foro, que está nuevecito y responderé a cualquier consulta gustosamente (relacionada con PHP, claro).

Tags:

Procesos en C: Crear un nuevo proceso con fork()

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

Siguiendo con los artículos sobre procesos voy a poner aquí un sencillo ejemplo para ilustrar el funcionamiento de la función fork().

Esta función es la que se encarga de crear un nuevo proceso dentro de un proceso. El nuevo proceso creado es una copia exacta del original, con la única diferencia que cada uno de ellos tiene su propio identificador de proceso (pid).

#include <stdio.h>
 
int main() {
	int pid;
 
	printf("PADRE: Soy el proceso padre y mi pid es: %d\n", getpid());
 
	pid = fork();
 
	// En cuanto llamamos a fork se crea un nuevo proceso. En el proceso
	// padre 'pid' contendrá el pid del proceso hijo. En el proceso hijo
	// 'pid' valdrá 0. Eso es lo que usamos para distinguir si el código
	// que se está ejecutando pertenece al padre o al hijo.
 
	if (pid) // Este es el proceso padre
	{
		printf("PADRE: Soy el proceso padre y mi pid sigue siendo: %d\n", getpid());
		printf("PADRE: Mi hijo tiene el pid: %d\n", pid);
	}
	else // Proceso hijo
	{
		printf("HIJO: Soy el proceso hijo y mi pid es: %d\n", getpid());
		printf("HIJO: mi padre tiene el pid: %d\n", getppid());
	}
}

En un próximo post explicaré cómo convertir el proceso hijo en un nuevo proceso totalmente diferente (con el conjunto de funciones ‘exec’). Esto nos permitirá lanzar un programa desde dentro de otro.


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

Tags: , , ,

El Rincón del PHP – Web dedicada a la programación en PHP

Octubre 25th, 2009 | No Comments » | Posted in mis-proyectos, php, programacion

Siguiendo con nuestros contínuos lanzamientos :-) hace un par de días pusimos en marcha la nueva web del Rincón del PHP.

La idea de la web es ser un punto en el que poder encontrar información sobre PHP, cursos y un foro donde podamos conocernos, compartir ideas y exponer dudas.

Entra en el Rincón del PHP, los foros están nuevecitos ¿te animas a estrenarlos?

Tags: ,

Convierte ficheros de vídeo a 3gp con Mobile Media converter

Octubre 23rd, 2009 | No Comments » | Posted in chorradillas, linux

Mobile Media Converter es un fantástico programa que nos permite convertir archivos de sonido y vídeo a diferentes formatos, incluido el 3gp muy usado en los dispositivos móviles. Es un software muy fácil de usar, muy recomendable.

Existen versiones para Linux (hay un paquete .deb que se puede usar para Ubuntu) y Windows.

Se puede descargar de aquí:

http://www.miksoft.net/mobileMediaConverterDown.htm

Como curiosidad, entontré en los foros de Ubuntu este script para convertir ficheros .avi a un formato adecuado para móviles:

mkdir mobile; IFS=$'\n' ; for f in `ls -1 *.avi` ; do FILE=$(basename "$f" .avi) ; mencoder "$FILE.avi" -oac lavc -lavcopts acodec=libmp3lame:abitrate=64 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=200 -ffourcc DX50 -vf scale=400:240 -o "mobile/$FILE.avi"; sleep 30; mencoder "$FILE.avi" -oac lavc -lavcopts acodec=libmp3lame:abitrate=64 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=200 -ffourcc DX50 -vf scale=400:240 -o "mobile/$FILE.avi"; rm "frameno.avi"; rm "divx2pass.log"; sleep 30; done
Tags: , , ,

ZenCart, configurando las descargas

Octubre 22nd, 2009 | No Comments » | Posted in comercio-electronico, zencart

Hoy me encontrado con un problemilla en la tienda de un cliente que me ha hecho perder bastante tiempo. Es una tontería pero lo pongo como recordatorio por si a alguien le pudiera servir.

Se trataba de configurar un artículo para descargar como fichero PDF. El artículo estaba configurado correctamente pero el problema era que cuando el cliente pagaba con tarjeta de crédito el archivo no se podía descargar directamente. El cliente debía esperar a que el gestor de la tienda lo pasara al estado “procesándose” para poder descargarlo.

Una posibilidad era configurar el módulo de la tarjeta de crédito para que el pedido pasara automáticamente al estado “procesándose”. Hasta aquí todo fácil. Sin embargo, esta no era una opción válida ya que “procesándose” era el estado que se usaba cuando el pedido estaba en preparación.

Como solución, creamos un nuevo estado: “pagado”. Y aquí es donde viene el “meollo”. No debemos olvidar que hay que cambiar la configuración de la tienda para que el estado “pagado” sea un estado que permita descargar archivos.

Para ello debemos ir a: Configuración -> Ajustes de atributos -> Controlador del valor del estado de la descarga <= valor mas alto.

El valor a asignar será el código del estado que hemos añadido (normalmente será el 4). Una vez hecho esto los archivos se podrán descargar automáticamente al hacer un pedido.

Tags: , ,

Código para actualizar el contenido de una capa con Scriptaculous

Octubre 21st, 2009 | No Comments » | Posted in ajax, javascript

Aquí os dejo un código JavaScript que actualiza el contenido de una capa mediante Ajax. La transición entre el contenido de la capa y el nuevo se hace mediante un efecto de difuminado con Scriptaculous. El efecto se repite cíclicamente.

Usa Protoype y Scriptaculous.

La capa que se actualiza debe llamarse “capa”:

<div id="capa"></div>

y en la etiqueta body debemos añadir:

<body onload="start_fading()">
<script language="javascript"  type="text/javascript"><!--
function start_fading(){
	var fade=setTimeout("fadeout()",4000);
}
 
function fadeout(){
    new Effect.Opacity("capa", {duration:0.5, from:1.0, to:0.0});
	var fade=setTimeout("change()",600);
}       
function change(){
	new Ajax.Request('/script.php',
	  {
	    method:'get',
	    onSuccess: function(transport){
	      var response = transport.responseText || "no response text";
	      $('specials_sidebox').innerHTML = response;
		  new Effect.Opacity("capa", {duration:0.5, from:0.0, to:1.0});
		  var fade=setTimeout("fadeout()",4000);
	    },
	    onFailure: function(){  }
	  });
}
//--></script>

El funcionamiento es el siguiente:

1) El evento onload() de la etiqueta body llama a la función start_fading() que pone en marcha un cronómetro que llamará a la función fadeout() al de 4000 milisegundos.

2) La función fadeout() hace que el elemento “capa” vaya desapareciendo difuminándose. Además establece un nuevo cronómetro que llamará al de 600 milisegundos a la función change.

3) La función change hace una llamada al fichero ’script.php’ mediante ajax para cambiar el contenido de capa (que está todavía oculto). Cuando se ha terminado de ejecutar script.php se ejecuta automáticamente la función dentro de ‘onSuccess’.

4) Esta función sustituye el contenido de ‘capa’ por lo que haya devuelto script.php, hace un fade in (vuelve a mostrar capa) y establece un nuevo cronómetro para empezar el proceso de nuevo.

NOTAS:

* Hay que tener en cuenta que cada vez que se repite el proceso se hace una llamada a script.php. Si este script consume muchos recursos podemos estar sobrecargando el servidor (cada usuario que tenga la ventana abierta estará haciendo llamadas cada 4600 milisegundos aproximadamente.

* Si es posible quizá fuera mejor precargar los disintos contenidos de ‘capa’ e ir rotándolos en cada ciclo sin hacer una llamada Ajax (eso os lo pongo otro día).

Tags: , ,

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: , , ,