Makefile: commands commence before first target

Si estás usando make para compilar tu código y obtienes el siguiente error.

Makefile: commands commence before first target. Stop.

Abre tu Makefile, y comprueba que en las definiciones de variables que tengas separadas en varias lineas no hayas incluido un espacio en blanco después de alguna barra invertida. Por ejemplo:

VARIABLE = valor1 \
valor2

Bookmark and Share

Artificial Intelligence aprobada!

Lo hice, aprobé “Introduction to Artificial Intelligence”! Ha sido una experiencia muy interesante. Pensaba que al ser una “introducción” tendría un contenido más básico, pero el temario es muy amplio, y abarca muchos temas. Mi idea era que el curso me sirviera de repaso principalmente, pero he podido aprender más de lo que esperaba. El siguiente paso será el curso de Aprendizaje Automático que empieza este mes.

Bookmark and Share

GCC, GNU compiler collection

Navegando por mi disco duro, me he topado con una presentación sobre GCC (conjunto de compiladores desarrollado por el Proyecto GNU y la Free Software Foundation) que realicé en 2006 para la asignatura de Language Processing. Como creo que su contenido sigue siendo válido, la he subido a slideshare con la esperanza de que pueda ser útil para alguien. Compartir es vivir! :)

Bookmark and Share

Más cursos gratis en Stanford

Buenas noticias: en el último post hablaba de la experiencia de la Universidad de Stanford de ofrecer gratuitamente su asignatura de Inteligencia Artificial. Pues el experimento se extiende a dos asignaturas más: “Aprendizaje automático“, e “Introducción a las bases de datos“.

Bookmark and Share

Curso gratuito de introducción a IA de Stanford

A través de Barrapunto me he enterado de una iniciativa muy interesante que va a ser llevada a cabo en la Universidad de Stanford. Los profesores Sebastian Thrun y Peter Norvig (el autor de “Artificial Intelligence, a modern approach”, la “biblia” que todo el que haya estudiado IA ha tenido que consultar), van a ofrecer su asignatura “Introduction to AI” de manera gratuita online para todo el que se quiera apuntar.

No se trata de que vayan a publicar las grabaciones de sus clases como ya hace esta universidad en iTunesU o en Youtube (ya hablé en su día de la asignatura de “Aprendizaje Automático”). En este caso, van un paso más allá, ya que todos los alumnos que se inscriban serán evaluados y podrán tener un certificado en caso de haber superado la asignatura. Para ello, tendrán que realizar los mismos ejercicios y exámenes que los alumnos presenciales de Stanford. Y todo ello, de manera gratuita.

De momento, yo ya me he apuntado para conocer más de esta experiencia. Además, siempre es interesante poder tener un diploma de Stanford :)

Bookmark and Share

El futuro de los dispositivos móviles

Actualmente hay cuatro tipos de dispositivos móviles en el mercado: smartphones, tablets, netbooks y portátiles. Según el número de usuarios, los ordenadores portátiles son los más extendidos. Me acuerdo cuando empecé la Universidad, sólo había unos pocos que tuvieran portatil. Pero tan sólo unos años después, era raro conocer a alguien que no tuviera uno.

Despues llegaron los smartphones, después de que Apple lanzara el primer iPhone. Hoy hay multitud de ellos disponibles, de todas las marcas. Y ahora la gente que usa un teléfono movil sin conexión a internet, se ha quedado a la altura de los que siguen usando un walkman.

Los netbooks estaban destinados a ser el siguiente aparato a entrar en nuestros hogares. Conozco mucha gente que se compró uno para usarlo como segundo ordenador. Asus, HP, Dell… en muy poco tiempo, todos los fabricantes incluyeron uno o varios modelos de netbook en sus catálogos. Todos menos Apple: ellos lanzaron el iPad. Lo que propició la invasión de los tablets.

¿Cual es el futuro de todos estos dispositivos? En una palabra: integración. Me considero un geek de la tecnología, y me gustan los tablets… pero en el fondo se que no los necesito. Además, creo que cargar con mi portatil y mi smartphone cuando salgo de casa es suficiente. Pero sería interesante poder integrar la funcionalidad que portátiles, tablets, smartphones y netbooks pueden ofrecer. Por eso, me encanta cuando puedo leer noticias acerca de nuevos dispositivos que han sido diseñados con esta idea en mente.

Asus Transformer
Por ejemplo, el Asus Transformer, un tablet que puedes transformar en un netbook por medio de un teclado externo.

O Webtop app, de Motorola. Usando este sistema, puedes transformar tu smartphone en un portátil o en un ordenador de sobremesa, dependiendo del accesorio que prefieras:

Si el futuro toma esta dirección, tengo muchas ganas de ver la siguiente generación de estos dispositivos.

Bookmark and Share

Predator: aprendizaje aplicado a visión por ordenador

Predator es un software de código abierto desarrollado por Zdenek Kalal en la Universidad de Surrey (Reino Unido), que usa aprendizaje para mejorar el proceso de tracking de objetos en visión por ordenador.

Hay más videos disponibles en youtube.

Via ALT1040

Bookmark and Share

April Fool´s Day y Linkedin

El pasado viernes 1 de abril, fue el April Fool´s Day, el equivalente al Dia de los Inocentes en los paises anglosajones. En Linkedin lo celebraron recomendando a sus usuarios contactos como estos:

April Fool´s Day y Linkedin

Fue divertido hasta que caí en que día del calendario estábamos :)

Bookmark and Share

Software Libre y los Premios Príncipe de Asturias

Firma para apoyar la candidatura de “La Comunidad Internacional del Software Libre” a los Premios Príncipe de Asturias. Sólo quedan 7 días!

La Fundación Príncipe de Asturias ha invitado a CENATIC a presentar una propuesta de candidatura a los Premios Príncipes de Asturias 2011. Tras analizar las alternativas que, con las máximas posibilidades de acceder al galardón pudieran al mismo tiempo aunar los intereses de todos los agentes del sector del software libre en España, a propuesta de su Consejo Asesor y con el refrendo de sus órganos de gobierno, CENATIC ha decidido promover y presentar como candidato a La Comunidad Internacional del Software Libre a los Premios Príncipe de Asturias 2011, en su modalidad de Cooperación Internacional.

La Comunidad Internacional del Software Libre es el conjunto de personas e instituciones de todo el mundo que contribuyen al software libre mediante un modelo colaborativo y abierto basado en la libertad, la compartición del conocimiento, la colaboración, la meritocracia y el respeto a los derechos de autor, con acciones como el desarrollo, divulgación, promoción, documentación, pruebas, organización, apoyo y comercialización del software libre. El software libre ha permitido la generalización del conocimiento y el acceso a la tecnología a nivel mundial, eliminando barreras económicas, sociales, culturales, idiomáticas y geográficas.

Leer más

Bookmark and Share

Random Sentences, tu primer plugin de WordPress

Me entró curiosidad por conocer como desarrollar plugins para WordPress, y el resultado es un plugin muy básico, que permite incluir frases aletorias en un blog. Puede servir, por ejemplo, para mostrar una frase diferente debajo del titulo de un blog cada vez que se accede a él. En un alarde de originalidad, se me ocurrió llamar a este plugin “Random Sentences”.

Primero, creamos un fichero llamado random-sentences.php en nuestro directorio wp-content/plugins y lo rellenamos con la información básica del plugin.

<?php
/*
Plugin Name: Random Sentences
Version: 0.1
Plugin URI: http://www.albertobustamante.com
Description: Basic plugin that shows a random sentence
Author: Alberto Bustamante
Author URI: http://www.albertobustamante.com
*/

?>

Si todo fue bien, si vamos ahora al escritorio/dashboard de nuestro WordPress, deberíamos ver el plugin.

De momento nuestro plugin no es que haga mucho, asi vamos a escribir la función que devolverá una frase aleatoriamente. La he llamado get_random_sentence():

<?php
/*
Plugin Name: Random Sentences
Version: 0.1
Plugin URI: http://www.albertobustamante.com
Description: Basic plugin that shows a random sentence
Author: Alberto Bustamante
Author URI: http://www.albertobustamante.com
*/

function get_random_sentence(){

	$all_sentences = array(
		1 => array( "sentence" => "This is the sentence 1",
					"author" => "Anonymous 1" ),
		2 => array( "sentence" => "This is the sentence 2",
					"author" => "Anonymous 2" ),
		3 => array( "sentence" => "This is the sentence 3",
					"author" => "Anonymous 3" ),
	);

	$min = 1;
	$max = 3;
	$index = rand($min,$max);

	$output =
		'<div id="RS_div">
			<p id="RS_sentence">'
				.$all_sentences[$index]["sentence"].
			'</p>
			<p id="RS_author">'
				.$all_sentences[$index]["author"].
			'</p>
		</div>';

	echo $output;
}

?>

Como puedes ver, es una función muy simple que usa un array para guardar todas las frases y sus autores. En una posible futura actualización, sería interesante usar la base de datos para ello, pero eso vendrá más adelante.
Si quieres usar este código, guarda el fichero, activa el plugin e incluye esta linea donde quieras que aparezcas las frases:

<?php get_random_sentence(); />

Bookmark and Share

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.