Iniciar Sesion

Planet

Point Cloud Library

Point Cloud Library (PCL) es un framework para trabajar con nube de puntos, ¿pero qué es una nube de puntos? Se considera una nube de puntos a una serie de datos en un espacio de cualquier número de dimensiones que se encuentran dispersos. Típicamente hablamos de nube de puntos en espacios 2D/3D cuando nos referimos [...]

Nuevo esquema de Predesys

He editado la sección Acerca De, añadiéndole una imagen de un esquema de Predesys. Este esquema es más sencillo que el de la sección Arquitectura, por lo que quizás se pueda visualizar mejor el proyecto.

Crear una marca para ARToolKit

ARToolKit es una serie de herramientas para trabajar con realidad aumentada, principalmente haciendo uso de marcas. Gracias a estas marcas una simple webcam puede montar un entorno 3D simplemente comparando la marca en una imagen con la marca patrón, con las deformaciones de la marca en la imagen, ARToolKit puede proporcionarnos la información de traslación [...]

GOOF: Get Out Of Facebook

GOOF is the acronym of Get Out Of Facebook. It is a Ruby on Rails application I developed as a part of the course Project at the FUNP university.
It is more of a technical demo than a full-fledge application. The objective was to gain some valuable experience developing Facebook applications.
It is built on the top of Koala, a Ruby library for Facebook applications.
The code is available here
And the application is running here

Error al arrancar KDevelop 4

Ayer se me quedó el ordenador bloqueado mientras programaba y no sé si se debe al propio disco duro o a la inestabilidad de algún programa, quizás mi propio programa (espero que no sea esto). Pero lo que quería comentar es que al reiniciar e intentar arrancar KDevelop, me sale un diálogo de alerta que [...]

Distributed rendering of an image across multiple computers with DPovray

Let go back a couple of months. Let go back to the start of the academic year. September 2010.
I enrolled in the Distributed System course. I was curious to see how big applications can use multiple cores – a cluster of machines – to solve complicated or massive problems.
So as part of the course we had to build a distributed system. Each team consisting of three persons. The technology that we had to use was Java and Corba.
Now if you google what Corba is you will understand very well what my mind thought. In one word: WTF?
Corba is like a Balrog: Ancient, big, heavy, slow. Pure evil.
So I did what I always do. I did a search for alternatives. I didn’t had to search much to find better ways to solve the problem concerning the communication between processes on different machines. Specially, above all, I wanted to avoid using Java. I wanted to use Ruby and BrB.
So I spoke with the professors. They told me that I could do the project in any technology that I wanted, provided that I can find a team that would agree. No problem, I thought, there must be someone who wants to try something new.
No fucking soul answered the call. They said that they only knew Java, that they didn’t wanted to learn ruby, that everybody was going to use Java, etc.
My question is: What good is it to learn a technology that you will never ever use because it is so ancient that no new developments are being made? What good is it to use a technology that is slow, error prone, untested, undocumented, heavy and the complete opposite of agile?
The answer is: They are not software developers. They are sheep.
I had no choice but to join the sheep and build the software using Java and the ominous Corba. It took 4 months to build an application that rendered povray scenes using many computers. 4 months. 3 developers.
One would be expect a really good piece of software. So long time. So many people. So much ‘documentation’ in the course slides about Java and Corba. I will say that our application got a 19/20 in the mark, almost perfect. But for me, in the range of good software, it was a complete and utter failure. 0 points. No bullshit.
Here are some reasons:

  • Not a single test case.
  • We used Subversion. Oh man, I can’t count how many problems we have because of retarded SVN.
  • We used Corba. Seriously, google about Corba. It creeps the hell out of me.

And that are only the software part of the problems. I haven’t talked about the methodology. It was almost a joke. First we develop the working software. Then we write the documention – flow diagrams, class diagrams, etc. The test part was irrelevant, nobody did testing.
Now, if you are with in the agile way of developing software you must be feeling a heart attack. We were wasting days writing flow diagrams – which are supposed to help us when we START the development – AFTER completing the software. Completely absurd. Retarded.
After 4 years of academic projects I can say that today universities need to rethink how they teach. They need to do it asap because the modern world has no use for the people they are training.
At the beginning I told my professor that even if I was going to do the Java project, I will keep developing the ruby alternative. I wanted to learn Ruby.
That was probably one of the best decisions in my life. It is the reason why this blog is alive. I read the RSpec book and tried to follow the test driven methodology. I had a lot of mistakes. If I now look at my code I think is some serious shit. That’s good, it means I am learning.
But I didn’t finished that ruby project. I started other projects – based in Ruby too. I read a lot about Rails; the Web development with ruby on Rails is a very good book. I learned about Capybara, Steak, Cucumber, MongoDB, Redis, RVM, Nginx, Passenger, Heroku, Stackoverflow, Sinatra, Git, RESTful services, HAML, Markdown, JSON….
Fiuu, man…what I have learn this year, all by myself, is much more that what I have learnt by my formal education in 3 years. I need to make a blog post about education, but now let focus on DPovray.
A week ago I restarted the project. Considering all the technologies that I learnt I decided trying something new: Sinatra, Resque and Redis. In a week I finished what it took 4 months and 3 people to do it in Java. I had no prior knowledge of Sinatra, Redis or Resque.
I think the beauty of Ruby is how simple it makes things. It let you focus on choosing the right algorithm, the right way of doing things and doesn’t get in your way.
The Java algorithm to merge the images used Swing. It was a hardcoded piece of shit of around 500 lines of code. Heavy. Slow. If you didn’t programmed it you won’t understand what was going on. Actually…I didn’t neither.
The Ruby algorithm that I used is capable of merging 200 partial images – total image being 2000x2000 pixels – in less than a second. 4 lines of code. 4 LINES! No use of files. Just an in-memory tail operation thanks to clever use of TGA images and Ruby string manipulation magic.
Oh, and I used all the libraries I could find to solve my problems. If there is a library that simplify my job I use it, for sure! I started with tests and ended with working software. The documention I have is what the user needs.
I present you DPovray: https://github.com/Nerian/DPovray
I am sure it could be done better. I am sure it has a lot of things to improve. Raise an issue at github or fork, you can count on me acting on your feedback. For I want to master Ruby land and I do want to be a good developer.

Sistema de actores

Tras publicar varios artículos en IberOgre, he decidido retomar el trabajo en Sion Tower con el objetivo de tener una versión inicial a finales de julio. La primera tarea que he llevado a cabo es una refactorización del sistema de actores con el objetivo de hacerlo más extensible y evitar la duplicación de código en

Ley electoral española: propaganda

Como todos sabemos, mañana domingo 22 de mayo se celebran las elecciones municipales y comunitarias en España. Este pequeño artículo viene a poner en evidencia un artículo de la Ley Electoral Española, incluido en la Ley Orgánica 5/1985 19 de junio, en lo referente al Régimen Electoral General. Tal vez os habéis preguntado, como yo [...]

Felicidades a los ganadores del CUSL!

Mi enhorabuena a los ganadores de este concurso, que en realidad hemos sido todos. Para mi ha sido toda una experiencia y sobre todo he aprendido mucho de los demás participantes. Espero que este tipo de actividades concursales se amplien para dar cabida no sólo a estudiantes universitarios sino también aficionados o profesionales con ideas nuevas que contar (tendría que matricularme en algo para poder participar el año que viene! ).
El proyecto STILC sigue adelante, y aquí os dejo un póster con los resultados del Máster de Ingeniería de Computadores y Redes (MICR) que podreis ver en el campus de verano CEI BIO-TIC Genil. Trata del contexto en el que surge STILC (la parte del compilador). Si estais interesados en un Máster en TIC os sugiero que vayais a este acontecimiento, el 1 de Junio en la ETSIIT.
Póster HEPICA

Distribuir contenido

Colabora