Saturday, July 10, 2010

Featured sites of the week

Welcome to this blog entry. Today, I want share some sites that I found profoundly valuable. Those sites present deep and interesting stories about culture, politics, economy, society and of course technology. Probably you know others also worth to follow sites but now I mention my favourites and frequently visited sites.
  • TED, it stands for Technology, Entertainment, Design. However, TED now embraces a larger group of topics where remarkable people talk about relevant issues with deep impact in our life, today and the days to come. I can mention some singular speakers, Al Gore, Brian Greene, Bill Gates, Sergey Brin, Larry Page, Billy Graham, among others.
  • NPR(National Public Radio), "is a producer and distributor of noncommercial news, talk and entertainment programming". I love its podcasts because they are short in time but present significant point of views that enlarge our singular point of view since they brought new perspectives about such a large amount of different topics. Today, I found other valuable asset of NPR, it not only provides podcasts but also transcripts of them which are so valuable for foreign people not only learning English but also looking for keeping informed.
  • OpenCulture, it provides very interesting short videos about culture in general. Videos exhibited are featured videos, if you will, about music, science, movies, ideas & culture, and so on. However, OpenCulture not only focus on videos but also it regards with free courses on a variety of topics such as language, biology, computer science, economics, engineering, math, philosophy, and many more.
  • H-Online, yesterday I found this site. It regards with open source and security topics. I'm a great fan of Linux as consequence a big fan of other open source projects. I don't have so much to say about it but I will put on eye on it and see what worthy to follow it is.
Your comments/suggestions are welcome and of course I would glad to know about your featured site(s).

Happy weekend.

Tuesday, October 20, 2009

First Day - Afternoon session

On the afternoon, we heard the Jose Caballero's talk. He employed an introductory presentation in which different technologies and concepts associated with Grid infrastructures were presented. He also talked a little bit about Condor which is a job manager for pool of workstations. Condor exhibits interesting features such as check pointing, resuming  and  migration of processes.
Condor can be categorized as an opportunistic job manager which harnesses idle CPU cycles found into pool of workstations. When idle work stations are found, Condor uses them for executing foreign tasks. When an 'idle' node are claimed for its owner, any process submitted by Condor is then evicted and resumed to another 'idle' workstation detected by Condor.
OSG has selected to Condor as its job manager by default.
At the end of this afternoon, for the hands-on session, we follow the instructions given here.

c u tomorrow

First Session...

Today, we held our first talk session thanks to Rob Gardner.
I have to mention that this event is been held and sponsored by different organizations and institutions such as Colciencias, Universidad de los Andes, Universidad Javeriana and OSG, of course.
In this talk, Rob gave an overview about Grid Computing and the outline of that two week workshop.
He mentioned, during the first week, we'll have many theoretical sessions given by important members of the OSG community. They'll present projects on different areas such as applications and system.
The second week will have a different emphasis, mainly directed toward practical work. As Rob mentioned, never before a practical session in which 25 'virgin' computers will become part of a grid environment has been carried out. So, that will be very exciting.





Sunday, October 18, 2009

Converting ogg and m4a audio files to mp3 [Linux]

Days ago, I bought a 'mp3 device'. The nice thing about this gadget is that it is more than a mp3 player. This device can also take pictures, record audio and video, display plain files, among others. It's is very cheap, $60.oo, and now it's my partner during my daily long trips.
Today, I was setting up my device with some e-books and meditation CDs. However, I found that some audio files were with  m4a and ogg extension. I googled, how to convert from these formats  to mp3 and I found some useful thinks that I'm sharing with you.

From ogg to mp3

for file in *.ogg;do oggdec -o - "$file"|lame -h -V 4 –-vbr-new - "$(basename "$file" .ogg).mp3";done

From m4a to mp3

for i in *.m4a; do echo "Converting: ${i%.m4a}.mp3"; faad -o - "$i" | lame - "${i%.m4a}.mp3"; done

For additional short scripts, check this link http://gimpel.gi.funpic.de/wiki/index.php?title=Howto:convert_aac/mp4_to_wav/mp3/ogg_on_Linux.

Friday, June 26, 2009

PGF/TikZ and OpenSUSE 11.1

There are many Unix powerful tools that I love. Linux per-se and LaTeX.
If you're excited to present your technical ideas in a clever and elegant way, I encourage you to use LaTeX. I totally agree that PowerPoint and Impress offer a straight way to develop ordinary presentations. I mean, every one could put some bullets, add graphics, write a fancy title and so on. However, if you are interested to present a more interactive and attractive presentations, LaTeX is an important candidate.

LaTeX offers a wealth ecosystem of libraries to support the creation of elegant presentations such as:  Seminar, Propser, Beamer, and Powerdot, among others. I have not evaluated all of them but my favorite package is Beamer. This package offers interesting features for creating attractive presentations with moderate effort. Aside to those marvelous presentation packages, I found the PGF/TikZ package. It's an amazing library to create awesome diagrams, graphics and interactive presentations.

Nowadays, my laptop distro is OpenSUSE 11.1. I found it quite stable. However, OpenSUSE 11.1 comes with outdated packages for supporting the current PGF/TikZ release (2.00). Thus, I downloaded the PGF source code from sourceforge web site, but I found the installation documents very confuse.

So, I'm describing the steps that I have followed in order to enable the latest stable release of PGF/TikZ on my OpenSUSE 11.1 installment.
  1. Download the PGF/TikZ source code.
  2. Uncompress the downloaded file.
  3. You'll get a directory named 'pgf-2.00'. Inside of this directory you'll find the following directories: context, doc, generic, latex and plain. (As well, the README file). I assumed that you have uncompressed this directory in the ~/src/ directory.
  4. In my OpenSUSE distro, the pgf package is distributed in the following directories:
    • /usr/share/texmf/tex/generic/pgf
    • /usr/share/texmf/tex/latex/pgf
    • /usr/share/texmf/tex/plain/pgf
  5. Now, make a copy of these directories in a safe place.
  6. Erase them.
  7. Move the directories found in the recently downloaded PGF/TikZ package to the standard OpenSUSE LaTeX installation, as follows:
    • mv ~/src/pgf-2.00/generic/pgf /usr/share/texmf/tex/generic/
    • mv ~/src/pgf-2.00/latex/pgf /usr/share/texmf/tex/latex/
    • mv ~/src/pgf-2.00/plain/pgf /usr/share/texmf/tex/plain/
  8. Run the texhash command.
That's it. Now, you can test and enjoy the benefits of this powerful package (Check this link).

Good hack!




Saturday, May 30, 2009

diff -q -r

I love to program in Groovy/Grails platform.
I have developed a framework for executing applications over Grid infrastructures such as PRAGMA. This project is in early stages therefore new features and modifications are actively added.
However, sometimes there are changes to cause that some components interfere negatively with other components and to track errors are challenge task, specially in this kind of projects who exhibit loosely coupled architectures. In fact, this is a service-oriented framework if you wish. As consequence, in rare situations a set of events fall in place and produce unexpected errors. That situation happened to me.
Thanks God, I decided to use git for managing versions in my software and I could identify the last date when the software worked well. However, I was pretty sure that many modifications were not the cause of the fault. Then, I started to check differences between the last stable version and the last version. So, I employed the 'diff' tool.
If you use 'diff -q -r <firs-dir> <second-dir>', it searches for differences between these two directories and print out the files to actually present differences.

OK, you got the files to present differences, now what? OK, use 'vimdiff'. If you invokve 'vimdiff file-one file-two' it would present a screen divided in half, left side shows 'file-one' and right side 'file-two'. In addition, the program highlights the text segments different between the files. Then, you could decide what changes make and what ignore.

In conclusion, git is a great tool for managing files versioning, diff is an elder tool used for building the 'patches' of early versions of Linux kernel but it stills do a great job. Finally, vimdiff is a great complement to diff. :-D.

Good hack,

REFERENCES

Monday, May 25, 2009

Running groovy scripts from command line

Groovy is another language for the Java Virtual Machine(JVM).
Further of the ubiquitous Java language programming, there are several alternative languages for JVM, such as Clojure, JRuby, Jython, Rhino and Scala, among others.
Groovy is a relative new language who incorporates features from widely adopted and accepted languages such as: Python, Smalltalk, Ruby, and of course Java, among others.

One catching feature is that Groovy allows rapid prototyping. As mentioned above, Groovy incorporates a lot of fancy features such as closures, implicit casting, powerful operators over data collections, etc.
In particular, I love the possibility to write a snippet of code and quickly check if it fulfills with my expectations.

Lets look a trivial example. You are a newbie Java programmer and you wish to know if you understand how a loop works. How do you that in Java:
  • Write a Java class
class Looping {
  public static void main(String args[]) {
    for (int i = 0; i < 10; i++) {
       System.out.println("i: " + i);
    }
  }
}
  • Save this file  as 'Looping.java', compile it 'javac Looping.java' and run it 'java Looping'
Now, lets see how this can be done in Groovy (I assume that you usually work in a real operating system like Linux):
  • Write a text file
#!/usr/bin/env groovy
for (int i = 0; i < 10; i++) {
  println("i: ${i}")
}
  • Save this file as 'example.groovy', change its permissions 'chmod +x example.groovy', run it './example.groovy'. That's it.
No 'main' methods were required, no compilation of source code in JVM machine code; just write your code and run it.
Groovy offers a lot of interesting features. I mentioned just one that I considered useful for rapid prototyping, but there are more serious, well-elaborated, and amusing features that this modern language can offer.
However, the Groovy  Achille's heel is its poor performance. However, when current releases are compared with earlier releases we can say that great achievements has been made. (However, more work is required)

Anyway, if you are a Java developer and are starting to test new Java features and don't want lose a lot of time writing testing classes but scripts to test snippet of code, Groovy is an option. (...and slowly you'll start loving it and adopt it for production releases not just for testing purposes, I'll assure you :-D.)

Good hack!

References