Posts

Showing posts from January, 2007

Linux Kernel Internals...

Have you ever wanted to know the Linux Kernel Internals? Well, today, while browsing the web, I came across this article . It is an interview with Jens Axboe, the hacker that launched the development of the 2.5 branch of the Linux Kernel with his rewrite of the block layer. If you ever wanted to understand a little more about how Linux works, just read the interview. It is well worth the time it takes to read it. In fact, I'm know installing the kernel 2.6.19 on my Laptop and I'm following some of his advices, specially the notes about I/O Schedulers. What do you want? My Laptop is a 6 years old machine: if I can squeeze a little more performance out of it, I will!

The Community

Today I was browsing through my usual RSS feeds and I ran into this one . It is a presentation about "How To Herd Cats and Influence People". Jono is right on the money: the community is the key to keep a project alive. In fact he is even righter when he mentions that the process should be defined, not a peace of bureaucracy that no one wants to follow, but a simply defined. I'm saying this because I'm trying to contribute to Rhythmbox and I'm having difficulties on how should I make things. You see, when I involve myself in a project I like to respect the already made decisions. For instance: I don't want to start immediately by questioning the chosen architecture. The problem is that if I don't understand the architecture it will be difficult to contribute. What's there left to do? Well, I'll choose one implementation, the one that is quicker and that doesn't seem to break the application's architecture and move ahead; submit the patch an

Thesis Progress... or lack of...

As you already know I'm writing my Thesis. Facts are that I haven't made any progress in it and I believe I should really channel all my energies to it. It is almost the end of January and I want to end it as soon as possible. The problem is that it has been some weeks since I have written anything on the Thesis. It is not that the subject isn't interesting, but since I shot for the impossible for the given time frame I'm writing about what I wanted to achieve. Facts are that I didn't achieve my end goal and that makes me frustrated to a point that I can't write about it. I guess the rage needs to build up before I write a single line in the Thesis...

It is not the Language: It's the Library!!!

In my last post I said that it was time to brush up my C programming skills. Well, it turns out that my C programming skills are way OK. The problem is that I don't know GNome's APIs. It's like when you have one of those enlightening moments when someone explains you how to do something without having to do a Marathon before. I'm always saying: "Developer, know thy tools!". It seems this sentence is now haunting me because I don't know GNome's APIs and I'm paying the price: I end up look, searching or even reinventing something that has already been done all over again. I know most of Java SE APIs by hart, their patterns and how they should be used. I know them so well that I can even abuse of them to my benefit. In fact, it is not the first time I go to Java's source code to see how something is done so I know if I can use it in a given way. In fact, the last time I did this was just a couple of days ago when I wanted to see if the Preferences

I need to brush up my C Programming Skills...

It looks like I have been Eating my own Dog Food for too long. I'm saying this because I usually make new code using code that I have already written down. This makes things easy: the principles behind the code are almost the same (if we don't factor in the natural evolution that comes with Age and Experience); the architecture is know; the flow is know and so on. I'm trying to add a new feature to GNome's Rhythmbox application and I'm finding out that I'm a bit lost in their source code. It is a mix o C, with object oriented support built from scratch, and Python. Problems? Well, I don't understand their architecture and I have never written anything serious in Python. End result? I'm lost :-| For me this means that I need to brush up on my C skills and also to learn Python. Maybe this was just the excuse I needed: a worthy challenge that would force me to dig into someone else's code.

Beating an RDBMS...

My latest assignment at work is to try to make a dedicated storage system that we can use to be the performance of a RDBMS when making statistics. I know it seems strange, but the first tests show that a dedicated storage system can be something like 5 times faster then a RDBMS, even without optimizing the storage. It goes inline with a recent article from the MIT guys that indicates that for specific applications a dedicated storage system can be up to 10 or more times faster then a conventional RDBMS, even if it is a really expensive one. Well, I've known this all along: the RDBMS needs to be sufficiently generic and if you know the nature of the data and the operations that are going to be performed you can always make something faster. The problem with attempting to make something faster is that you will have to solve some of the problems that an RDBMS already did. No, I'm not talking about Transaction Management, but concerning how data is store. You need to structure you

Learning New Languages

I think it is about time to start learning a new programming language. I think it has come a time where you should really use the best tool for the job and not just reinvent the wheel just because your language doesn't do a certain thing. There are many languages out there that I wanted to try, like Ruby and Python. But what I'm also pondering to try C#. I have always delayed this because C# first seemed like a clone of Java, it didn't ran on Linux and it wasn't truly multi-platform. Today I believe I should know its special constructs if I ever need to use it, because everything else looks very similar to Java and C++. Is like 15% is new, everything else comes from other languages. As with any new language the main step in the learning path is learning is API. Like Java, C# has many modules that address many things. Knowing at least some of them would be good. This is even more true for someone who has been working in the same place for 7 years and sees a dark future a

Blender...

Do you know a tool called Blender ? If you don't maybe it is about time that you do. If you are interested in Graphics, 3D, High Quality Rendering, Physics Engines, Game Engines, Ray Tracing and others of the same kind, then you are a Graphics Geek. Well, at least I think that is what geeks that are interested in Graphics should be called. Am I a Graphics Geek? Well, probably not fully, but I've always found interesting the world of Graphics. It all started at the University when I had to develop a Z-Buffer Implementation, coupled a a 3D Modeling tool. You see, I went the extra mile. For a simple project where you shouldn't spend more then 40 hours I ended up spending something like 60 hours and ended up with a tool that even made objects by Revolution, that is, you draw a polygon and a line and the engine would warp the polygon around the line making quads as it went by. What really amazed me at the time is that this is an area were you could always attempt old techniques

Maven and TestNG

Yesterday, while browsing through the World Wide Web, I read a couple of articles. The first one talked about Maven. The second one talked about The Top 12 Productivity Killers in Development Methodologies . I was captivated by Maven and intrigued by the second that I decided to blog about Maven and TestNG . What is Maven? Well, I can quote what is written on its web site : Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. What does this mean? Well, it means that you declare your projects dependencies and Maven will take care of all the work, even if it involves downloading the dependencies from the Web. Although this might seem a simple functionality, if you ever worked with huge projects, specially if they are component oriented projects, you can see the benefit. Imagine that you have a tool that

Programmers Block...

I have always been a programmer. I started programming in BASIC with the ZX Spectrum . Incredibly as it might sound I even wrote a game for that computer. Over the years things evolved and know I would like to say that I use the language that serves best the needs at hand, but facts are that I do most things in Java. That is the language that I use at work. At home, for my pet projects, I choose language and it goes from C to Java. Lately I've been looking a Python and Ruby, but I haven't really tried them out. At work I have evolved to what I call a "Word Programmer". What is a "Word Programmer"? Well, it is someone that makes highly detailed specifications that others follow when programming. I call it "Word Programmer" because "Word" is the name of the Text Editor that the company I work for forces me to use. The idea is to develop software from very high-level languages: English and UML (Unified Modeling Language). It is an interesti

My Shared Links..

I don't know about you, but I read a lot of RSS Feeds on a daily basis. I use Google Reader for this but recently I found out that it allows me to create a list of shared items. I found the idea interesting so I'll start trying to use it. The idea is simple: if I find a post, news, article or whatever on the web that I find interesting or funny enough I'll add it to my shared items. These will be available in this page (you can also find a permanent link on the right side of the blog, under My Links and it is called " Interesting Links "). This way you can keep track of what I find interesting, but be warned that you will get a "Filtered" version of what I find in the RSS Feeds I read that is interesting. You may not like it, but you won't know until you give it a try!

Writing a Thesis... a Revelation!

Writing a Thesis is turning out to be a worthy challenge. It is like writing a book! You have to make it fluent and coherent from start to finish, it has to be well written and an enjoyable reading. On top of all this you have to be talking about things that are complex, new and hard to understand. Its like mixing water with oil: the two don't get along and even if try really hard to mix them they won't stay together for too long. I haven't written a single sentence in my Thesis for a long time. You see, the only things I have to do to finish it are: write the Thesis, deliver it and defend it. It seems simple but I'm finding it hard to focus on the task at hand: writing it! I always wanted to write some articles or even a book, but if I can't write the Thesis it is going to be hard. I also believe that writing articles or books can be a lot easier then writing the Thesis because I'm writing a text that should teach or help someone grasp a concept. In the Thesis

To Hack or not to Hack?

I 've been looking at existing bugs in GNome's Bugzilla. I was amazed to see that there are several bugs related to showing Album Covers in Rhythmbox . I'm starting to think: "Is it worth to make a patch to show the art embedded in MP3 Files?". A fact is that GStreamer supports it, but the latest version of Rhythmbox from SVN doesn't. It is also a fact that there are already bugs that are addressing the issue and even using a Metadata extension in Rhythmbox to show the Album Cover in the notification message. My efforts might be a little late, that is, if they show it in the tray icon then it is a lot easier to add support for embedded images. My Conclusion: I went over my head in trying to make a patch for something that it seems others are working on, or at least on parts of. There is already a Bug that handles showing the Cover Art in the notification area. The changes proposed in this bug have been committed so I'll check what they have been doing. If

Hacking Problems...

Today I started hacking Rhythmbox. Things aren't going so well. I expected to be able to quickly hack the new functionality into it but I ran into problems. You see, although Gentoo (my Linux distribution of choice) has GStreamer 0.10.8 marked as stable, which is the GStreamer version that includes the new GST_TAG_IMAGE that I need to show the pictures embedded within the MP3 files, it has the base plug-ins of GStreamer that still don't provide this tag when the ID3 tag on the MP3 file has an image. I still have to think weather I attempt an upgrade, with all the risks it involves, or weather I simply give up on trying to make a patch for this. It seems to be rather simple after having GStreamer obtaining the image data: I'll use the GDK-Pixbuf library to turn it into something that can be used by the Album Cover plug-in of Rhythmbox to convince it to show the embedded picture. Guess it will take more hacking to get it done, but I don't want to give up just yet.

Hacking GNOME

Have you have contributed to an Open Source project? Well, I have and it was so long ago that I can't remember. Although I have been using GNU/Linux on my laptop since the day I bought it, I have never really used it to contribute anything. The last time I contributed was when I was in the University. I don't think it makes sense to use something that is really free and only give back to the community more "Requests for Improvements". I use the GNOME Desktop . Why? Well, I like the way it looks, the way it feels and its User Interface philosophy. But I don't want to get drawn into one of those Desktop Environment discussions about the advantages or disadvantages of each Desktop Environment. That's not the goal. What's the goal? Well, there is one functionality that I've really been missing in Rhythmbox . What is Rhythmbox? Well, a media player and organizer for the GNOME Desktop, that takes its inspiration from several tools. The functionality that I m

Time for Some Swimming

As I already mentioned, I'm a little overweighted. As part of the New Year's Resolution to live my life to its fullest I have decided to start Swimming. By this I mean to start doing some one hour sessions in a swimming pool. Although during the first sessions... well, probably the first month, I won't be able to swim for an entire our it should be a good way to: burn some calories; discharge some stress and get into shape. Why Swimming? Well, I used to be in the pre-competition in in this area. What does this mean? I used to do something like 200 swimming pools in one hour in all sorts of styles and I would do it three times a week. Since I left it I have never been in shape like back then. At that time I could do whatever for no matter how long and I would feel tired - unless I really pushed to the limit for too long. Now I loose part of my breath one I walk up 5 flights of stairs. I think it is a sign that I need to get into shape. Now I only have to choose a pool and a

Wearing Glasses

Today is my first day as someone who has to use glasses to work. In fact, this is my first Computer Session in which I'm using glasses. How do they feel? Strange and distracting. I hope this feeling of something in the corner of my eyes goes ahead really fast. On top of that my sister just scared me with some interesting questions. For instance: do you feel dizzy or with a need to throw up? That scares me. I though the goal of the glasses was to make one see better and thus feel better, not to make one dizzy! It will be an interesting times, specially the getting used to put the glasses before starting to work .

Having Full-Text Search Working Properly on JavaHelp

Today I'm posting about technology. This is a problem that I had to solve at work today. We are using JavaHelp for our On-Line help. Like many other have found issues with the Full Text Search so have we. What's the issue? Well, the selection on the help page is of by a few characters and continuously increases until the end of the page. Near the end of the page the selection of the searched word is completely off (see the issue on the Bug Database , a.k.a. Bug Parade). This issue doesn't happen with JavaHelp 2.0.4 (fetch it from this page - here is the direct link ). But for those of you that can't use it just yet, because of the wonderful tool you are using, there is a simple workaround: Unpack the HelpSet in trouble to a new folder. For instance, if the HelpSet is named help.jar extract it to the folder help ); In that folder there will be a XXX_JavaHelpSearch folder that contains the full text search index. Delete that folder. In our example it will be called help_

Cleaning out the Closet...

This weekend has been out of the ordinary. It must have something to do with the fact that I want to do what my heart tells me to do. I started with a trip to the ophthalmologist (I think that's the work in English for the vision doctor). I had been postponing this trip for a long time and I had been getting some headaches and other symptoms that there was something wrong with my eyesight. Well, it turns out that my left eye is twisted a little relatively to its original position. Reason: too many hours in front of a computer screen. Result: I will start using glasses when working. At least the problem can still be corrected. My Saturday continue with a global closet cleaning. I'm not talking about cleaning the house, I'm total about a global closet cleaning: when of those cleanings in which you take out everything form your closet, choose the close that still fits you or that you still consider wearing and put out everything that you won't wear. It's amazing what y

Making Life Changing Decisions

You probably noticed that this blog has been dead for quite some time. Too many things are happening at the same time that I'm have a hard time keeping track of them all. I don't want to make a full summary of all the items on my think list , but I'll give you a glimpse. Health First things first: I need to get into shape. I have been postponing this item for way too long. I should I put this... Well, in my youth I was a true sports freak. I was involved in many sports some of which at the exact same time. I did swimming, water polo, tennis, biking and handball. Not to mention all the other smaller things. I even reached the pre-competition series in swimming, that is, the next step would be to train every single day and join competitions. In handball I was federated, that is, I actually participated in the Regional Championship. But I had to give all that up to study. Please don't get me wrong! I don't regret making the decision of giving all that up. I'm happ