GeekWare - Daniel Pecos Martínez

Posts

Homelab monitoring using Grafana and Prometheus

Homelab monitoring using Grafana and Prometheus

I have a homelab, mainly as a hobby but also as an environment for experimentation. It’s quite useful for self-hosting different services—not only because of the potential cost savings (although you do need to account for hardware costs and electricity) — but also because it allows you to develop skills that will be useful as a professional developer. And the best part? You don’t have to invest a lot of money — I didn’t. I started my homelab with a Raspberry Pi 3B, and for about a year, that was all I needed. It was capable of running HomeAssistant and Mosquitto well enough. Eventually, as I brought more services into my homelab, I had to expand. And guess what? I got a Raspberry Pi 4. So now I have two hosts in my homelab, and the most important question I had to answer was which node should run each service and what kind of availability I wanted.
Attending a PGP / GnuPG signing party

Attending a PGP / GnuPG signing party

In today’s digital world, ensuring the authenticity and security of our communications is more important than ever. PGP (Pretty Good Privacy) and GnuPG (GNU Privacy Guard) are tools designed to provide secure encryption and decryption of data, playing a crucial role in protecting privacy and information. A key component of this security model is the “web of trust,” an informal network of users who verify and sign each other’s public keys. By hosting a PGP/GnuPG signing party, individuals can expand their web of trust, increasing the reliability of key verification and enhancing overall communication security. This guide offers practical steps, complete with GnuPG command examples, to help you host a successful signing party.
From Xorg to Wayland

From Xorg to Wayland

The landscape of Linux desktop environments has been undergoing a major transformation, with the advent of Wayland as a promising successor to the long-standing Xorg display server. This shift has brought about significant changes in popular desktop environments such as Plasma and GNOME. In this post, we explore the state of the art in terms of Wayland’s impact on these environments and how they compare to Xorg, as well as explaining my path towards moving from Xorg to Wayland, steps I took, mistakes I made, and learnings I’ve got.
FOSDEM 2023

FOSDEM 2023

This weekend I traveled to Brussels to attend FOSDEM 2023, although only for the first day (Saturday 4th, 2023). It hasn’t been my first one, but it has been the first massive event I have attended after the COVID-19 pandemic. After the morning keynote, I had a quick look around the buildings where the event was hosted to visit the different stands of the many sponsors of the conference. Among the most interesting ones (for me personally, all the stands where really interesting in one way or another) where:
Mastodon as comment system for your static blog

Mastodon as comment system for your static blog

Comment systems are an essential part of modern websites, providing a platform for users to engage with the content and share their thoughts and opinions. While there are many options available for adding commenting functionality to a website, one alternative worth considering is integrating a Mastodon thread, also known as a “toot.” Mastodon is an open-source, decentralized social media platform that allows users to share text, images, and other types of media in a manner similar to Twitter. In this blog post, we will explore how to integrate a Mastodon thread into your static website as a way to replace traditional comment systems, using simple HTML and JavaScript. By the end of this tutorial, you will have a fully functional Mastodon thread on your website that allows users to participate in discussions and share their thoughts and ideas.
Parchis: the reason why I am a developer

Parchis: the reason why I am a developer

A while back, digging into an old DO NOT DELETE backup folder in one of my old hard drives, I stumped upon a folder called parchis, and for a moment I held my breath until I found some *.bas files there! So what? Well, I just found the lost source code of my very first project, the one I coded while learning about variables, procedures and loops, the one that made me realize that this is the kind of stuff I wanted to do as my professional career and hobby.
Cryptocurrencies and Climate Change

Cryptocurrencies and Climate Change

Bitcoin (and many more) cryptocurrency prices have been sky rocketing for the lasts weeks/months, and thus their usage and mining. But have we stop thinking how this impacts the Climate Change? Before jumping into graphs, a quick recap on how cryptocurrencies work: when you buy or sell Bitcoins (for example), your transaction is being recorded into a distributed ledger. This distributed ledger is cryptographically secured against tampering, meaning that once anything is written into it, there is no way of changing nor removing it. But that ledger needs to reside and be supported by a platform. This platform is what the miners provide, and the computation power they contribute with is what enables the distributed ledger.
How I write AWS SES email templates using MJML

How I write AWS SES email templates using MJML

If you are a AWS SES user (AWS’ email system) you probably know that working with its JSON based templates is not a user-friendly task: Text and HTML content are defined as properties of a JSON object It’s a JSON file, meaning that you have to escape some characters, like " in the HTML It’s quite hard to find the content to change in the HTML being stored in a single line But still, is a quite convenient system, as hosting your own email server is quite an effort, and you want it to be reliable.
What is a Monorepo

What is a Monorepo

Definition: A monorepo is a standard Version Control System, or VCS (such as Git, Subversion or CVS) repository, which instead of containing just one application or unit of software (applications, libraries, micro services, modules…), contains all the components that a project (or company) needs to operate. At first glance, it sounds counterintuitive to host more than one unit of software in a single repository, but there are few advantages on having all components stored in the same place:
JCrete 2019

JCrete 2019

Amazing. That’s the one word summary for this unconference. It wasn’t my first time in an unconference, although the previous ones were slightly smaller and my experience then wasn’t that satisfactory as the one I’ve had in JCrete. And I have just discovered the key ingredient for a successful unconference: the people. Because is not only about the technical content of the sessions (which was quite high, don’t get me wrong), but about those interactions during and after the sessions, happening without any planification, as natural as a conversation can be. Probably the most interesting ones are, in fact, those unexpected gatherings happening at random places, like at the beach, or during breakfast, or while trekking to Balos beach, or while snokerkeling in a beautiful location of the island.
How to rotate your OpenPGP / GnuPG keys

How to rotate your OpenPGP / GnuPG keys

It’s been a while (well, years) since I rotated my GPG keys, and to be honest, now that I know better how to handle a GPG key pair in order to avoid master key rotation, I think it’s the time to get a new pair. This tutorial will show you the steps I followed with explanations on what we are achieving in every step.
Demistifying blockchain - Part 2

Demistifying blockchain - Part 2

In the previous post we explained from a theoretical point of view how a block chain works. In this post we will get down to work and will implement a working blockchain in Go. If you haven’t read it yet, we recommend you to do it now before continuing. It’ll provide you the basic concepts needed to understand the examples below. (You can find the complete example in this Github repository: https://github.com/dplabs/demistifying-blockchain)
Demistifying blockchain - Part 1

Demistifying blockchain - Part 1

Blockchain is one of those buzzwords everyone is listening nowadays, but what it really is? In this series of posts we will dig one general concepts about BlockChain and a little bit of its relation with BitCoin, as well as we will develop a simple blockchain in Go. To put it simple, and as its name states, it’s just a chain of blocks. The interesting detail is that is a cryptographic chain providing some characteristics that make them really useful:
Web Mining: is that bad?

Web Mining: is that bad?

There has been a lot of noise around Monero and Coinhive lately, or web mining in general, and don’t quite agree with most of what I’m hearing. It all started with The Pirate Bay adding a web mining script to their site, so whenever you’d visit them, your CPU would be used to mine some Monero for them. That was made without any notice to the user, just “stealing” their power. That was probably the best ad Coinhive (which is the service hosting the mining script and providing the required infrastructure to mine Monero) could get, as it appeared all over the news (even some local newspaper got noticed). And, as it was to expect, plenty of sites added the same piece of script so they could also benefit from their users base.
REST API with Node.js and Swagger

REST API with Node.js and Swagger

In this tutorial I’ll show how to piece together the required NPM modules to build a REST API in Node.js with proper Swagger documentation. We’re going to use Express as the HTTP framework, and the Swagger documentation will be written as inline comments within the code, as close as possible to the handling endpoint or models that will implement the contract, so it will be harder for them to eventually diverge.
From Ubuntu to Arch Linux

From Ubuntu to Arch Linux

Recently I took the decision of leaving my long beloved distro – Ubuntu (sorry, link in spanish) and moving forward into Arch Linux. And why? As JFK said when the USA was aiming to land on the moon, “not because it’s easy, but because it’s hard”, maybe not that much compared to getting to the moon, but definitely more tedious than Ubuntu. One thing you can take for sure if you take the chance to install Arch: no matter if you success or give up with it, you will learn something new about how a Linux distro works.
Nacidos de la Bruma III – El Héroe de las Eras – Mistborn

Nacidos de la Bruma III – El Héroe de las Eras – Mistborn

En El Héroe de las Eras, tercera y última entrega de la saga Nacidos de la Bruma – Mistborn, Brandon Sanderson nos presenta el colofón a esta épica historia de aventuras y magia – alomancia, en la que los protagonistas viajan a través del mundo en busca de las pistas que Lord Legislador les dejó para combatir el mal que les avecina: Ruina.
Nacidos de la Bruma II – El Pozo de la Ascensión – Mistborn

Nacidos de la Bruma II – El Pozo de la Ascensión – Mistborn

El Pozo de la Ascensión es la segunda parte de la saga de Nacidos de la Bruma (Mistborn) de Brandon Sanderson, en la que ha demostrado que posee la creatividad suficiente para dar vida a una historia de gran envergadura, y lo mejor, conservando la esencia de la entrega anterior, añadiendo unos toques que proporcionan un aire de frescura y misterio a la franquicia.
Nacidos de la Bruma I – El Imperio Final – Mistborn

Nacidos de la Bruma I – El Imperio Final – Mistborn

Si lo que deseas es una trama absorbente, con una gran cantidad de misterio, situaciones fantásticas y personajes entrañables, El Imperio Final, primer libro de la saga Nacidos de la Bruma – Mistborn de Brandon Sanderson es estás buscando. Sin duda alguna es una historia que demuestra que aún es posible encontrar libros con un buen contenido literario y un tono oscuro, tan difícil de encontrar en la literatura fantástica desde hace mucho tiempo. Puede considerarse un digno sucesor de grandes libros épicos del estilo del Señor de los Anillos o Juego de Tronos, sin duda alguna, una joya que te recomiendo no perder.
Elantris

Elantris

La ciudad de los dioses ya no es un lugar con seres de grandes poderes y magia, es ahora un lugar en ruinas llena de no muertos que sufren incansablemente por un hambre sobrehumana, dolores que nunca sanan y un corazón que no late. Elantris de Brandon Sanderson es la ciudad donde una misteriosa desgracia cambió todo, sus habitantes se transformaron y después de ser unas maravillas, son ahora seres malditos. Esta novela llena de fantasía y acción presenta la historia de tres personajes, el príncipe Raoden (quién sufrió la transformación), la princesa Sarene y el sacerdote Hrathenun.
Gracias Mamá

Gracias Mamá

Por todo lo que has sido y hecho, no puedo hacer otra cosa que estarte agradecido. Llevo meses tratando de escribir este post, y realmente puede que sea el más difícil escrito nunca. Varias veces he tenido que parar y dejarlo para otro momento. No pretendo que sea un post público sino algo que te escribo a ti. Para mi. Ni que decir que te echaré de menos. Nunca te olvidaré y haré todo lo posible para que Izan tampoco lo haga. Todas las noches mira las estrellas para mandarte besos.
El Temor de un Hombre Sabio

El Temor de un Hombre Sabio

El ex profesor de lengua y literatura inglesa Patrick Rothfuss presenta El Temor de un Hombre Sabio la continuación del libro El Nombre del Viento, incluido en la Crónica el Asesino de Reyes. Narra la historia de un joven prodigio que todos dan por muerto, ahora con nuevo nombre en una aldea extraviada, trata de rehacer y continuar con su vida. Los recuerdos sobre interesantes batallas, alegrías y penurias explican porque la arrogancia y seguridad en la actitud de Kvothe, “Quizás hayas oído hablar de mí”.
El Nombre del Viento

El Nombre del Viento

Asesino, músico, mendigo, estudiante, ladrón, mago y héroe: ésta es la verdadera historia de Kvothe. Tras soportar los cotilleos, rumores y conjeturas que las personas hicieron sobre su vida, en El Nombre del Viento se narra las verdaderas vivencias de su auténtica y dificultosa existencia en el mundo. Se trata de una novela llena de fantasía escrita por el estadounidense Patrick Rothfuss, su primera edición fue en 2011 y hoy en día cuenta con muy buenos comentarios de críticos en todo el mundo. Este libro ganó el Premio Pluma al mejor libro en el género de literatura fantástica, lo cual representó un impulso para que su autor se dedicara con más pasión a la escritura.
Plan de ahorro personal

Plan de ahorro personal

Tras unos días de análisis e introspectiva financiera, he conseguido detallar cuáles son mis gastos previsibles mes a mes, por lo que creo que me encuentro en situación de pasar a la siguiente fase: definir un plan de ahorro personal. Voy a optar por un plan bastante agresivo, puesto que mi colchón actual está completamente deshinchado y esto es algo que me hace sentir poco seguro. Tras hablarlo con mi mujer, hemos decidido apretarnos un poco el cinturón con el fin de poder corregir esta situación. Así que nos hemos fijado como objetivo ahorrar el 25% de nuestro salario cada mes. Una vez alcancemos la cantidad de 2000€ en líquido, el resto de los futuros ahorros los invertiremos en bolsa a largo plazo y plazos fijos. No tengo todavía claro en qué porcentaje, pero todavía tengo tiempo disponible para pensarlo.
Canción de Hielo y Fuego: Juego de Tronos: 1

Canción de Hielo y Fuego: Juego de Tronos: 1

Juego de Tronos (Game of Thrones) es una de las franquicias más exitosas de los últimos tiempos que combina batallas épicas, dinastías poderosas y todo un mundo místico que se cierne sobre sus personajes, llenos de emociones netamente humanas. La historia se desarrolla en un mundo ficticio medieval, en un continente llamado Poniente, donde se desenvuelve una historia llena de sucesos impresionantes, increíbles personajes y desenlaces totalmente inesperados. Se trata de Canción de Hielo y Fuego, escrita por George R. R. Martin, una novela que ha sido traducida a más de 30 idiomas desde su lanzamiento. El escritor comenzó a crear esta obra en 1993 y tiempo después, en 1996 fue publicado su primer tomo.
Un monstruo viene a verme

Un monstruo viene a verme

Es media noche, Conor apenas se despierta luego de tener la misma pesadilla que lo agobia todos los días. Pero, en esta instancia los hechos han sido diferentes, ya que esta vez un monstruo lo espera en el jardín de su hogar, pues el árbol antiguo y robusto que antes solía observar desde la ventana de la cocina, ahora dispone de brazos, piernas y un rostro completamente aterrador.
Inferno

Inferno

El profesor Robert Langdon se despierta a mitad de la noche en un hospital, con una herida en la cabeza ocasionada por una bala, sin embargo, el docente de simbología no tenía idea de cómo sucedieron los hechos, ya que no recuerda nada de los últimos dos días, tampoco cómo había llegado al centro médico, ni de la procedencia de una objeto macabro que hallaron en el bolsillo de su chaqueta.
Me cuesta llegar a fin de mes, ¿cómo ahorro?

Me cuesta llegar a fin de mes, ¿cómo ahorro?

Ya hemos comentado que el ahorro es la base de la inversión, pero ¿cómo conseguir ahorrar si a duras penas llego a fin de mes? Aunque sin fácil solución, te voy a comentar algunos trucos o consejos que he utilizado en alguna ocasión.
El Juego de Ender

El Juego de Ender

Una especie extraterrestre con apariencia de insectos ataca la Tierra. Estos seres son capaces de comunicarse telepáticamente y se catalogan como una especie superior a los humanos, por lo que se proponen destruir a cada persona que habite en el mundo. Sin embargo, la humanidad tratará de evitar su exterminio, así que para vencer a los insectores (nombre de los extraterrestres) necesitan de un genio militar capaz de contrarrestar esta amenaza, por lo que permiten el nacimiento de Ender, el tercer primogénito de una pareja en un planeta donde se ha reducido el número de descendientes a dos personas.
El Marciano

El Marciano

El astronauta de la NASA, ingeniero mecánico y botánico, Mark Watney, es integrante de una tripulación de seis personas de la misión Ares 3, que está destinada en ser la primera en aterrizar y realizar estudios en Marte. Pero una tormenta de arena con vientos que supera a gran escala los pronósticos de la NASA, obligó al equipo espacial a abandonar el Hab (habitáculo donde iban a residir) y a despegar hacia la Hermes (la nave espacial en la que llegaron en órbita).
Ready Player One

Ready Player One

En el año 2044, el mundo es cada vez más un lugar sombrío, con terribles carencias para la población, razón por la cual, muchas personas escapan de esta realidad participando en el videojuego “Oasis”, entre ellas nuestro protagonista Wade Watts, un adolescente solitario, común y un tanto deprimido que sabe lo afortunado que es por tener un techo, comida suficiente y unas condiciones de vida mucho mejores que la mayoría.
Harry Potter y el Legado Maldito

Harry Potter y el Legado Maldito

La historia del niño que vivió es conocida mundialmente, es referencia cultural y conserva vigencia entre las generaciones que crecieron viviendo el fenómeno de los libros y películas de Harry Potter, y aún logra atraer a muchos nuevos lectores y espectadores, curiosos y ávidos de sumarse a este universo. Es por eso, que el mundo no puedo recibir el libro “Harry Potter y el Legado Maldito”, con más que inmensas expectativas, luego de casi diez años del final de la saga.
Diversificar inversiones para aumentar nuestra tranquilidad

Diversificar inversiones para aumentar nuestra tranquilidad

Antes de asumir el riesgo que supone la inversión en Bolsa, quise asegurarme de que era el modo que quería utilizar para sacar rendimientos a mis ahorros. Todo el mundo sabe que invertir en bolsa es algo arriesgado y en aquel momento prefería optar a un rendimiento menor a cambio de una mayor seguridad de retorno de mi dinero. ¡Manos a la obra! Acto seguido empecé a bucear por las páginas de inversión de las entidades bancarias con las que trabajo e ir extrayendo una lista de productos tipos a fin de poder investigar sobre cada uno de ellos y las condiciones que les aplican. Tras unas horas de investigación conseguí la siguiente lista de productos:
Padre Rico, Padre Pobre

Padre Rico, Padre Pobre

Intentar abordar desde el desconocimiento una técnica de inversión para conseguir revalorizar tus ahorros, está desde mi humilde punto de vista, destinado al fracaso. ¿Por qué tropezar con piedras con los que otros ya lo han hecho y además han explicado el camino que llevaban y sus consecuencias? (Una de las referencias que personalmente suelo utilizar para conseguir consejo es precisamente mi padre, al igual que el autor de este libro, y supongo que muchos otros más).
La base de la inversión: el Ahorro

La base de la inversión: el Ahorro

Posiblemente si algo tuviera que ser la piedra angular de la inversión, apostaría a que lo es el ahorro. Y es que parece lógico que para poder invertir en cualquier tipo de producto financiero, es necesario disponer de un mínimo de líquido disponible. Parece una obviedad, pero la constancia en el ahorro, determinará nuestra disponibilidad de capital para la inversión. Pienso que ahorro e inversión son dos caras de una misma moneda: el ahorro es la herramienta que permite a la inversión hacer que éstos crezcan.
¿Es la bolsa la inversión que quiero para mis ahorros?

¿Es la bolsa la inversión que quiero para mis ahorros?

Sede de la bolsa de mercados y valores de madrid Permíteme que te explique cómo decidí que la inversión en bolsa era el camino que quería seguir para rentabilizar mis modestas inversiones. Todo empezó por una (creo que sensata) preocupación por cómo llegaría al momento de mi jubilación. La primera preocupación, y aunque parece remota, era siquiera si iba a disponer de una jubilación y la segunda, si la cantidad a percibir cubriría lo que a mi me gustaría. Al fin y al cabo son los últimos años de tu vida disponibles para disfrutar, tras más de 40 años de trabajo.
¿Interesado en invertir y no sabes por dónde empezar?

¿Interesado en invertir y no sabes por dónde empezar?

No te sientas solo, es lo más normal. Y lo digo porque a mi me pasa exactamente lo mismo: es un mundo lleno de _jargon _y donde cometer un error sale caro, pero por contra, el potencial beneficio es muy interesante. ¿Y por qué si no tengo ni idea de en lo que me estoy metiendo, sigo adelante? Primero: quiero ahorrar y que mis ahorros crezcan lo máximo posible, como le gustaría a cualquier hijo de vecino.

PAPIs.io Connect 2016 – Valencia

I just got home after enjoying a couple of days in the PAPIs.io Connect conferences in Valencia. And they’ve been great! There have been sessions about Machine Learning, Deep Learning, APIs, AI, BigData and many more. Oh, and there have been drones too. To summarize, the ecosystem surrounding BigData and AI technologies is amazing and currently is really on fire. In my humble opinion, I think this quote from Ramón López de Mántaras’s keynote “Past, Present and Future of AI: A fascinating journey” describes the energy and enthusiasm that people working in AI and BigData transmit when they talk about the matter:

Surprises with Java packages

Packages in Java is a quite simple and straightforward concept of the language. It’s there from the beginning and it’s commonly used by every Java programmer. In a few words, these are the rules you have to follow to create a class inside a package (spoiler: which are not completely true, as we’ll see later): Package statement must be the first one specified in a java class file A package namespace must match the physical path of the file, i.e a class defined with a package a.b.c must be placed in a path a/b/c/ Easy right? Let’s check…

Codemotion 2015

Day after Codemotion 2015, this is my overall opinion of the event: meh. Don’t get me wrong, technical sessions have been quite interesting, full of really nice people and organization must have worked really to get the event running. But, in my opinion, this event is dying of success. Way too many assistants, making really hard to walk from one session to another (even having 15 min between them), or having to arrive 30 min before start if you’re intention was to have a nice place to plug your laptop and be able to see the presentation.

Coursera: Principles of Reactive Programming

In little less than a week, a new edition of Coursera’s course, Principles of Reactive Programming from Martin Odersky, Erik Meijer and Roland Kuhn, is launching. This course is a follow-up of Principles of Functional Programming in Scala, which I took in its first edition and which I enjoyed a lot. I’ve regretted missing out first edition of this second course for a long time (more than a year, in fact), so if you want to learn about this magnificent frameworks of the Scala world, don’t miss this chance!

Java 8 and Functional Programming

Purpose of this post is to provide a glimpse of the new features included in Java 8 that shift this language towards a more Functional Programming paradigm. But before, let’s define what we understand for Functional Programming (FP). Functional programming key characteristics include: Higher Order Functions Pure Functions and Immutability Tail Call Recursion Higher Order Functions for a FP language means that functions are considered first class citizens, allowing the programmer to use them as any other value the language defines, for example, a Function value:

Groovy to be part of the Apache Software Foundation

As March 11th, Pivotal dropped its financial sponsorship for Groovy, and despite of not really endangering it, as Groovy is an already well established language with a great community backing it, it raised many concerns, as the required boost a platform like this deserves was missing until now. Furthermore, its creator and project leader until lately, Guillaume Laforge, also recently stepped back in order to focus in Restlet. Also the recent release of Java 8, with the introduction of lambdas into the Java language has increased the interest and traction of Java, making a lot of people question if there were still room for other JVM languages, even more being so closed to Java.

Java 8 one year later

It’s been a little more than a year since Java 8 was released (2014/03/18) and you might think that it’s a little too late for a What’s new in post. In fact latest public update available is 8u40, so let’s review not only what was initially included in Java 8, but what else has changed during this first year, up to release 8u40. Lots of changes were included in the initial Java 8 release, being probably the most notable of them, in my opinion (feel free to disagree, looking forward to discussions):

Welcome to jvmGeek!

Welcome to jvmGeek! This new blog aims to talk and discuss about the JVM ecosystem, with news and articles discussing about Java – the language -, and also about other JVM languages such as Scala, Kotlin or Clojure. But it won’t deal only about programming languages, but also about tools and libraries. You’ll find news, tutorials, code examples and more general articles, among other. From time to time I will also try to gather events and news related to one particular matter and post them as a flash post that will help you keep up to date with this effervescent platform.

Using Chromebook for node.js development

Every single working day I spend between 2 and 2.5 hours in a train. And I feel pretty lucky about this, mostly because is one single train, no need to pay attention for switch overs or other kind of public transports, and that allows me to invest that time in whatever task I want: podcasts, videos, blogging or even programming. And that’s what I want this post to focus in, because there are plenty of posts that explain how to use a Chromebook for day-to-day tasks (even being offline) but not that many that talk about programming in node.js using a Chromebook.

HTPC automatic workflow for Movies and TV Shows

Watching Movies and TV Shows from online streaming sources is a pain, as you depend on the availability of the your ISP network and current status of the stream provider. Furthermore, you don’t always have an internet connection available when you want to spend some time in front of the TV. So downloading it it’s a much better way to go in order to avoid this issues (giving that you have to anticipate a little bit to get downloads finished).

From Node.js back to Java

During last year, I had the chance to work as CTO of a startup, working mainly within MEAN stack. I was happy, the technology I was working with was in a great hype and its community grew bigger and bigger with lots of projects popping up everywhere. But life is continuously changing, and I started to work in a new company within Java/JEE technologies. I was back to my first days as a professional computer engineer. Java ecosystem is huge, and there are some well established tools that you must control if you want to progress as Java developer. But Java -the language- is getting older, and newer languages are more expressive and require less boiler plate code (don’t get me wrong, JVM is a great platform, and probably the best one for enterprise applications). Even with the recent release of Java 8, which introduced Lambdas and some functional style capabilities, I still feel like writing too much, or at least much more than with other languages.

Functional programming in javascript: Function composition

Function composition is one the key features (among others) of functional programming. Programming languages that offer higher order functions as a feature can potentially use function composition. But, still, programmers need to be aware of some key concepts to successfully apply this pattern in our code. Function composition, as defined on Wikipedia, is an act or mechanism to combine simple functions to build more complicated ones. In other words, we can define new functions, equivalent to the result of chaining a set of given functions, so the input of function i is the output (or result) of function i-1. Let’s see an example in javascript.

Who is who in computer science

I have problems remembering people’s names. Really, I’m not good at it. And that’s no exception with computer technology. That’s why I’ve written this post, to try to improve and persist those names in my head. Let’s see who is who in nowadays computer science. Methodologies <div> <strong>Kent Beck</strong> (<a href="http://en.wikipedia.org/wiki/Kent_Beck">wikipedia</a>, <a href="https://twitter.com/KentBeck">twitter</a>) &#8211; XP, Agile, TDD </div> </td> <td width="50%"> <a href="http://martinfowler.com/"><img class="alignleft" src="/assets/2014/05/martin_fowler.png" alt="martin_fowler" width="100" height="85" /></a><strong><a href="http://martinfowler.com/">Martin Fowler</a> </strong>(<a href="http://en.wikipedia.org/wiki/Martin_Fowler">wikipedia</a>, <a href="https://twitter.com/martinfowler">twitter</a>) &#8211; OOP, Agile, TDD </td>

Organizing your Code: Javascript Modules

The way you structure your code is a key factor when you define your source code organization. It will make your life easier or miserable, and once this structure is established it will become a really tedious task to redefine it. That’s why you know about the different patterns available and choose the one fits your project best. But, why should I care about modules? Well, is the way Javascript offers to organize and encapsulate your code, and if you don’t think you need to do it, because maybe it’s a small project or you don’t care at all, trust me, you are making a huge mistake!

Node.js blog: NodeGeek

Javascript is an old well-known friend that is growing rapidly and gaining traction since Node.js, a command line Javascript interpreter based on Chrome V8 Javascript Virtual Machine, was published. Its community is building great stuff, and more and more companies are moving into this stack, with a high success ratio. http://nodegeek.net Luckily for me, for my last two professional years I have been involved in one way or another with it, been able to relearn the language and discover its framework. And since not long ago, I’ve been writing articles for a new site where I could focus about this amazing programming stack:

Create and publish an NPM module

Code modularization, achieved in one way or another, is a technique a good developer must aim for because it helps keeping things small, well-tested and organized. And of course, it follows the DRY directive. So as a Node.js developer (and maybe contributor to the Open Source), creating and publishing an NPM module is one of those steps you will eventually face. Probably if any Node.js developer would have to pick an indispensable tool of the ecosystem, npm would win by far. Its greatness resides in how much easy is to build applications using on of several modules, each of them providing one certain functionality, as if they were building bricks, picking the right tool for each task.

Node.js ecosystem

The Node.js ecosystem is quite young and prolific: new tools appear almost every day or week, changing and turning upside down your current workflow, always trying to squeeze a little more productivity to your time and effort or simply making your work easier. As an example, take a look on the NodeFramework page, where Azat Mardanov (@azat_co) collects lot’s of frameworks and utilities related to Node.js. Or NodeWebModules, more web oriented than the previous one, from Caio Ribeiro Pereira (@crp_underground).

Node.js and V8 history

Talking about Node.js history, it’s talking a little bit about V8 history. But let’s start with a one line definition of what it is: Node.js is a platform built around Google Chrome V8 Javascript engine, to create lightweight, fast, scalable, event-driven and non-blocking I/O applications. So lets begin talking about Node.js origins, the V8 javascript engine. V8 is an opensource project by Google and it is in the very core of Google Chrome browser. Its first public release was on September 2, 2008, same date Chrome’s first release was announced. It was a big step forward in browsers’ performance, and it pushed browsers’ technology to a new whole level. It’s written in C++ and its biggest revolution was that it precompiled the Javascript source code to machine code instead of just interpret it and then applied a JIT process again in runtime to improve dynamic code execution.

Hello world! Node.js & Javascript blog

Wellcome to this new site where you’ll find lots of information about Node.js, Javascript and HTML 5 technologies! This project is a chance for me to share my passion about these new and amazing technologies, trying to make you easier to step into it and to discuss and enjoy technology talks to whomever who wants to. It will be mainly focused on Node.js, but sometimes we will talk about generic Javascript or even frontend Javascript related to HTML5 capabilities.

Javascript Allongé: a review

Javascript Allongé@raganwald is one of the more refreshing coding books I have read in a big while. Usually when I face a programming language book, I skip the beginner chapters (if I already know the language, of course) and go directly for the juicy ones, but with this one I tried to follow it from end to end because I read some comments on twitter telling that the way basics are explained, become a really solid base for the language, so I gave it a chance.

RaspberryPi shutdown button

Last Friday I got some spare time (finally!) and, with the help and tools of my friend Alfredo, we placed a button in the RaspberryPi case so, when I push it, a custom command its executed on the RaspberryPi, like for example, a clean system shutdown. First lets start with some pictures of the final result: And now the schematics (pins used in the schematics are 3.3v, GND and GPIO):

Madrid – OpenSpace Persistencia

Persistencia ha sido el tema tratado en el OpenSpace que se ha realizado en las oficinas de tuenti. Hemos podido hablar sobre temas como NoSQL, ActiveRecord, BD basados en grafos, geoespaciales, … entre otros muchos. Ha habido mucho debate, con muchas opiniones, pero sobre todo muy buen ambiente. Muy interesante la charla que ha dado la gente de tuenti sobre como gestionan la persistencia. Es de agradecer la claridad y transparencia con la que han participado.

Javascript Promises Pattern in plain Javascript

In the previous post I gave a glimpse of the Javascript Promises Pattern (JPP). Now we are going to take a more in deep look into it and implement our (simplified) version of this pattern. First of all, let’s sow the code I we defined works: we had three operations (to make the example simpler, they all share the same code, but this is not a requisite), each of them expecting a set of arguments which are processed by an asynchronous operation. The result of this asynchronous operation will be feed to the next operation, and so on until we achieve processResults function that will handle the final result. This is a refactored version of the code exposed in the previous post:

Javascript Promises Pattern – 101

I am sure you have heard about the javascript Promises Pattern, but if you haven’t, here is a quick and simple definition: a promise or future is an object that represents a future result, not yet obtained or calculated (here you have a more complete definition). In fact, what is really nice about it is that allows you to define callbacks for async code in and more elegant and readable way.

Retrospectiva 2012

31 de Diciembre, otro año más. Y uno nuevo a punto de llegar. En mi caso es fácil resumir 2012 en un par de palabras: cambio y aprendizaje. Ha sido un año en el que profesionalmente he tomado un cambio de dirección y del cual estoy realmente satisfecho, aunque en su momento fue una decisión díficil, sobre todo por el momento de crisis en el que nos encontramos. Y es que este cambio me ha hecho aprender. Mucho.

Valencia – Global Day of Coderetreat 2012

Creo que la mejor forma de iniciar este post es felicitando a los organizadores (@borillo, @xaviuzz, hay que reconocer que os lo habéis currado) y dando las gracias a peerTransfer por hacer de host para este evento de forma totalmente altruista. Una pena para aquellos que no hayan podido asistir: ha resultado ser un evento muy dinámico, con opiniones y puntos de vista muy variados e interesantes y, sobretodo, divertido. El problema a resolver (Conway’s Game of Life), aunque simple en principio, ha dado mucho juego, y aunque un pomodoro no es suficiente para implementar una solución completa, ni mucho menos, ha sido la excusa perfecta para practicar pair programming, TDD y ya de paso, poner en práctica algún nuevo lenguaje y herramientas.

Functional Programming & Scala course finished

Coursera Functional Programming has not been my first experience in an online course, but it has been the most satisfying by far. Many people were interested in it, and I think it created a great hype, not only in the course forums but in social networks like twitter. People all around the world were interacting in the same course, creating really interesting conversations and discussions about the subject. Really nice.

Recipe: From SVN to Git without pain

Are you already in love with Git? I’m pretty sure of that, that’s the reason why you are reading this, huh? These are the steps you should follow to migrate an existing SVN repository to a Git one: 1 – Create a file where you will map SVN users to Git users, following this pattern: svn_user = git_user This is the one I created to migrate some SVN repositories from Google Code:

Blog rollback

A couple of months ago I took the decision to reset my blog and start it again from the beginning, creating a more professional computer technology oriented content. I wrote some technical articles and I feel really proud of them, but there was something left, some place where I could write about my thoughts or anything I would think it would deserve it. Some days ago I make a quick revision of a backed up previous blog where I found some articles I liked very much, some of them with several comments, containing really interesting stuff, and some others that were really crap articles. I started thinking that maybe the restart of the blog was not a good decision, that what my blog really needed was a good clean up and not a complete reset. And that’s what I’ve been doing for a couple of days, recovering articles that I feel are interesting or that made me feel in some special way when I wrote them.

Git-SCM (Part 2)

In a previous post, we have seen what Git is and its main characteristics. Now, we’ll go more into detail about its functionality and we’ll see what a usual day working with Git looks like. But before, some initial concepts: Repository: A working tree of files and directories which can be versioned, keeping track of every single modification made over the working tree, been able to move forward and backward in its history. Branch: it is an alternative image of the repository, keeping track of its own history of modifications. A repository has a main branch called master, and it can have an undefined number of branches, some of them may be copies of remote branches and the default name for the upstream repository is origin. The current branch of the working copy can be always referenced as HEAD. Commit: it is a concrete state of a branch, containing the modifications made to the entire working tree since the previous commit in the history, as well as author information and timestamps. It can be identified by its SHA hash, but a name or tag can be associated to it in order to make thing easier. Merge: it is the process of integrating changes or commits of two different branches. This integration is automatically carried by Git, if there are no conflicts between commits. Push: the changes committed in a local branch into a remote branch. These are the basic concepts we are going to use in the rest of this post. Now let’s start with the fun!

amCharts Javascript Tutorial: Parsing dates and styling up the chart

Recently I began a collaboration with amCharts, writing some tutorials for their blog. This is my first contribution, and you can find the original post in amCharts blog. http://blog.amcharts.com/2011/03/amcharts-javascript-tutorials-part-3.html I hope you’ll enjoy my first tutorial about this great graphs library! And, of course, feedback is wellcomed! In this tutorial we will enhance our previous example in order to parse dates. This will allow us to obtain date-based graphs displaying their data points using relative distance to each other and not placing them at regular spaces.

HTTP connection + HTTP Authenticacion + Proxy + SSL

Many times during your life as a java developer, you will face the situation of retrieving some resources using an HTTP connection. At first, it will seem easy, but probably some problems will arise such as: Needing to use an HTTP Proxy (maybe authentication would be required) Establishing an HTTP authenticated connection Connecting to a server that uses SSL self-signed certificates I’m sure you will quickly find the Apache Commons solution: commons-httpclient. In this article I will show you some code that, I hope, will ease you the resolution of the previous obstacles using this great API from Apache.

Git-SCM (Part 1)

One of the key tools of a software project development is the repository where it’s hosted. During my experience as software developer I have been working with several flavors, such as Visual SourceSafe, CVS, Mercurial, and of course, SVN. But latetly I have found this little jewel called Git. Git was initially developed by Linus Torvalds as a result of an unsuccessful research to replace the propietary SCM BitKeeper, used back in 2005 in the Linux Kernel project (kinda strange that the opensource star project was hosted with a propietary software, huh?). Back then, the ability to freely use BitKeeper was withdrawn by its copyright holder, so Linus was forced to find a replacement for it. He was looking for a VCS with a high performance in the process of applying patches and keeping track of the changes, but he didn’t find any opensource solutions that fitted his requirements, so he started the developement of Git (as he says on Git’s Wikipedia entry, Git was named after himself, because he considers himself an “egoistical bastard, and I name all my projects after myself”; git is the British English slang word for an stupid or unpleasant person).

Nuevo foro de fotografía: enfocas.es

http://enfocas.es En origen, ENFOCAS, está formado por un grupo de amig@s de Castellón, unidos por su pasión hacia la fotografía. El foro en sí, nace como punto de encuentro de quienes como nosotros, sientan la necesidad de compartir esta afición, a través de las imágenes que podamos aportar, junto con los comentarios, dudas, informaciones de interés o cualquier otro aspecto que pueda surgir a lo largo de su vida.

GNU HttpTunnel: Como saltarse un proxy HTTP

Creo que es la primera vez que posteo sobre una aplicación, pero creo que en este caso merece la pena hacerlo. Se trata de GNU HttpTunnel, una pequeña aplicación que crea un túnel HTTP sobre el que podemos meter cualquier servicio. ¿Ventajas? Pues que al ser HTTP, si nos encontramos en una red que solo tiene salida a Internet mediante un proxy HTTP, con esta aplicación (y un PC fuera de la red), podemos salir de la red con el servicio que más nos interese.

Adiós Gloria

Me ha costado bastante escribir este post, pero finalmente creo que el recuerdo lo merece. Como homenaje, se están recogiendo firmas para dar su nombre a una de las aulas del ESTCE: http://homenajeagloria.uji.es/ El pasado 14 de abril de 2009 falleció nuestra compañera y amiga Gloria Martínez. Gloria fue una de las profesoras encargadas de poner en marcha en 1991, fecha de su creación, los estudios de informática en la Universidad Jaume I. Desde entonces ha estado involucrada, muy activamente, en todos los aspectos tanto organizativos como docentes de dichos estudios. También fue una de las personas más destacadas en muchas de las actividades extraacadémicas de esta Universidad como son, por ejemplo, las jornadas iParty, o el grupo de Amnistía Internacional de la UJI. Además, también destacó a nivel nacional como impulsora de la Asociación de Enseñantes Universitarios de Informática (AENUI) de la cual era Coordinadora en el momento de su fallecimiento.

2009: Odisea con el funcionariado

Tiemblo cada vez que tengo que tratar con un funcionario, es como si te echaran una maldición: De entrada tienes pocas esperanzas de poder hacer el trámite a la primera, sin que te toque volver n-mil veces a tratar con el/la individu@ en cuestión. Una vez te decides a intentarlo, siempre te queda la duda de si ir al edificio público en el que ejerce su profesión o si acudir directamente a la cafetería de al lado (lo cual me hace reflexionar si su profesión es aquella por la que recibe un sueldo, o la que ejerce donde pasa la mayor parte de su jornada laboral… puede ser un tema de reflexión bastante interesante). Por último, si has tenido suerte, los astros se encuentran en la conjunción adecuada y encuentras al funcionario en su sitio, tienes que poner la sonrisa más agradable para que el/la personaje, con su cara de estreñido (o de “deja de joderme, que yo a ti no te voy a buscar a tu trabajo y me pongo a darte por el culo”), se digne a darte un trato poco despreciable y a conseguir un mínimo de información, que con suerte, puede llegar a ser hasta útil (porque hay veces que se contradicen, o mejor aún, se dedican a pasarse la pelota, osea tú, de unos a otros). Posibles motivos de que esta gente se comporte de este modo:

Ingeniero informático, to be or not to be?

Desde hace un par de semanas está circulando una convocatoria de huelga para los ingenieros informáticos. Según comentan en la web, esta huelga se debe a la exclusión de las titulaciones de Informática de las propuestas de en las que se proponen los títulos habilitados para ejercer distintas profesiones. Concretamente se atribuyen a la Ingeniería en Telecomunicaciones muchas (por no decir prácticamente todas) las funciones que ejerce un Ingeniero Informático. Según comentan en dicha web, el Ministerio de Educación justifica esta decisión argumentando que:

GDD MAD 2008… ¡Estuve allí!

{.tt-flickr.tt-flickr-Medium} Fue un día agotador, pero valió la pena. Mucha gente, mucho nivel (no tanto en los talleres, pero bueno) y muy buen ambiente. No voy a hacer más resumenes acerca del evento (ya he leído unos cuantos en un rato), simplemente recomendar que si tenéis la posibilidad de asistir al GDD MAD 2009 no dejéis pasar la oportunidad. Temas principales sobre los que se hablaron: Android (tema estrella sin duda) Chrome AppEngine Gears Opensocial A continuación os dejo un enlace al álbum en flickr con las fotos que tomé.

¿Look & Feel? ¿Qué es eso?

Éste es el aspecto de varias aplicaciones ejecutándose en Windows XP. Como se puede ver en la imagen últimamente las empresas optan por una diferenciación en cuanto a aspecto de la ventana (Look & Feel), perdiéndose la integración a la que estábamos habituados con el sistema operativo. De hecho, en la captura de pantalla, la única aplicación que mantiene el L&F de Windows XP es el Explorador de Ficheros.

Google anuncia Chrome

Tras varios años de rumorología acerca de si Google iba a publicar un navegador web propio o no, finalmente se ha aclarado: su nombre es Chrome. Será un proyecto opensource basado en WebKit de Apple (el motor de renderizado de Safari) y según comentan, incluye un motor Javascript escrito desde cero, con el fin de mejorar el desempeño tanto en tiempo de ejecución como en consumo de memoria, con respecto a los navegadores que actualmente hay en el mercado. Otras características que incorpora son la navegación anónima, un sistema “Speed Dial” como el de Opera o una barra de autocompletado basada en el buscador.

Debian vs. Ubuntu

¡30 minutos! Eso es exactamente lo que he tardado en instalar Ubuntu con incluso más funcionalidades de las que tenía en mi Debian. ¿Por qué este cambio? Bueno, supongo que la edad tendrá algo que ver y uno ya no tiene tanta paciencia como antes. Y es que en mi humilde opinión, disponer de un sistema Debian con todo correctamente configurado, resulta una tarea tremendamente tediosa, además de que si deseas estar un poco al día con los programas que tienes instalados, te implica estar en una versión testing o unstable de Debian, con el riesgo que ello conlleva.

¡Feliz aniversario BASIC!

El 1 de Mayo de 1964 se ejecutó el primer programa en BASIC. Los creadores de este lenguaje de programación, los profesores John G. Kemeny y Thomas E. Kurtz del Dartmouth College, hace 44 años ejecutaron por primera vez un código escrito en BASIC (Beginner’s All-Purpose Symbolic Instruction Code). La búsqueda de un lenguaje potente y sencillo de usar (por aquellas fechas se solía utilizar Fortran y Algol) comenzó en el año 1956, con el fin de facilitar a sus estudiantes el aprendizaje de los métodos de programación.

JavaServerFaces, Spring WebFlow y Struts Tiles, todo en uno

¿Mezclar la versatilidad de JSF con la definición de flujos de negocio de SWF, todo ello con una estética semejante gracias a Tiles? Pues es posible, aunque resulta realmente tedioso y complicado para aquel que es relativamente nuevo a algunas (más bien todas) de estas tecnologías del mundo Java JEE. A esto es a lo que me he dedicado la última semana de trabajo, a intentar comprender el funcionamiento y buscar por Internet la forma de poder conjugar estas tres tecnologías. He conseguido hacerme una idea del complejo funcionamiento de JSF, SWF me ha sorprendido gratamente por la gran potencia que se consigue con tan pocas líneas de código, y Tiles, aunque ni tan avanzado tecnológicamente ni tan sorprendente, ofrece unas posibilidades de diseño visual que unifica toda la aplicación web con tan solo unos poco ficheros.

¿Por qué sigo con Debian?

La verdad es que ni yo mismo lo sé. Si por lógica fuera, ya haría un tiempo que estaría trabajando con otra distribución más simple y en la que la configuración de los dispositivos no ocupase varios días, realizando cientos de búsquedas por Internet y leyendo varios foros. Pero la realidad es que aquí sigo, peleando con el apt-get y actualizando contra la versión unstable de esta distribución. Y tampoco será por falta de alternativas: he probado OpenSuse, Gentoo, Ubuntu, y pese a tener muchas ventajas sobre Debian, les faltaba algo… Puede que sea esa sensación de control y orden, o bien un cariño adquirido durante nuestras largas horas de pelea, pero la verdad es que por más que lo intento no soy capaz de dejarla.

El escritorio del futuro

Ésto me lo acabo de encontrar navegando por internet. La verdad es que es muy impresionante: Se trata de un sistema semejante a un escritorio físico, de los de verdad. Tendremos una especie de mesa con los documentos, los archivos sobre ella. Con el ratón podremos moverlos de un lado a otro de nuestra mesa virtual, y gracias a diversos gestos, podremos agruparlos, apilarlos, ordenarlos, moverlos, y multitud de opciones de la Vida Real, pero con nuestro ordenador y de un modo virtual.

Mundo Java

Desde hace cosa de unas semanas, el mundo Java está cambiando notablemente. Por un lado, Sun publicó Java EE 5.0, junto con Sun Application Server 9.0, primera versión estable del proyecto Glassfish, que pretende implementar un Application Server libre para la especificación de JEE 5. En esta nueva versión se ha incluido, a parte de un cambio de la nomeclatura para las versiones, la especificación de EJB 3.0, Java Persistence API, una mejora en el desarrollo de webservices o JSF entre otras características.

Hipocresía Total o Semana Santa

Acaba de terminar la semana en el que mucha gente se auto-inflije castigos a fin de contentar o conseguir el favor de la deidad en la que creen. Es curiosa esta tradición y lo mucho que se sigue por los medios de comunicación. Hay gente capaz de hacerse auténticas animaladas, como clavarse unos clavos en pies y manos o flagelarse la espalda (cuanto más sangrienta quede, mayor y mejor es tu fervor religioso).

Magdalena a la valenciana

Parece que alguien ha tenido la original idea de que el mejor final para los sensacionales y espectaculares monumentos que son las gaiatas es… ¡¡¡¡el fuego!!!! Ahora lo único que queda es que se salve algún ninot 😉

Reencuentro después de 11 años

Ese es el tiempo que hacía que no nos encontrábamos los compañeros de 8º de EGB del colegio Izquierdo. Sí que me había encontrado con alguno de ellos alguna vez, pero no así como anoche, todos juntos recordando las muchas anécdotas que vivimos durante aquellos años. Conforme me acercaba al punto de encuentro, me iba encontrando más y más nervioso, pensando en quién y cómo encontraría y si los reconocería (11 años es muuuucho tiempo), pero cuando llegué allí pude ver que la mayor parte de compañeros y compañeras que había tenido estaban bastante cambiados, pero la mayor parte eran reconocibles. No acudieron algunos de los que me hubiera gustado volver a ver, pero espero que no pase mucho tiempo hasta que me los encuentre por ahí.

2005 New Year's Eve at London

¡Feliz año 2006! Un poco tarde, pero por fin he terminado la entrada que quería escribir sobre el viaje de nochevieja a Londres :-D. Es un pequeño resumen de lo que hemos hecho durante el viaje: Día 1 – 28 Diciembre 2005 Tras levantarnos a las 6 de la mañana, coger el cercanías hasta Valencia, desde allí un autobús hasta Manises, cogiendo un avión hasta Stansted, y finalmente un de nuevo un autobús hasta Liverpool Station nos encontramos con Yolanda que nos muestra el camino hasta la residencia de estudiantes donde íbamos a pasar los siguientes días de estancia (previa caminata de 20 minutos con trastos en la mano y un autobús). A estas alturas María ya había perdido el saco de dormir y la botella de champán que traíamos desde España 🙁

Web 2.0

Es el término de moda en los entornos de programación web: AJAX, consistente en la interacción de las tecnologías JavaScript, HTML/CSS y XML. Aunque en sí misma esta conjunción resulta bastante reciente, las tecnologías implicadas son ya viejas glorias entre los programadores. El concepto básico en el que se basa esta técnica de programación es bastante simple: cuando se produce un evento en el navegador web que está mostrando el código HTML, en vez de realizar una petición HTTP al servidor, tal y como se suele realizar normalmente, se crea un objeto JavaScript XMLHttpRequest, encargado de realizar dicha petición, la cual devolverá unos datos que serán pasados al manejador del evento que se haya definido.

Google ofrece IM/Jabber

Pues parece ser que los tan sonados rumores de que Google iba a ofrecer un servicio de mensajería instántanea se han hecho realidad. Es más, también se ha confirmado que utiliza el protocolo Jabber, lo cual supondrá un fuerte empujón a esta tecnología libre. El nombre con el que se ha bautizado este servicio es Google Talk. Podemos ver que ofrecen un cliente, por el momento únicamente para sistemas Windows, con el cual podremos realizar tanto conversaciones vía texto o vía voz.

¿Alcohol = Diversión?

El Sábado por la noche, camino de vuelta a casa sobre las 6 de la mañana, después de una noche de fiesta con los amigos, pasaba por delante de la biblioteca de Rafalafena, desde donde se podía observar el cielo totalmente despejado (cosa bastante normal en las noches con viento, como fue ésta), teniendo una visión impresionante de la constelación Cassiopea justo encima del edificio de la biblioteca. No sé muy bien por qué, pero esa situación activó el «modo meditación» durante el resto del camino, lo que me hizo pensar en un concepto que se suele dar por supuesto y es el asociar el alcohol con la diversión.

Magdalena Vítol y sus daños colaterales

Al final todo lo bueno llega a su fin, y las fiestas de la Magdalena no han sido una excepción. Tras 10 días de frío y sufrimiento por pasarlo bien, volvemos a la rutinaria vida del trabajo diario. En general han estado bastante bien, aunque como siempre, he acabado bastante “quemado” con la organización y lo elitistas que pueden llegar a ser, pero bueno, prefiero no escribir sobre ello, no creo que ni tan siquiera lo merezcan.

Sospechas conspiracionistas

Hoy he podido escuchar y ver en diversos medios de comunicación el anuncio de que la NASA realizaba el lanzamiento de su última misión espacial, Deep Impact, que transportará una nave cuya misión será estreyarse con el cometa Tempel 1 a una velocidad de nada menos que 37.000 km/h. El aplastante suceso ocurrirá el 4 de Julio del presente año, a una distancia 431 millones de kilómetros, un poco lejos para que cierto país pueda usar la explosión como si de fuegos artificiales se tratasen para celebrar la fiesta nacional que acontece el mismo día.

Fin de Año en Benidorm

¡Feliz año 2005 a todo el mundo! Hoy mismo he llegado de pasar este mini-puente de fin de año en Benidorm con los colegas de Benicassim. La verdad es que no ha estado nada mal el fin de semana, a pesar de haber trabajado hasta instantes antes de coger el coche, aunque hubiera sido mejor ir un poco más descansado y salir un poco más tarde el Domingo, ya que tuvimos que dejar las habitaciones sobre las 10 de la mañana, por lo que el Sábado tuve que acostarme no muy tarde para poder conducir en condiciones a la mañana siguiente (mejor no arriesgar con el coche).

Inicio astrofotográfico

Ya llevaba tiempo tratando de empezar con la astrofotografía con webcam, pero entre unas cosas y otras siempre lo dejaba para otro momento. Al final el pasado día 6 de Junio me decidí a intentarlo. Tras unos cuantos intentos por usar un adaptado hecho con la funda de un carrete de fotos, acabé sujetando la webcam al portaocular con una simple goma que me dieron mis abuelos la última vez que estuve en Madrid (¡hay que ver lo que a uno le puede hacer falta en algunos momentos!), lo cual, aunque no es una forma muy ortodoxa, dio buenos resultados, como se puede ver en la foto anterior.

Mono: ¡Hola Mundo!

Para retomar de nuevo la marcha del blog, he decidido comenzar mostrando algunos ejemplos de programación en C#. Por el momento os dejo el obligatorio programa para todo aquel que empieza con algún lenguaje. Hola Mundo! using System; namespace HolaMundo { public class HolaMundo { public static void Main (string [] args) { Console.WriteLine ("Hola Mundo!"); } } } Sencillo, ¿verdad? Tiene mucha semejanza con Java, exceptuando que las palabras reservadas difieren y que Java no posee el concepto de espacios con nombre o NameSpaces, entre otras.

Funcionamiento de .NET

En los artículos anteriores hemos hablado de conceptos como CTS, CLI (CLS), IL o JIT, los cuales pueden resultar bastante confusos. A continuación daremos una aclaración del significado de cada uno de ellos, y explicaremos su función dentro de la plataforma .NET, para lo cual se hará una explicación más a fondo de su funcionamiento. Hemos comentado en artículos anteriores que cuando compilas un código fuente a un binario de .NET, éste binario no contiene código máquina de la arquitectura en la que se compiló, sino que se genera un código para una máquina virtual, al estilo del bytecode de Java.

Pasado, presente y futuro de Mono

En este artículo os comentaré un poco de historia sobre la evolución de la tecnología .NET y del proyecto Mono, que a pesar de su corta existencia, ha sido un proyecto muy vivo, y en el cual han participado y participan muchas personas de todo el mundo. .NET es una tecnología desarrollada por Microsoft, que ha sido estandarizada en el ECMA (C#, CLI), ofreciendo la posibilidad de crear utilidades que trabajen con este entorno, sin miedo a que un día Microsoft interponga una demanda o que simplemente cambie las especificaciones a su antojo.

¿Qué es Mono?

Mono (http://www.go-mono.com) es la implementación libre de la tecnología .NET, capaz de correr en Linux, sistemas *NIX, MacOS, y Windows. Gracias a este proyecto, los usuarios de sistemas *NIX podremos contar con los últimos avances en lo que a tecnología del software se refiere. Y es que Mono no es simplemente un compilador y su correspondiente runtime, sino que también se incluyen una serie de utilidades que nos facilitarán mucho la vida a la hora de programar, como un explorador de documentación –MonoDoc-, o un mini servidor web –XSP-, con capacidad de procesar programas escritos para ASP.NET o de ofrecer un servicio web para el resto de Internet, entre otras.