Archive for Junio 19th, 2009

Instalar FileZilla en Ubuntu 9.04

// Junio 19th, 2009 // 3 Comments » // linux

logo-ubuntu-2.jpg

Si al tratar de instalar el FileZilla en Ubuntu 9.04 te sale un mensaje que dice:

Cliente FTP FileZilla no puede instalarse en un equipo como el suyo (i386)

O bien la aplicación requiere funciones hardware especiales, o bien el vendedor ha decidido no soportar los equipos de las características del suyo.

La solución es simple, instálalo desde la línea de comandos con apt-get:

1
sudo apt-get install filezilla

¡Listo! :)

Artículos relacionados:

Convertir un número a palabras con Ruby

// Junio 19th, 2009 // 4 Comments » // programación

lobo_tuerto.png

Hace poco necesitaba escribir una cantidad usando palabras, así que me di una vuelta por internet para ver si algún alma caritativa había publicado alguna implementación en Ruby.

En este otro blog y también en este me encontré con una solución, pero revisando el código fuente se puede ver que tiene un problema:

12000000000.to_words
=> "doce mil "

Con mi programa:

numero_a_palabras(12000000000)
=> "doce mil millones"

Así que sin más, les comparto mi implementación. :)

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
def numero_a_palabras(numero)
  de_tres_en_tres = numero.to_i.to_s.reverse.scan(/\d{1,3}/).map{|n| n.reverse.to_i}
 
  millones = [
    {true => nil, false => nil},
    {true => 'millón', false => 'millones'},
    {true => "billón", false => "billones"},
    {true => "trillón", false => "trillones"}
  ]
 
  centena_anterior = 0
  contador = -1
  palabras = de_tres_en_tres.map do |numeros|
    contador += 1
    if contador%2 == 0
      centena_anterior = numeros
      [centena_a_palabras(numeros), millones[contador/2][numeros==1]].compact if numeros > 0
    elsif centena_anterior == 0
      [centena_a_palabras(numeros), "mil", millones[contador/2][false]].compact if numeros > 0
    else
      [centena_a_palabras(numeros), "mil"] if numeros > 0
    end
  end
 
  palabras.compact.reverse.join(' ')
end
 
def centena_a_palabras(numero)
  especiales = {
    11 => 'once', 12 => 'doce', 13 => 'trece', 14 => 'catorce', 15 => 'quince',
    10 => 'diez', 20 => 'veinte', 100 => 'cien'
  }
  if especiales.has_key?(numero)
    return especiales[numero]
  end
 
  centenas = [nil, 'ciento', 'doscientos', 'trescientos', 'cuatrocientos', 'quinientos', 'seiscientos', 'setecientos', 'ochocientos', 'novecientos']
  decenas = [nil, 'dieci', 'veinti', 'treinta', 'cuarenta', 'cincuenta', 'sesenta', 'setenta', 'ochenta', 'noventa']
  unidades = [nil, 'un', 'dos', 'tres', 'cuatro', 'cinco', 'seis', 'siete', 'ocho', 'nueve']
 
  centena, decena, unidad = numero.to_s.rjust(3,'0').scan(/\d/).map{|i| i.to_i}
 
  palabras = []
  palabras < < centenas[centena]
 
  if especiales.has_key?(decena*10 + unidad)
    palabras << especiales[decena*10 + unidad]
  else
    tmp = "#{decenas[decena]}#{' y ' if decena > 2 && unidad > 0}#{unidades[unidad]}"
    palabras < < (tmp.blank? ? nil : tmp)
  end
 
  palabras.compact.join(' ')
end

Si encuentras algún error en el programa, anótalo en un comentario abajo.

Para los que quieran conocer un poco más acerca de la solución de éste problema, continuen leyendo.

(más...)

Artículos relacionados:

Kiwi!

// Junio 19th, 2009 // No Comments » // videos

A ver que les parece esta historia…

¿No creen que es hora de comenzar a plantar árboles?

Artículos relacionados:

FireStats icon Con la potencia de FireStats