Pues ahí continuo, espero algún día escribir algo más....
Hacía tiempo que no escribía ...
Aquí tenéis un generador de password con ruby...
Genera passwords aleatorios con caracteres imprimibles de la tabla ASCII.
Github: git://github.com/koteo/PasswordGenerator.git
Código:
#!/usr/bin/env ruby
# encoding: UTF-8
#
#=======================================================================================
#
# FILE: password_generator3.rb
#
#
# DESCRIPTION: Random password generator with lots of combinations
#
# OPTIONS:
# REQUIREMENTS:
# AUTHOR: Koldo Oteo (), koldo.oteo1@gmail.com
# WEB: http://koteo.lacoctelera.net
# VERSION: v1.0
# CREATED: 07-11-2010
# MODIFIED: Sun 07 Nov 2010 11:48:11 PM CET
# LICENSE: GNU AFFERO GENERAL PUBLIC LICENSE
#=======================================================================================
# Creando la clase y sus funciones
class PassGen
def pide_pal
if ARGV.empty?
puts "Ruby random password generator v1.0"
puts ""
puts "The password haves ascii printable characteres (on ascii table from the decimal 33 to 126)"
puts ""
puts "Uso: ruby #{$0} (Number_of_characters)"
exit
end
end
def range_rand(min,max)
min + rand(max-min)
end
def conv_int_to_ascii
@pas_len = ARGV[0].to_i
@charslist = ""
@pas_len.times { @charslist << range_rand(33,126) }
puts "Your password is: #{@charslist}"
end
end
# Haciendo uso de la clase y sus respectivas funciones.
pg = PassGen.new
pg.pide_pal
pg.conv_int_to_ascii
Para saber que threads están consumiendo se puede hacer lo siguiente:
ps -eLo pid,lwp,pcpu,comm | sort -n -r +2 | grep -v "PID LWP %CPU COMMAND" | head -16
Nos saldrá algo similar a esto:
7038 2218 4.9 java
7038 594 4.8 java
7038 544 4.7 java
7038 4299 4.6 java
7038 4298 4.6 java
7038 2529 4.6 java
Lo que nos interesa es el valor que está en rojo.
Ahora para saber que están haciendo esos threads haremos lo siguiente:
strace -p lwp (pondremos el valor que sale en rojo, que es el identificador del thread)
Espero que a alguien le valga para algo....
Hola, estaba algo hartito de poner a mano la cabecera y viendo el documento: vimstuff
lo he adaptado un poco a mi propia cabecera de la siguiente forma.
Primero os creáis un fichero dentro de $HOME/.vim llamado rb_header.txt que contendrá lo siguiente (incluido :insert):
:insert
#!/usr/bin/env ruby
# encoding: UTF-8
#
#=======================================================================================
#
# FILE:
#
#
# DESCRIPTION:
#
# OPTIONS:
# REQUIREMENTS:
# AUTHOR: Nombre apellidos (),usuario@gmail.com
# WEB: http://koteo.lacoctelera.net
# VERSION: 1.0.10
# CREATED:
# MODIFIED:
# LICENSE: GNU AFFERO GENERAL PUBLIC LICENSE
#=======================================================================================
Y ahora modificáis el .vimrc situado en $HOME con lo siguiente:
autocmd bufnewfile *.rb so /home/ircd/.vim/rb_header.txt
autocmd bufnewfile *.rb exe "1," . 10 . "g/FILE:.*/s//FILE: " .expand("%")
autocmd bufnewfile *.rb exe "1," . 18 . "g/CREATED:.*/s//CREATED: " .strftime("%d-%m-%Y")
autocmd Bufwritepre,filewritepre *.rb execute "normal ma"
autocmd Bufwritepre,filewritepre *.rb exe "1," . 18 . "g/MODIFIED:.*/s/MODIFIED:.*/MODIFIED: " .strftime("%c")
autocmd bufwritepost,filewritepost *.rb execute "normal `a"
Como veis, este cambio se realizaría en ficheros de ruby (.rb), pero podéis modificarlo y ponerlo a vuestro gusto. Automáticamente te cambia el nombre del fichero, la fecha de creación y la fecha de modificación del mismo.
Un saludo.
Hola, tengo que sacar estadísticas de unos logs generados con dmstool(oas). Son generados con dmstool -t JVM (cada 5 minutos). Para que os hagais una idea, los logs son de este formato: http://pastebin.com/VeMdVSHA
Necesito sacar el consumo de la memoria java de la que tiene asignada Xmx Xms. En algunos logs tengo 2 procesos java, por ello podéis comprobar que al final hago un if, para ver si tengo que hacer el map de 2 elementos o de 3 (fecha;resultado_proceso_java1;resultado_proceso_java2)
#!/usr/bin/env ruby
# encoding: UTF-8
#
#=======================================================================================
#
# FILE: heap_parser.rb
#
#
# DESCRIPTION: Parseo de logs generados con dmstool -t JVM a .csv
#
# OPTIONS: [nombre-fichero-metricas-dmstool]
# REQUIREMENTS: time
# AUTHOR: Koldo Oteo (), koldo.oteo1@gmail.com
# WEB: http://koteo.lacoctelera.net
# VERSION: 1.0.1
# CREATED: 16/03/2010
#=======================================================================================
#
require 'rubygems'
require 'time'
@freemem = /^freeMemory.value:\s(\d+)/
@totmem = /^totalMemory.value:\s(\d+)/
@date = /\w+\s\w+\s\d+\s\d+\:\d+\:\d+\s\w+\s\d+/
def dat_parse(line)
Time.parse(@line).strftime("%d-%m-%Y %H:%M:%S")
end
@results = Array.new
@logfile = File.open(ARGV[0])
@logfile.each_line do |x|
@line = x
case @line
when @date then @results << dat_parse(@line).strip
when @freemem then @fr = $1
when @totmem then @tot = $1
@results << @tot.to_i - @fr.to_i
end
end
# unimos fecha + resultado(totalMemory - freeMemory)
#
if @results[2].to_s.match(/\D/)
puts @results.each_slice(2).map { |e| e.join ';' }
else
puts @results.each_slice(3).map { |e| e.join ';' }
end
He actualizado el Ryoutube. Ahora guarda el fichero en una ruta por defecto $HOME/Ryoutube y le pone al fichero el nombre del título.
Podéis encontrarlo aquí:
http://github.com/koteo/Ryoutube
Saludos.
Explico brevemente el código:require 'rubygems'
require 'uri'
require 'net/http'
# Guardamos el primer parámetro en la variable @url
@url = ARGV.first
#parseamos el nombre del host y el path
@host = URI.parse(@url).host
@ctx = URI.parse(@url).path
# Obtenemos el video_id y formamos la url para obtener la url definitiva de descarga
URI.parse(@url).query.scan(/v=(.+)/) ; @vid_id = $1
@get_path = "/get_video_info?&video_id=#{@vid_id}"
# Llamamos a la url y path
@response = Net::HTTP.get_response(@host, @get_path)
#Obtenemos la url definitiva, pero debemos decodificar la url para así descargar el .flv
@get_url = @response.body.match(/ (http.+?) %2C34%7C /osx) ; @final_url_enc = $1.to_s
# Aqui decodificamos la url
@final_url_dec = URI.unescape(@final_url_enc)
# Parseamos la nueva url, host, query, path, etc
@download_url = URI.parse(@final_url_dec)
@download_url_host = @download_url.host
@download_url_path = "#{@download_url.path}?#{@download_url.query}"
@download_url_query = @download_url.query
#Guardamos el video en un fichero llamado youtube.flv
@final_vid = File.new("youtube.flv", 'wb')
@download_vid = Net::HTTP.get(@download_url_host, @download_url_path)
@final_vid.puts @download_vid
No se si ya hay algo para ruby de este estilo, no obstante, por curiosidad quería ver como se hacía en ruby y la verdad que no ha quedado mal, aunque debo darle muchos retoques.
En un principio se ejecuta de la siguiente forma:
ruby Ryoutube.rb "http://www.youtube.com/watch?v=YOUTUBE_VIDEO_ID) y te genera un fichero llamado youtube.flv" Poco a poco intentaré mejorarlo.
Podéis descargarlo de:
