Warning: file_get_contents(https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails&id=Pqz64pjzApo&key=1): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in /homepages/33/d217631465/htdocs/wordpress/wp-content/plugins/youtube-embed/includes/api-access.php on line 99

Tras un año con una sola asignatura, al fín, terminé mi carrera…, que seis años Dios mío.

Podría escribir mil y una cosas que he vivido durante estos años, miles de recuerdos, compañeros, mi novia (Laura!!! ^^), programas que no compilaban, codeblocks que te decían “hay un error y miles de warnings”, y por más que mirábamos entre todos, ninguno encontrábamos el error. O aquellas mañanas con caras de dormidos, o aquellas tardes-noches en clase pensando en serranitos y ensaladillas…, o descubrir que nuestros profesores eran mejores jugadores de fútbol que nosotros

Aunque nada lo resume mejor que esto…

Si puedes mantener la cabeza sobre los hombros
cuando otros la pierden y te cargan su culpa,
Si confías en ti mismo aún cuando todos de ti dudan,
pero aún así tomas en cuenta sus dudas;
Si puedes esperar sin que te canse la espera,
o soportar calumnias sin pagar con la misma moneda,
o ser odiado sin dar cabida al odio,
y ni ensalzas tu juicio ni ostentas tu bondad:
Si puedes soñar y no hacer de tus sueños tu guía;
Si puedes pensar sin hacer de tus pensamientos tu meta;
Si Triunfo y Derrota se cruzan en tu camino
y tratas de igual manera a ambos impostores,
Si puedes tolerar que los bribones,
tergiversen la verdad que has expresado
y que sea trampa de necios en boca de malvados,
o ver en ruinas la obra de tu vida,
y agacharte a forjarla con útiles mellados:

Si puedes hacer un montón con todas tus victorias
Si puedes arrojarlas al capricho del azar,
y perder, y remontarte de nuevo a tus comienzos
sin que salga de tus labios una queja;
Si logras que tus nervios y el corazón sean tu fiel compañero
y resistir aunque tus fuerzas se vean menguadas
con la única ayuda de la voluntad que dice: “¡Adelante!”

Si ante la multitud das a la virtud abrigo,
Si aún marchando con reyes guardas tu sencillez,
Si no pueden herirte ni amigos ni enemigos,
Si todos te reclaman y ninguno te precisa;
Si puedes rellenar un implacable minuto
con sesenta segundos de combate bravío,
tuya es la Tierra y sus codiciados frutos,
Y, lo que es más, ¡serás un Hombre, hijo mío!

Poema “If” de Rudyard Kipling

…y hasta ahora, dando guerra, como siempre…

Comments 1 Comment »

Cuantos quebraderos de cabeza ha llegado a dar el paso de parámetros por referencia a los estudiantes de C.

Aquel elemento conocido como puntero que hacía que la asistencia a clase se dividiese por dos, y esto son palabras textuales del profesor que tuve en primero de carrera…, lo gracioso de todo es que fue verdad.

El paso de parámetros por valor en C# la verdad es que es algo muy sencillo.

Cuando pasamos un parámetro por valor, este tendrá un valor antes de la llamada del método, dentro del método será modificado (en realidad, el compilador realiza una copia del dato original y se modifica esta copia) y tras la ejecución, el parámetro tendrá su valor original.

Lo más sencillo es velor con un ejemplo.

Programa principal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace ConsoleApplication1
 {
 class Program
 {
 static void Main(string[] args)
 {
 int num = 0;
 Console.WriteLine("Antes del metodo: {0}",num);
 Class1 clase = new Class1();
 clase.metodo(num);
 Console.WriteLine("Despues del metodo: {0}", num);
 string a = Console.ReadLine();
 }
 }
 }

Clase.

1
2
3
4
5
6
7
8
9
10
11
namespace ConsoleApplication1
{
 class Class1
 {
 public void metodo(int num)
 {
 num = num + 5;
 Console.WriteLine("Dentro del metodo: {0}", num);
 }
 }
}

Como podemos observar, en el programa principal declaramos una variable entera, la cual pasamos a un método que la modifica y, finalmente, obtenemos el siguiente resultado.


El paso de datos por referencia en C# es tan fácil como poner out o ref delante del parámetros que estemos utilizando. De esta forma, a diferencia del método anterior, las modificaciones se hacen sobre el mismo valor original que tenemos en memoria.

La diferencia entre ref y out es que, el valor que pasemos con ref debe ser inicializado antes de mandarlo al método, con out, el dato puede pasarse sin inicializar no tomando el cuenta el valor original del dato y actuando como si dicho dato no estuviese inicializado.

Programa principal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
 int num = 0;
 Console.WriteLine("Antes del metodo: {0}",num);
 Class1 clase = new Class1();
 clase.metodo(ref num);
 Console.WriteLine("Despues del metodo: {0}", num);
 string a = Console.ReadLine();
 }
 }
}

Clase:

1
2
3
4
5
6
7
8
9
10
11
namespace ConsoleApplication1
{
 class Class1
 {
 public void metodo(ref int num)
 {
 num = num + 5;
 Console.WriteLine("Dentro del metodo: {0}", num);
 }
 }
}

Resultado:

Como ya se ha comentado, podemos utilizar out con variables no inicializadas. Como es lógico, si intentamos trabajar con dicha variable sin haberle asignado ningún valor, el compilador arrojará un error. Dicha asignación debe hacerse antes de que el método que lo llama retorne, si no, ¿que significado tendría?.

Al ser el paso de parámetro por referencia, una vez terminada la ejecución del método, la variable original tendrá el valor que se le haya asignado dentro de la función.

Comments 2 Comments »

“El usuario debe controlar el software, no al revés”

Fuente: http://bitelia.com/2011/06/richard-stallman-el-usuario-debe-controlar-el-software-no-al-reves

Comments No Comments »

Como se puede ver en el título del post, me estoy aventurando a aprender C# por mí mismo ya que durante toda la carrera, en lo que se refiere a orientación a objetos, nos hemos centrado en JAVA.

La verdad es que lo poco que llevo visto, no está siendo para nada complicado, es más, parece más un Déjà vu que el aprendizaje de un lenguaje de programación nuevo pues su similitud con JAVA es impresionante (por no decir, por ahora, calcado).

Para empezar podría soltar una retahíla de conceptos del lenguaje y de .NET que, sinceramente, poco aportan ahora mismo.

Lo primero que debe hacer uno a la hora de adentrarse en un nuevo lenguaje es, como no, conseguir que aparezca una ventanita de fondo negro (o blanco si usamos una terminal en Linux) en las que aparezcan las palabras…, a ver si lo adivina alguien…, ‘Hola Mundo’. Aún recuerdo mis dos primeros ‘Hola Mundo’ en JAVA y C hace ya seis años al comienzo de mi carrera, y como me quedé asombrado con algo tan insignificante.

1
2
3
4
5
6
7
8
9
10
11
namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
 Console.WriteLine("Hola Mundo");
 string a = Console.ReadLine();
 }
 }
}

Este código se trata de un método main (o programa principal) el cual, su único cometido es imprimir por consola la cadena “Hola Mundo”. Se puede observar que la forma de construir la clase es prácticamente idéntica a como se haría en JAVA.

Con respecto a la última línea, esta sirve para que la consola no se cierre rápidamente y no nos deje ver nada. Esto es algo con lo que me he topado varias veces en distintos lenguajes. También cabe decir que el IDE que estoy usando es Visual Studio 2010, el cual, si ejecutamos el programa con las opciones de depuración activadas, obtenemos lo que he comentado (una ventana abriéndose y cerrándose más veloz que incluso Usain Bolt). Existe la opción de poder eliminar dicha línea y que la consola no se nos cierre al terminar la ejecución, que sería desactivando las opciones de depuración…, aunque esto es algo no recomendable por lo que significa poder depurar cualquier programa.

Para no dejar esto es un simple ‘Hola Mundo’, he hecho un pequeño programa (bastante simple la verdad) con una clase main donde creamos un objeto, damos un valor a una variable e imprimimos dicho valor, y otra donde tenemos la variable a modificar y el metodo consultor y modificador.

En concreto, dicha clase es esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
namespace ConsoleApplication1
{
 class Coche
 {
 private int velocidad;
 
 public void setVelocidad(int vel)
 {
 this.velocidad = vel;
 }
 
 public int getVelocidad()
 {
 return this.velocidad;
 }
 }
}

Y el programa principal el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
namespace ConsoleApplication1
{
 class Program
 {
 static void Main(string[] args)
 {
 Coche coche = new Coche();
 coche.setVelocidad(100);
 Console.WriteLine("El coche va a {0} km/h", coche.getVelocidad());
 string a = Console.ReadLine();
 }
 }
}

El resultado que obtenemos es el siguiente:

El coche va a 100 km/h

Como ya he dicho, el ejemplo es bastante simple y como pequeña inmersión creo que está bien, sobre todo, haber descubierto que es muy parecido a JAVA, con lo que ganamos bastante tiempo con ello (si dominamos JAVA claro xD).

Comments No Comments »

Logo LSWCHace algo menos de un año, muchos nos levantábamos con la noticia de que OSWC’2010 era cancelada, para luego descubrirse que todo respondía más a motivos políticos y de llenarse bolsillos que a otra cosa.

De aquella cancelación surgió la LSWC, y es que la propia comunidad se reinventó ella misma para no depender del político de turno.

Buscando información sobre el tema, he podido comprobar que aquel proyecto sigue adelante y que este año dichas conferencias serán en Zaragoza, me pilla un poco lejos, pero así puedo aprovechar para conocer la ciudad.

Dejo el comunicado al completo que hay colgado en la web ASOLIF (Asociaciones de Software Libre Federadas).

La Libre Software World Conference 2011 se celebrará en Zaragoza

Tras el proceso de evaluación y votación de las candidaturas presentadas, finalmente la propuesta realizada por el Ayuntamiento de Zaragoza ha sido la elegida. Así, Libre Software World Conference 2011, el evento empresarial de referencia del sector del Software Libre en España tendrá lugar en la capital aragonesa.

Zaragoza ha obtenido un amplio respaldo de las organizaciones que componen ASOLIF, asegurando la celebración de un evento de calidad e impacto, que deseamos consolide definitivamente esta apuesta del sector por la difusión de las últimas novedades en tecnologías libres, productos y servicios de las empresas cuyos modelos de negocio están basados en Software Libre. Adicionalmente, la LSWC’11 pretende convertirse esta edición un punto de encuentro entre empresas y comunidades de desarrollo, Universidades y otras entidades relacionadas con Software Libre, además de usuarios y desarrolladores.

Próximamente será anunciada la localización exacta de la LSWC’11 así como fecha de celebración, atendiendo a las condiciones expuestas en la convocatoria.

ASOLIF quiere agradecer el interés mostrado por las diversas organizaciones que optaron a acoger la celebración de la LSWC’11, destacando la alta calidad general de los proyectos presentados.

FUENTE

¿Veré la LSWC’12 en Sevilla?, ojalá.

Comments No Comments »

Hace cuestión de un mes, fue liberada la versión número 15 de Fedora. Como viene siendo normal, he actualizado aquellos PCs en los que utilizo linux y, en concreto, fedora, siendo uno de 32 bits y otro de 64.

Respecto al tema del plugin flash se ha avanzado bastante. En la versión de 32 bits, tan solo fue instalar fedora y poder reproducir cualquier video en flash sin problema alguno, en fedora x64 no fue tan fácil, aunque se ha avanzado bastante y ha sido todo mucho más sencillo.

Fedora 15 trae por defecto instalado el plugin nspluginwrapper el cual es libre y, como ya he dicho, no me ha dado ningún problema en mi sistema de 32 bits. En el de 64 no conseguía reproducir nada y el navegador me avisaba que necesitaba un plugin para ello. Tras esto, decidí que a lo mejor el plugin propietario me iría mejor, y así fue. Solo tuve que desinstalar el que ya venía, instalar el nuevo, y todo funciona a la perfección.

Los pasos para ello son los siguientes.

su
yum erase flash-plugin nspluginwrapper*
rpm -Uvh http://www.linux-ati-drivers.homecall.co.uk/flashplayer.x86_64/flash-release-1-2.noarch.rpm
yum install flash-plugin

Lo siguiente de lo que voy a hablar es de los repositorios RPM Fusion y los codecs para escuchar música. Estos repositorios son bastante útiles en el sentido de que aportan muchísimas herramientas, tanto libres (free) como no libres (nonfree), por ello, es casi indispensable tenerlos activos para aprovechar mejor nuestro sistema operativo.

El comando para activar dichos repositorios (tanto el free como el nonfree) es el siguiente:

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Ahora solo nos quedaríainstalar los codecs de audio, video, etc., que podemos encontrar. Este método difiere según nuestro entorno gráfico, GNOME o KDE.

GNOME

yum -y install gstreamer-plugins-bad gstreamer-plugins-bad-free-extras 
yum -y install gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpegKDE

KDE

yum -y install xine-lib-extras xine-lib-extras-freeworld

Comments 1 Comment »

Pues como podeis leer en el nombre del post, acabo de liberar la versión BETA de GEdora ya que existía un error que, a veces, no eliminaba el nucleo en uso de la lista.

Por ahora, sólo funciona en Fedora, ya que el script trabaja con la forma de nombrar que tiene Fedora en nombrar los paquetes. Por falta de tiempo no he podido probar el script en otros sistemas que no sea Fedora.

Básicamente, el script funcionaría en cualquier sistema que utilicé package kit a excepción de eliminar el kernel en uso de la lista, a no ser que dichos paquetes se nombren igual que es Fedora.

Es una versión BETA, más limpia y estable. Invito a todo el que lo use que, si tiene algún comentario, duda, o si ha tenido algún problema, me haga llegar el comentario.

Un saludo.

Comments 1 Comment »

El proyecto GEdora ha sido actualizado. Con esta nueva versión se persigue obtener mayor seguridad a la hora de eliminar los nucleos, intentando evitar elegir el núcleo actualmente en uso.

Las pruebas que he realizado han dado resultado, si alguien tiene algún problema, le agradecería que contactara conmigo.

Próximos pasos:

  • Controlar el bloqueo exclusivo de Fedora.
  • Crear una interfaz gráfica.

Comments 1 Comment »

De todos es sabido, y si lo estás intentando, ya aviso de ello, es que la marca ATI y Linux no se llevan demasiado bien, y mucho menos con Fedora. Aunque a veces no hace mucha falta ya que tenemos un driver libre que trabaja bastante bien, aunque a la hora de exigirle un desempeño gráfico grande (juegos, diseño, etc), tiene algunas carencias.

Personalmente, he intentado instalar dicho driver mil millones de veces (como dice el anuncio, los andaluces no exageramos, sino que los demás se quedan cortos xD), y siempre he tenido el problema de que, a la hora de cargar el SO, la pantalla de quedaba en un correcto y oscuro (…) color negro.

A modo de recordatorio para mi, y para quien pueda serle útil, he encontrado una guía sobre como instalar dichos drivers y solucionar el error de la pantalla negra. A mi me ha funcionado perfectamente, y ya puedo utilizar Fedora como si en Windows me encontrase.

Espero que os sea útil.

Nota: Sobre GEdora, iré escribiendo actualizaciones cortas en mi twitter. No he podido dedicarle mucho tiempo, tengo un examen en una semana, y para un examen que tengo, debo dedicarle el 100% de mi tiempo.

Comments No Comments »

Según los mensajes que he ido recibiendo en mi correo, el script para eliminar aquellos kernels que no utilizamos, funciona bastante bien.

Por lo que el siguiente paso será trabajar sobre ese mismo script, mejorando la experiencia a la hora de recibir información sobre que se está haciendo, además de optimizar el código.

Si alguien lo prueba y tiene alguna duda, sugerencia, opinión, etc., que no dude en escribirme, tanto por e-mail como comentando en el blog.

ENLACE: http://code.google.com/p/gestor-nucleos-fedora/

Comments No Comments »

   Beat diabetes   Diabetes diet