Posted July 12th, 2008 by quique
BitTorrent is a P2P protocol to share files. It is quite cool to share quite big files such as High Definition multimedia or ISO files. An eBox user asked to download eBox iso files not using HTTP but a P2P protocol because of his bad network connection. I completely agree in this matter, how many of you does a HTTP download crash on the middle or become corrupt (uhmm, wget should work in this matter…).
Well, I decided to create a HOWTO (in Spanish) for my mates in Pulsar about how to set a tracker up. And now it is serving as coordination point among bittorrrent clients to download eBox isos
. So far 23 people has downloaded completely eBox using this method.
How beautiful is sharing!
Posted May 18th, 2008 by quique
Everyone who has met me a little in a computer atmosphere will understand how I’m really fed up with programming language arguments. They are totally biased by people that really love his language, they think they own the language and stand up and face the argument with vacous subjective sentences. Anyway, my response about the critical question “Which programming language is better?” is “It depends on the problem to solve”. An example, the other day two colleagues of mine spend their time on knowing how to parse and substitute a regular expression in Ruby or Python (I just don’t remember though). Finally, the solution was found after a long time (don’t remember how much but not little). I asked them why not to use Perl (I just remember what Perl stands for “Practical Extraction and Report Language”) to handle regular expressions. I think one of them was impressed by Perl solution
.
I do not love any programming language since they are just tools for me to apply solutions to problems. Sincerely, I don’t want to start up a flame or whatever. I really like strong (safe) type system likes Ada or Python does but I found useful weak type system such as Bash or Perl (in some way). Every programming language has their pros and cons, I said that since I have learnt and used more than 10 languages using 4 different paradigms…
Anyway, I want to share the following question: which language should I learn the basics and principles? Any comment will be appreciated.
I have just started with Python (Dynamic OO language) and Erlang (Functional language).
Update: There is an article talking about the same thing. I think I agree with Martin Fowler in this matter…
Posted April 5th, 2008 by quique
After 3 months with no time to write a single post, I’m going to write one at last.
Firstly, I just updated my about page with my musical taste. Some of you may not know my love to the music. Music is for me another leg to support my life and I am constantly listening to new music and trying to play as well
as a way to enrich my life.
From my computer side, last months have no interest at all until this last week that we were doing some extreme-HTTP, learning a lot from this protocol and especially the proxy . We are working on setting up a reversed HTTP proxy to serve several (not fixed) webservers from a single one giving access from the Internet to those servers which place in several different intranets. To do so, we were using Apache Web Server and some of its modules, mainly mod_proxy and the powerful mod_rewrite. Furthermore, to set up our scene we require to research about DNS protocol and how wildcards are handled by it.
Very exciting, out of the common boring tasks. I hope to publish our results very soon
.
Posted January 26th, 2008 by quique
Hi people!
One of my colleagues told me a few days ago to write a post about a simple search for a feature I needed in Trac. Trac is a project manager tool which is used to keep in a single place everything that a software project may require including bug tracking, repository integration and wiki-style information. I was analyzing one of our projects which produces a bunch of diagrams that I wanted to show in a wiki page.
To do so, I thought to convert these diagrams, made with bouml software tool, to SVG images and add as an attachment to the wiki page. I realised trac 0.10.4 does not support svg rendering. So I must have switched to PNG images. To display that attachment, Trac provides a series of macros, written in Python, to render that files. In our case, Image macro must be used. Reading its documentation, I found that macro could read directly from the source in the repository. Great! It’s not necessary anymore to add/replace any attachment in wiki pages, just setting as parameter the right path in the repository for the image to be displayed.
That’s all I want to share with you today
Posted January 12th, 2008 by quique
I’m gonna be original… errr no… anyway I’m not. Let’s gonna talk about the last book I read. Yeah, that’s amazing but I’m waiting something right now and I have to waste my time trying to spread my word
.
So emotional intelligence is a quite new concept in psychology from 1920s but until the publication of Daniel Goleman’s book Emotional Intelligence: Why It Can Matter More Than IQ the term was not widely spread. This book is a quite interesting introduction to what emotional intelligence is, explaining from the chemistry of the emotions and how they affect us till how to handle them, if possible. With simple examples from marriage to work place, reflexions about emotions are done. Having said IQ is not all, but emotional attitudes which make somebody succeed in the end. This makes you happier as well as the people around you
.
I find it quite interesting in every point of view, since the opposite sex thoughts until how to manage your boss (with positive advices
). I have learnt a lot about a field that everyone should not be an illiterate. Here it is, my first book recommendation have arisen.
Posted November 19th, 2007 by quique
Last Saturday, I was at the aKademy-es event. It is a KDE-based conferences which allows people, who are developing or interested in this desktop and framework environment, to share their experiences and knowledge.
Some of the talks were interesting, others curious and, finally, hilarious XD. After the hard work day listening to all these people talking about their own development projects, we have a social dinner. It was hosted at a mythic restaurant in Zaragoza (Casa Emilio). We discuss about anything you may think, such as computing, hacking, politics, every conversation was raising its level while the wine bottles was decreasing its own one
. (How good the stewed deer was). Afterwards, everything flaw to the Casco Viejo and we lost ourselves in that crowed place.
Sixty or maybe seventy people was there. I met some people from KDE-es, Oqotech and such. It was really nice and a complete success event. Thanks to the organization and the promoters (We were in there
)
PD: I think I was the only Gnome guy in the lab
Posted October 29th, 2007 by quique
Hi there people!
eBox is not intended only to be used by sysadmins around the globe in a easy and confortable way. eBox is developed as a very extensible application based on modules. These eBox modules manage a determined service, currently there are 25 official modules and one done by the community.
In order to enhance eBox current modules and making easier create new modules, we had developed a new development framework. It is based on a design pattern, called Model-View-Controller (MVC), where the view are the Mason templates which describes the eBox face using HTML language, the controller are the CGIs which interact among eBox platform and the view. The eBox platform are, basically, a set of modules and helper libraries which are developed to manage a service or a computer resource, such as networking.
Almost every eBox module requires a set of data entered by the user to handle the service. This data is now stored in different data models which interacts among other models to gather the required information by the eBox module using the Observer pattern. These interactions are managed by a singleton class called Model Manager which also stores all information related to any data model in eBox. The view is a set of Mason templates handle in a Object-oriented way in order to allow reusing. Furthermore, JavaScript and its Asynchronous Request (AJAX) to the server allows us to provide an eye-candy admin product.So, the parameter configuration in eBox are stored as a singled row table and displayed as a HTML form element (the Viewer). The remainder part is the Controller, that is, the junction between the models and the view that here it’s represented by CGI processes spawned by an Apache perl server. These CGIs manage the actions to perform on the model and what information is required by the viewers. Therefore the new developer does not require to learn how CGI structure works or the complicated HTML system but only developed the data model with its logic.
Making more magic with another wise component, called Composite, are introduced. This element is a container of models and other sub-composites which chooses the layout (tab, select, top-bottom…) of the components on the page. Moreover, detailing only the composite description, that is, its content, the framework is in charge of printing a pretty HTML page to interact with the user making as complex structures as developer wishes.
Stop make this more boring. Here I show a screenshot about the refurbishing of our DHCP module to integrate within the new MVC framework:

There are more information on the eBox developer guide if you want to take a look on how to develop an eBox module using the new eBox developer framework.
Posted August 21st, 2007 by quique
Hi there!
I’ve been developing eBox for eleven months now and it still surprises me every day. I’ve been developing an event architecture for the platform and a brand-new model-controller-view (MVC) to apply at eBox along with other eBox developer, Javier Uruen. Yes, design patterns can be applied as well to administration tools, it’s software anyway. Another post talking about that will be posted eventually.
The event architecture is split in two components: Watcher and Dispatcher. The former is the responsible to know if an important event has happened within eBox to get noticed by the eBox admin(s), these events are kind of hard-disk, eBox aliveness or service running checkers. The latter is in charge of sending the events submitted by watchers to the BOFH.
Here is where eBox talks to you. Two dispatchers have been developed so far, one logs every event to the eBox log system and the other one sends messages to a Jabber identifier (JID) using XMPP protocol. That is, eBox can talk to the admin about what is going bad on eBox.

The brand new eBox module that will be out at 0.10 eBox releases supports configuration as well. It is done using the brand new conception of developing eBox. If only the configuration were required, the configuration framework would have done within days, since just data model is required to be achieved it.

eBox can still take a step onwards!
Posted June 16th, 2007 by quique
Maybe you don’t know, but I’m that kind of people you might hate since my ideas seems quite controversial. Indeed, I have normally discussions (rarely arguments
) related to some issues or topics that you may think they are reasonable. Everything worths a discussion
.
Firstly, politic. I’m a rather political person who really likes to know what happens around the globe, near far no matter how (yeah!). But this blog is not intended to be another boring political blog but an utter boring tech blog XD. Thus as I said above, my passion is discussion. The problem, as almost always, is the education that we have received and how this has biased our thinking.
I’ve already had some issues related to UML, design and such. For instance, lines of code is not a well measured to know if an application is good or bad. Neither it determines the programmer skills. The final solution should be always extensible, scalable and easy to maintenance. The last is the most important since code is read more times than written. But these three things cost effort. And effort is not a worth value today, fast and faster an application should be up and running. You don’t want to waste time now but then, finally you need to waste your time in some way. There are many projects to start out but they are eventually not ended up.
I will write down soon, any discussion that my colleagues and I take, will be posted here. Why? In order to reveal the real reasons to choose this and that and to find out how influenced by our past we can be.
Posted May 19th, 2007 by quique
I’ve been for a couple of days working hard to get know about Web services using SOAP in order to provide machine-to-machine communication nowadays in the Internet, Web services has become a key. It provides an application independent framework which works over standard protocols such as HTTP, FTP or XMPP (avoiding firewall related problems). It also give the opportunity of using Service oriented architecture without any implementation knowing.
Here we are,offering Web service to eBox is our foreword. That is, allowing not only human interface via browser but also machine interface. The main advantage could be eBox-to-eBox interoperation relying on distribution. Dare to say, it’s not an easy task and is still on researching.
For implementation details, I’m just using the incredible SOAP::Lite Perl module to offer eBox SOAP interface over HTTPS using mod_perl.
More details are coming…