How to install couchbase and couchbase-model gems in Ubuntu 10.04

I’m starting to work in a new project that uses Couchbase, a NoSQL database.

To use it with Ruby on Ubuntu 10.04 you need to:

Get the sources on your Apt repo list files:

sudo wget -O/etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/preview/ubuntu/couchbase-ubuntu1004.list

Add the key to the repo:

wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add -

Reload and install the library itself:

sudo apt-get update && sudo apt-get install libcouchbase-dev

Now you can install the latest couchbase gem version:

gem install couchbase --pre

And the couchbase-model gem:

gem install couchbase-model

Gotchas

This will only work for the couchbase gem version 1.2.0.z.beta3 and above.

Facebook Twitter Linkedin

13. November 2012 by Juan Pablo
Categories: Software development | Tags: , , , , | Leave a comment

Dearchiver, a gem to check CRC and decompress files.

In the last project I have been working on, we had the necessity of checking the CRC and decompressing data from different formats of compressed files.

While searching some Ruby Gem that could help us doing so, I realized that no one was actually covering what we needed.

So, I created a new gem called Dearchiver and released it.

You can check the source code here, the docs here and the official RubyGems page here.

Warning

Tested on Ubuntu 10.04: No idea how it is going to behave in other OS.

Usage of Dearchiver

Dearchiver will use the command line of your operating system to perform the desired operations in the

compressed files. This means that you need to have utilities installed (say unzip, unrar, 7zip and tar).

Installation and usage is very simple.

Just for now the gem will work only of the following type of files:

1
2
3
4
.zip
.rar
.tar.gz
.7z

Installing Dearchiver

Manually:

1
gem install dearchiver

In your Gemfile:

1
gem 'dearchiver'

Checking CRC

1
2
da = Dearchiver.new(:filename => "foo.zip")
da.crc_ok?

If the filename doesn’t have any extension, you can use:

1
2
da = Dearchiver.new(:filename => "foo", :archive_type => ".zip")
da.crc_ok?

Extracting files

1
2
3
da = Dearchiver.new(:filename => "foo.zip")
da.extract_to("/tmp")
puts da.list_of_files

More to come

More formats will be added in time, as well as new more planned functionality:

  • Add the ability to compress files given a file pattern.
  • Add the to get the list of files contained without decompressing them.
  • Add support for more archiving tools (as requested).
Facebook Twitter Linkedin

29. October 2012 by Juan Pablo
Categories: Software development | Tags: , , , , | Leave a comment

Una joyita en las cartas de J.R.R. Tolkien

Releyendo “Cartas” de J.R.R. Tolkien me encontré con esta joyita que quiero compartir con Uds.

En 1938, Allen & Unwin – editores de Tolkien en Inglaterra – habían negociado la publicación de una traducción alemana de El Hobbit con Rütten & Loening, de Postdam. Esta empresa le escribió a Tolkien preguntándole si era de origen “arisch” (ario). He aquí la respuesta de J.R.R. Tolkien:

Debo decir que la carta de Rütten y Loening que usted me adjunta es un poco rígida. ¿Tengo que soportar esta impertinencia porque llevo un apellido alemán, o la lunática ley que los rige exige un certificado de posesión de origen “arisch” por parte de todas las personas de todos los países?

Personalmente, me sentiría inclinado a rehusar una Bestätigung (aunque pueda hacerlo en realidad) y demorar la traducción al alemán.

De cualquier modo, objetaría fuertemente que semejante declaración apareciera impresa. No considero (la probable) ausencia de toda sangre judía como necesariamente honorable; tengo numerosos amigos judíos y lamentaría dar cualquier fundamento a la idea de que suscribo la doctrina racista, perniciosa y del todo anticientífica.

Usted es el principal implicado y no puedo hacer peligrar la oportunindad de una publicación alemana sin su aprobación. De modo que le presento dos borradores de posibles respuestas.

Si les interesa, intenten conseguir el libro. Es una genialidad tras otra y nos acerca más al hombre que creó una de las mitologías más maravillosas de la literatura.

El ISBN es 84-450-7121-1.

Facebook Twitter Linkedin

25. October 2012 by Juan Pablo
Categories: Cultura | Tags: , , | Leave a comment

Some fixes to the Rackspace CloudDNS Ruby API

Today I forked and introduced a change into the Ruby Rackspace CloudDNS API originally developed by Dan Sosedoff.
The problem was that the library was not correctly creating a new domain, and the test suite was not complete on that area.
I added a couple of tests and fixed the main issue.

Hope you find it useful.

Facebook Twitter Linkedin

18. October 2012 by Juan Pablo
Categories: Software development | Tags: , , | Leave a comment

Michael Jackson hecho cover

Es absolutamente indiscutible la influencia que ha tenido Michael Jackson en la música a nivel global.
Desde el funk pop de “The Jackson 5” hasta su carrera solista y desaparición, ha dejado huellas imborrables en toda la escena de la música y el baile.

Estos son algunos covers muy bien hechos por diferentes artistas y bandas que han puesto su toque personal a la música de MJ, dando así su homenaje.

Personalmente destaco a KT Tunstall y a Chris Cornell, pero sobre gustos…

Alien Ant Farm – Smooth Criminal

Fall Out Boy – Beat It

James Morrison – Man In The Mirror

Coldplay – Billie Jean

KT Tunstall – I Want You Back

Chris Cornell – Billie Jean

Facebook Twitter Linkedin

09. October 2012 by Juan Pablo
Categories: Music | Tags: , , | Leave a comment

Speedy y su web 2.0 en San Rafael

La cosa es que el viernes de la semana anterior me llaman de Speedy ofreciéndome un ancho de banda de 3MB.

Como yo tenía sólo 1MB, me pareció buena la promo y acepté.

La señorita, muy amable (como toda vendedora, bah) me dijo:

- A partir del martes que viene tiene el servicio habilitado.

La cuestión es que el miércoles se me ocurre probar y no anda ni para atrás. Si es posible, andaba peor que antes.

Llamo al 0800-333-7733 de Speedy y solicito con el soporte técnico.

El chico que me atiende me pide que haga la prueba de velocidad desde la página de Speedy, lo cuál debería estar prohibido ya que quien provee el servicio no debe controlarse a sí mismo.

Me tira unos valores bajísimos y el chico me dice que me van a mandar soporte a domicilio para ver qué está pasando.

¿Es necesario decir que nunca aparecieron por casa?

Bueno, la cuestión que el miércoles siguiente pruebo otra vez y, según Speedy, los reyes de la Web 2.0, mi conexión – que ellos proveen – no es para la Web 2.0.

Dejo como prueba la captura de pantalla.

Actualización:

Tweet va, tweet viene, me pidieron hacer otra prueba. Tengo un número de reclamo. Según ellos no tengo problemas… aunque me prometieron 3MB, no llega a 1.2.

Dejo captura de pantalla como prueba.

]2 Prueba realizada con la notebook conectada via puerto Ethernet, todas las aplicaciones cerradas excepto la página. 09-10-2012 a las 11:44 am.

Post Actualización:

Tercera prueba a pedido de Speedy después que hiciera “ajustes”.

De mal en peor… DE SAS TRO SO.

]3 Prueba realizada con la notebook conectada via puerto Ethernet, todas las aplicaciones cerradas excepto la página. 11-10-2012 a las 08:09 pm.

Post-Post Actualización:

Al fin vino el técnico a mi casa. Muy amable el señor, después de hacer unas pruebas me indicó que como mi casa queda a 3100 metros de la central telefónica, la única velocidad que me pueden brindar seguro es hasta 1.5 MB.
Es decir… que me vendieron cualquier fruta. Los vendedores de Speedy no tienen IDEA si se puede o no aplicar esa velocidad. FAIL. BIG FAIL.
Voy a llamar para que me dejen esa velocidad máxima de 1.5 al mismo precio de la de 1. Veremos si se puede.

Facebook Twitter Linkedin

06. October 2012 by Juan Pablo
Categories: General | Tags: , , , | Leave a comment

Moro, a Giant Schnauzer

Here are some pictures of Moro, a Giant Schnauzer that makes my life awesome.

Facebook Twitter Linkedin

06. October 2012 by Juan Pablo
Categories: Uncategorized | Leave a comment

Ruby On Rails and jQuery UI Draggable

Last friday, I was checking out the messages in one of the Ruby groups I read every day.
One of the guys asked for advise on how to drag objects inside a web page and save the final position in a database with jQuery and Ruby On Rails.

I replied that he could use jQuery UI Draggable widget. However, I was not really satisfied with my answer and since I had some time available, I set out to provide a very simple example.

The result is an application I published in my GitHub repo, which you can clone and use as you want.

The key part is in the application.js file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$(function () {
  // Append the draggable widget to all the img objects
  $("img").draggable({
    // Capture the "stop drag" event
    stop:function (event, ui) {
 
      // Generate the img object with the new coordinates.
      var img = {
        "id":$(this).attr('id'),
        "position_y":$(this).position().top.toString(),
        "position_x":$(this).position().left.toString()
      };
 
      // Send the request to the server
      $.ajax({
        type:"PUT",
        url:"/images/" + $(this).attr('id') + ".json",
        data:JSON.stringify(img),
        contentType:'application/json',
        dataType:'json',
 
        // In case that an error happens, capture it and show the details.
        error:function (xhr, msg, error) {
          alert(msg + ": " + error);
        }
      })
    }
  });
});

This little chunck of code will append the draggable widget to all the img objects in the page and will capture the stop event, sending a PUT request to the server with the serialized JSON object that represents the image with it’s id and the x (left) and y (top) coordinates.

Quite simple, huh?

Facebook Twitter Linkedin

06. October 2012 by Juan Pablo
Categories: Software development | Tags: , , , , | Leave a comment

Still working on it

Hey! I don’t know how, but you finally reached my site. Well, as you can see not much is going on for now (soon it will!) and this place is pretty much empty. In the meantime, why don’t you check my resume?

 

http://www.jpgenovese.com/resume

 

Thanks and come back soon!

Facebook Twitter Linkedin

06. October 2012 by Juan Pablo
Categories: General | Tags: , | Leave a comment