Sunday, April 27, 2008

Literate Programming

Work with evolving technologies computer related such as: operating systems, computer networks, language programming; they demand a continuous practice for avoiding forget the learned lessons.

For example, if you learned how to
  • configure a router
  • backup your server remotely
  • process a XML file in your program
if you don't practice, you'll loose your skills after while.
If you think that you'll be apart from your task, it's highly recommended that you document your tasks and your software programs and as much as possible provide your sources, they will save your day shortly.

In a recent interview with Donald Knuth I found something interesting. For programming languages, he has something to say. He proposes something called programming literate. It deals with different aspects related with the software development process. It provides guidelines for software documentation, design documentation, agile documentation, and source comments.

I can assure you, a well written document is as important as the product that accompanies it.

Friday, April 25, 2008

SWIG extending your possibilities

Hi,

I'm a Java fan, and lately, I'm a Groovy lover. However, it's well known there are limitations in high-level languages such as Java and scripting languages, Groovy for example, when dealing with low level issues. Some people say "C is a high abstraction of the assembler code". In fact, one step during compilation of C programs is to translate them in assembly code (gcc -S <your_program>.c)
As consequence, the Java developers have developed JNI (Java Native Interface) framework. It allows the interaction between Java and C code. However, to develop JNI components can be a daunting task.

SWIG is a software development tool connecting C and C++ components with scripting languages such as: Perl, PHP, Python, Tcl and Ruby. Besides, it supports interaction with non-scripting languages such as: C#, Common Lisp, Java, Lua, Modula-3, OCAML, Octave and R. Impressive ah!

Take care, and happy weekend!

Tuesday, April 22, 2008

Science 2.0

Years ago, Web 2.0, arrived our computers exposing different mechanisms of interaction for the web users.
Likewise, Web 1.0 was developed by a physics researcher, Web 2.0 is been used and developed for people from different areas of knowledge.
Now, Web 2.0 is been used for the users to display different situations of your life but also the researchers are using it as a mechanism for supporting the development process of knowledge.
The Wiki framework is one of the most successful mechanisms for sharing knowledge as much as informal and formal way.

Today, researchers are advocated to open their knowledge to the world, of they will be condemned to the failure and isolation.

Scientific American has an interesting article about this topic (http://www.sciam.com/article.cfm?id=science-2-point-0&print=true).

Thursday, March 20, 2008

Compiling fftw2 in IA64

Compile and Install FFTW2 on IA64 architecture was a painfulness experience. However, the problems happen when you're trying to link your MPI programs with the fftw lib.

I got the next error:

/home/jas/fftw2/lib/libfftw.a(rader.o)(.text+0x23e2): In function `fftw_create_rader??unw':
: undefined reference to `__libm_sincos'
/home/jas/fftw2/lib/libfftw.a(twiddle.o)(.text+0x9d2): In function `fftw_create_twiddle':
: undefined reference to `__libm_sincos'
/home/jas/fftw2/lib/libfftw.a(twiddle.o)(.text+0x11c2): In function `fftw_create_twiddle':
: undefined reference to `__libm_sincos'
/home/jas/fftw2/lib/libfftw.a(twiddle.o)(.text+0x1a22): In function `fftw_create_twiddle':
: undefined reference to `__libm_sincos'


You can solve it, adding the next strings to your compilation line:
  • -L/opt/intel/cc/9.1/lib
  • -limf
Now, it works ;-)

Regards.

PD: An useful program for reviewing the content of a static library is nm.

Wednesday, March 19, 2008

Google Code University

Daily, previous to start my work, I read the following web pages:
Of course, I read them for being informed about different issues of my reality, I mean: my country, my friends, and news related with different topics such as: technology, literature, education, among others.
I have to confess, that I'm not digg RSS lover, but today I read it quickly and found this interesting link http://code.google.com/edu/.

It contains relevant information about hot topics in computers, such as: AJAX, Distributed Systems, Web Security, and Languages.

As a matter of fact, I will review the Distributed Systems area because it's interesting to know what they have to say about this topic.

Regards,


Tuesday, March 18, 2008

Compiling Octave on IA64

My research work involves signal processing analysis. A lot of work in signal processing is done with Matlab. However, there is not free license of Matlab for Linux. Hence, I use Octave. Octave is a Matlab clone for free and open source. Many of the non-advanced scripts developed for Matlab works under Octave. For example: scripts for handling images and sounds, work pretty well in Octave.

However, in order to run Octave on IA64 architecture a little modification must be done. The configure script does a good job for x86 architecture but not so good for IA64. During the compilation procedure I got this error:

unresolved reference to `?1__serial_memmove'

I solved the problem modifying the Makeconf file located in the root directory of the source code. Then, look for the line that contains the FLIBS variable and add the following strings:
  • -L/opt/intel/cc/9.1.046/lib
  • -lirc
My resulting line was:

FLIBS = -L/opt/intel/cc/9.1.046/lib -L/usr/lib/gcc/ia64-redhat-linux/3.4.5 -L/usr/lib/gcc/ia64-redhat-linux/3.4.5/../../.. -lz -lfrtbegin -lg2c -lirc -lm

The ?1__serial_memmove definition is given in the libirc.[so|a] library, and it's located at /opt/intel/cc/9.1.046/lib directory.

Some data:
uname -a: Linux volatile.ece.uprm.edu 2.6.9-42.0.3.EL #1 SMP Mon Oct 9 16:02:20 EEST 2006 ia64 ia64 ia64 GNU/Linux
icc --version: icc (ICC) 9.1 20070111

Resources:

Friday, March 14, 2008

Compiz and Gnome on Compaq R3000 laptop

In my last trip to Raleigh (NC), I bought a laptop battery for my old Compaq Presario R3000. I'm very happy because now I can stand for many hours unplugged from the grid.
Also, I had upgraded my laptop memory to 1 Gbyte. Certainly, the applications run more smoothly.

Because, I'm Linux user, my operating system has a modest hardware requirements.

Many people say that software is the computer soul. Now, I agree totally. My hardware laptop has been empowered with Compiz. In order to work with Compiz, my NVIDIA(NV17 GeForce4 420 Go 32M) video card requires the NVIDIA-Linux-x86-96.43.05-pkg1.run package, that you can download from Unix area at NVIDIA site.

Today, Linux has a lot of applications that make of it a futuristic operating system. Compiz and Beryl along with the windows managers, Gnome and KDE, make the Linux user experience, one very enjoyable.

I feel like my laptop (3.5 years old) takes a new breath and I'm happy with it.

Delay start of applications in gnome.

Hi,

Today, I perceived my gnome applications have a long delay start. A wiki google reveal me the problem.
My hostname, in the /etc/hosts file, was not associated with 127.0.0.1 address. I add the following line:

127.0.0.1 pdclab-09.ece.uprm.edu pdclab-09

and the problem was resolved.

References:


https://bugs.launchpad.net/ubuntu/+source/gnome-system-tools/+bug/12852 as a matter of fact my problem happened in a FC7 machine.

Sunday, March 9, 2008

Extending your new battery life


I have an old Compaq Laptop (R3000) and it still works well, however, after three years of "hard" work (remember, I'm PhD student) its battery discharges quickly. My laptop fulfills my requirements at this time, so I decided to buy a new battery.
Despite of the new battery has one year of warranty I decided try to preserve its durability. Then, I google for pages providing tips how to extend the battery life. There are a lot of urban myths about it and many times they advises don't distinguish amongst the existing battery technologies.
Finally, I found this interesting link. That article was written by a senior systems engineer and consultant at Dell and a technical marketing manager at HP.
As conclusion, I can say:
  1. Stop dispensable programs and services, avoid fancy features in your computer such as: high resolution screen, number of colors, among others; defragment your hard disk periodically for optimal disk access.
  2. For a new battery, charge it at 100%, then discharge it totally, finally charge it at 100%. Since, Lion-ion batteries have a microprocessor, this routine help them to determine its charge capacity.
Anyway, use your battery with no care, take advantage of the warranty, then, one year later, you will decide, a new battery or a new laptop? ;-)

Friday, March 7, 2008

Latinamerican, Talk in english publicly



Finally, I have came back to home with a lot of positive experiences in my OSG All Hands Consortium participation.
There, I had opportunity to meet interesting people with different background of knowledge.
The organizers invited me to participate in a session panel on March 5th.
The panel was developed as follows: every panelist has ten minute for presentation and three minutes for questions. We were six panelists in total.
My presentation was the third. I talked about my experience in Grid School at Brownsville, Texas in 2006, the personal benefits of participate there, advantages and disadvantages, and finally, I talked about my current work in PRAGMA, advantages and disadvantages of work with PRAGMA.

As conclusion of my participation, I realized in order to be understood for your audience, it's necessary have a good and large vocabulary and don't be concern so much about your grammar level.
For example, Anglo speakers, when they start speaking Spanish, have difficulties conjugating verbs, however, we can understand them with a little effort when they say something like that: "Mi tener un negro carro".
So, I'm sure that it's important know about grammar, specially when you write, however don't be shy at time to speak in public, the Anglo be nice with you and they recognize your effort.

However, it's a good idea write a script of your presentation. This backup make you more confident.

Monday, March 3, 2008

OSG All Hands Consortium

Today, I will go to North Carolina to participate in the OSG All Hands Consortium Meeting. This event will be held on the Campus of the University of North Carolina.
The main goal of the event is to discuss and promote grid technologies amongst existing and new users.
On Wednesday March 3rd, in the afternoon, I will participate in a panel, where the panelists will discuss their experience with OSG.
I hope they aren't disappointed since I working with PRAGMA. However, I have expectations to work with documentation for disseminating Grid technologies in the research community in the future.

I'll write soon. Regards!

An useful graphical hardware tool


Hi,
I was reading some entries in my google reader account and I found an interesting tool for visualizing your hardware information through a graphical interface.
I found this tool in the Fedora RSS.
For Fedora users, submit the command yum install lswh-gui. Enjoy it!

Thursday, February 21, 2008

Greedy Web Applications

I was very confused about what would be the main topic of this entry.
At the beginning, I was amazed about this awesome demo developed by Adobe company. It shows a "live" transmission of a cycling race stage. It displays a well orchestrated set of web services integrating GIS, AJAX and multimedia technologies.

Today, we can found an impressive amount of web applications as useful as standalone applications, but they have serious performance problems.
I have mentioned how the browser now is our new productivity environment and I can enumerate a
popular set of "web applications" such as:
gmail, youtube, google reader, scribe, zotero, among others; but they provoke an important performance decrease in my laptop.

At this moment, there are a respected number of computers with a low profile performance, further, the industry are producing them with high succeed, hence it's convenient consider seriously to develop profiling tools for environments where the web application are developed.




Powered by ScribeFire.

Tuesday, February 19, 2008

Patch your Fedora Distribution

Today, a friend of mine, alert me about an exploit found in most of the Linux kernels.
Promptly, I went to http://google.com and look for "kernel exploit linux". I found this in http://slashdot.org,
The announcement suggests that systems based on Ubuntu and Debian are vulnerable, but my FC7 distribution is vulnerable, too.
However, 30 minutes ago, I updated my kernel, using "Software Updater" from the Gnome menu, and the problem was fixed.

So, lets update your software.




Powered by ScribeFire.

Monday, February 11, 2008

Tools for Writers

The last year ends with a profound desire to becoming me in a great writer.
Undoubtedly, it's a challenge and different knowledge areas demand educated people that expresses his ideas in a clear and concise way.

Two key elements leverage the development of the new writer, I thought.
  1. An indomitable personality and passion for sharing his ideas through written word.
  2. A suitable set of writing tools.
Shortly, I will speak about the second item.

Thirty years ago, maybe, the typewriter machine was the suitable tool for a writer.
Twenty years ago, the desktop computer leverage the writing process to another level, saving paper and letting a process writing more iterative.
Today, powerful advances in web technologies bring us browsers as the almighty tools. As consequence, all the things that you as a geek can be accomplished from your web browser: read e-mail, read news, watch videos, listen music, chat, make a phone calls, among others.

My prefered browser is Firefox. It's an open source browser with a large add-ons base that brings the navigation process to next level.
So, as follow I will mention a couple of these add-ons:

  1. Zotero: It's a free, easy-to-use extension to help you collect, manage, and cite your research sources. Certainly, it's a powerful tool for the researcher. It will be hilarious when has support for PDF documents, too.
  2. Scribefire: It supports the blog publishing process to your favorite blog site from your web browser.
  3. Split Browser: You can split browser infinitely, as many as your RAM and your screen allow. It's a useful tool for editing over multiple-sites on a single screenshot.
Next time, don't underestimate what your browser can does for you.

Regards,


Powered by ScribeFire.