koteo http://koteo.lacoctelera.net es-es Tecnología http://s3.amazonaws.com/lcp/koteo/f/3c4d3ad71f63f251387e966bacfc257c.jpg koteo http://koteo.lacoctelera.net the-shaker v0.1. More on http://www.the-shaker.com Parseando oracle application server (dmstool) logs http://koteo.lacoctelera.net/post/2010/03/16/parseando-oracle-application-server-dmstool-logs 2010-03-16T09:59:32+00:00 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

]]>
http://koteo.lacoctelera.net/post/2010/03/16/parseando-oracle-application-server-dmstool-logs#comentarios
Actualizado Ryoutube (ruta por defecto descarga y comentarios) http://koteo.lacoctelera.net/post/2010/03/13/actualizado-ryoutube-ruta-defecto-descarga-y-comentarios 2010-03-13T18:00:19+00:00 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.

]]>
http://koteo.lacoctelera.net/post/2010/03/13/actualizado-ryoutube-ruta-defecto-descarga-y-comentarios#comentarios
Descargar videos de youtube con ruby http://koteo.lacoctelera.net/post/2010/03/13/descargar-videos-youtube-con-ruby-2 2010-03-13T03:29:21+00:00 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

]]>
http://koteo.lacoctelera.net/post/2010/03/13/descargar-videos-youtube-con-ruby-2#comentarios
Descargar videos de youtube con ruby http://koteo.lacoctelera.net/post/2010/03/13/descargar-videos-youtube-con-ruby 2010-03-13T03:23:54+00:00 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:

http://github.com/koteo/Ryoutube

]]>
http://koteo.lacoctelera.net/post/2010/03/13/descargar-videos-youtube-con-ruby#comentarios
Nueva versión de la gema de rae. http://koteo.lacoctelera.net/post/2010/03/11/nueva-version-la-gema-rae 2010-03-11T10:52:33+00:00 Ayer me puse a cambiar un poco el código de la rae. Ahora el código está todo dentro de la class Rae y aparentemente está mejor organizado, aunque el núcleo es el mismo.

Podéis encontrarlo en:

http://rubygems.org/gems/rae

http://github.com/koteo/rae

También podéis instalar directamente con gem install rae

Saludos.

]]>
http://koteo.lacoctelera.net/post/2010/03/11/nueva-version-la-gema-rae#comentarios
Gema de la RAE publicada http://koteo.lacoctelera.net/post/2009/12/15/gema-la-rae-publicada 2009-12-15T17:43:23+00:00 Gracias a krawek, que me publicó y generó la gem de la rae. Está en la siguiente url:

http://gemcutter.org/gems/rae

Saludos.

]]>
http://koteo.lacoctelera.net/post/2009/12/15/gema-la-rae-publicada#comentarios
Una web para aprender ruby a tener en cuenta... http://koteo.lacoctelera.net/post/2009/12/15/una-web-aprender-ruby-tener-cuenta 2009-12-15T17:22:21+00:00 Buscando videos sobre ruby en youtube, me encontré con uno en concreto en donde explicaba desde el principio como funciona ruby, bucles, hashes, arrays, editores, etc... que es muy interesante. Si además alguien quiere contribuir, admite donativos de paypal. La web en concreto es la siguiente y está fenomenal:

http://manwithcode.com/31/programming-with-ruby-episode-1-introduction/

Espero que os guste, sobre todo a aquellos que están iniciando.

]]>
http://koteo.lacoctelera.net/post/2009/12/15/una-web-aprender-ruby-tener-cuenta#comentarios
Acceder al diccionario de la rae con ruby http://koteo.lacoctelera.net/post/2009/11/18/acceder-al-diccionario-la-rae-con-ruby 2009-11-18T23:33:24+00:00 Como mucha gente suele hacer y yo no voy a ser menos, me puse con un programilla para acceder al diccionario de rae.es . Es muy simple, pero funciona, aunque haría falta ver como mejorar el parseo.

# encoding: UTF-8
#
# http://koteo.lacoctelera.net

require 'rubygems'
require 'nokogiri'
require 'mechanize'

puts "Pon la palabra que deseas buscar en la web del rae:"
palabra = gets.chomp

agent = WWW::Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get 'http://buscon.rae.es/draeI/html/cabecera.htm'

# Nos devuelve el nombre de los campos que hay que rellenar en el formulario.
form = page.forms.first
#form.fields.each { |f| puts f.name }

# Indicamos el tipo de busqueda 3 en el field "TIPO_BUS" (busca palabras parecidas)
# En el field "LEMA" le indicamos la palabra que buscamos

form['TIPO_BUS'] = '3'
form['LEMA'] = palabra

# Hacemos click en el boton
page = agent.submit(form, form.buttons.first)

# Parseamos el resultado html con nokogiri y lo mostramos en la salida standard
read_doc = Nokogiri::HTML(
(page.body))

read_doc.css('p').each do|l|
puts l.content
end

]]>
http://koteo.lacoctelera.net/post/2009/11/18/acceder-al-diccionario-la-rae-con-ruby#comentarios
No todo va a ser música brasileña.... http://koteo.lacoctelera.net/post/2009/08/11/no-todo-va-ser-muscia-brasilena 2009-08-11T10:15:04+00:00 Os pongo la ópera de Belle nuit Barcarolle ( la vida es bella), una película que me hace llorar y reir, una maravilla !!

]]>
http://koteo.lacoctelera.net/post/2009/08/11/no-todo-va-ser-muscia-brasilena#comentarios
Como contar líneas, palabras, frases de un texto en ruby http://koteo.lacoctelera.net/post/2009/08/10/como-contar-lineas-palabras-frases-un-texto-ruby 2009-08-10T23:27:32+00:00 Siguiendo un ejemplo del libro "Beginning Ruby from Novice to Professional" pongo este ejercicio que todo el que quiera iniciarse a ruby debería hacer para entender muchas cosas.

Para trabajar con ese ejercicio necesitamos el fichero text.txt que podemos descargarlo de http://www.rubyinside.com/book/oliver.txt

#!/usr/bin/env ruby
#
# http://koteo.lacoctelera.net

# VARIABLES
cuenta_lineas = 0
texto = ''

myfichero = File.open("text.txt").each do |line|
cuenta_lineas += 1
texto << line
end

# VARIABLES II
total_characters = texto.length
total_characters_nospaces = texto.gsub(/\s+/, '').length
total_of_words = texto.scan(/\w+/).length
total_of_words2 = texto.split.length
total_frases = texto.split(/\.|\?|!/).length
total_parrafo = texto.split(/\n\n/).length

puts "#{cuenta_lineas} lines"
puts "#{total_characters} characters"
puts "#{total_characters_nospaces} characters excluding spaces"
puts "#{total_of_words} number of words"
puts "#{total_of_words2} number of words de otra forma"
puts "#{total_frases} numero total de frases"
puts "#{total_parrafo} numero total de parrafos"
puts
puts
puts "#{total_frases / total_parrafo} frases por parrafo"
puts "#{total_of_words2 / total_frases} palabras por frase"

puts
puts 'Otra forma de hacerlo:'
puts

# OTRA FORMA DE HACERLO

lineas = File.readlines("text.txt")
line_count = lineas.size
text = lineas.join

puts "#{line_count} lines"

El resultado de la ejecución:

127 lines
6376 characters
5140 characters excluding spaces
1132 number of words
1111 number of words de otra forma
45 numero total de frases
20 numero total de parrafos

2 frases por parrafo
24 palabras por frase

Otra forma de hacerlo:

127 lines

]]>
http://koteo.lacoctelera.net/post/2009/08/10/como-contar-lineas-palabras-frases-un-texto-ruby#comentarios