Cansado de que se duerman tus free apps en Heroku ?
Podés usar un servicio de monitoreo de sitios gratuito para mantenerla arriba.
Yo estoy probando uptimeRobot que permite tener 50 sitios y hace un ping c/5 minutos.
Buenísimo, no?
hacking life
...porque cada uno es el centro de su propio universo.
martes, abril 09, 2013
lunes, enero 30, 2012
Mock de web requests fácil
Hoy me surgió la necesidad de mockear el acceso web de una clase que realiza cierto scrapper (utilizo Nokogiri y open de la sig. manera;
doc = Nokogiri::HTML(open(URL))
Luego de buscar un poco e intentar sin éxito con la gema fakeweb encontré webmock que sí me anduvo.
Luego, en el setup de la clase a testear, configuro la url que voy a acceder con el resultado que deseo que traiga:
def setup
mock_file = Rails.root.join("test", "fixtures", "some_saved_website.html")
stub_request(:get, /http:\/\/www.some_web.com\/*/).
with(:headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
to_return(:status => 200, :body => File.new(mock_file), :headers => {})
end
doc = Nokogiri::HTML(open(URL))
Luego de buscar un poco e intentar sin éxito con la gema fakeweb encontré webmock que sí me anduvo.
Agrego la gema al Gemfile:
group :test do
gem 'webmock'
end
Luego, en el setup de la clase a testear, configuro la url que voy a acceder con el resultado que deseo que traiga:
def setup
mock_file = Rails.root.join("test", "fixtures", "some_saved_website.html")
stub_request(:get, /http:\/\/www.some_web.com\/*/).
with(:headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
to_return(:status => 200, :body => File.new(mock_file), :headers => {})
end
Funciona muy bien. Hace mock de todos los requests y si falla algún otro acceso te escribe el código necesario para mockear el mismo:
1) Error:
test_scrap_some_real_data(TestBlaBlaScrapper):
WebMock::NetConnectNotAllowedError: Real HTTP connections are disabled. Unregistered request: GET http://www.xxx.com/yyyy?o=2 with headers {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}
You can stub this request with the following snippet:
stub_request(:get, "http://www.xxx.com/Internet/yyyy?o=2").
with(:headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
to_return(:status => 200, :body => "", :headers => {})
martes, noviembre 22, 2011
Vagrant en Windows o "como seguir unir dos mundos incongruentes"
Situación:
Nuestros diseñadores gráficos necesitan trabajar en el diseño de una aplicación que esta desarrollada en Ruby on Rails. Ellas utilizan los típicos programas de Adobe en la plataforma Windows.
Lo ideal es que ellos trabajen en los archivos de recursos y vean directamente los cambios reflejados con sólo recargar el navegador.
Una posible solución es la siguiente:
Correr la aplicación Rails en una máquina virtual con Ubuntu y trabajar con los fuentes a través de un directorio compartido entre el sistema anfitrión y el huesped.
Para esto voy a utilizar una herramienta llamada Vagrant, que es un front-end de VirtualBox.
Básicamente hay que instalar un par de programas, correr un par de comandos en una CMD (o línea de comandos) y editar un archivo de configuración.
Los pasos para instalar son (cuando vean líneas que comienzan con el carácter ">" es que deben ejecutarse en una CMD) :
- Bajar e instalar JRuby (parece que en Windows 64bits Vagrant no anda con Ruby MRI). Si no tienes la Java RE, podes bajar la versión con la JRE incluida.
También vamos a instalar un par de librerías que luego se van a necesitar.
> jgem install jruby-openssl jruby-win32ole
- Bajar e instalar Virtual-Box
- Instalar git. Nuestro proyecto utiliza este fantástico manejador de versiones para los fuentes.
- Instalar Vagrant con el comando:
> jgem install vagrant
- Descargar una imagen de Ubuntu Lucid 32bit y agregarla a las imágenes de Vagrant:
> vagrant box add base http://files.vagrantup.com/lucid32.box
Descargamos los fuentes del proyecto
> git clone {una_url_git_project.git}
Agregamos Vagrant al proyecto:
> cd project_dir
> vagrant init
- Editar el archivo Vagrantfile que se acabó de crear. Nuestra aplicación utiliza el puerto HTTP 3000; si queremos acceder a la aplicación desde Windows, hay que hacer un "forwarding" por lo que agregamos esta línea:
config.vm.forward_port "http", 3000, 3000
Levantar la VM:
> vagrant up
Ya tenemos una VM con Linux corriendo. Para ingresar a la máquina virtual normalmente se usa SSH, pero en Windows el comando
"vagrant ssh"
no funciona.
Se puede solucionar utilizando un programa SSH como el putty. Mas detalles aquí. Dentro de la VM, nuestro proyecto quedo instalado en el directorio /vagrant. Ahí podemos ir e instalar gemas, correr bundler, levantar la aplicación, etc.
Ya con la VM funcionando los archivos del proyecto que editemos en Windows se van a ver reflejados en el directorio /vagrant del sistema huésped.
Espero que le sirva a alguien esta burda explicación. Vagrant es mucho mas que lo mostrado. No soy un adepto de usar máquinas virtuales, pero hay que admitir que es una valiosísima herramienta que nos puede servir en muchos escenarios.
Etiquetas:
windows vm development rails ruby ror
sábado, junio 06, 2009
CouchDB: Perform like a pr0n star
Una muy buena presentación de CouchDB, una base de datos distribuida muy escalable
viernes, abril 10, 2009
Miguel 2009, 10km
El domingo a 29 de marzo a las 9:00hs se corrió la maratón de Miguel 2009 en homenaje a Miguel Sánchez organizada por el gobierno de la ciudad de Buenos Aires.
El lugar fue en Palermo, Buenos Aires, el mismo del año pasado. La distancia era de 10km y mi tiempo fue de 45 minutos, 2 segs aproximadamente.
Como el año pasado se notó un poco de mala organización como pasa con las carreras gratuitas.
Las remeras de la carrera eran gratuitas, blancas y de algodón.
La gente abusó de esto y se llevo varias x persona. Yo me llevé 2 y me sentía mal hasta que me compré un helado y me contó el heladero que él tenía 3 :D
El lugar fue en Palermo, Buenos Aires, el mismo del año pasado. La distancia era de 10km y mi tiempo fue de 45 minutos, 2 segs aproximadamente.
Como el año pasado se notó un poco de mala organización como pasa con las carreras gratuitas.
Las remeras de la carrera eran gratuitas, blancas y de algodón.
La gente abusó de esto y se llevo varias x persona. Yo me llevé 2 y me sentía mal hasta que me compré un helado y me contó el heladero que él tenía 3 :D
lunes, agosto 04, 2008
Reebok 10km 2008
Estuvo frío, pero muy buena!
Pos gral: 647
Tiempo: 00:46:05.8
Pos categ (MASCULINO 19 A 34 ANOS): 283
Pos gral: 647
Tiempo: 00:46:05.8
Pos categ (MASCULINO 19 A 34 ANOS): 283
lunes, junio 30, 2008
Suscribirse a:
Entradas (Atom)