viernes, 22 de junio de 2012

HtmlUnit - Desactivar trazas de advertencia de css y javascript

Añadir el siguiente código:
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
De ésta forma ya no veremos más en la consola las (molestas) trazas de HtmlUnit del tipo:
21-jun-2012 17:26:01 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ADVERTENCIA: Obsolete content type encountered: 'application/x-javascript'. 21-jun-2012 17:26:01 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ADVERTENCIA: Obsolete content type encountered: 'application/x-javascript'. 21-jun-2012 17:26:02 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ADVERTENCIA: Obsolete content type encountered: 'application/x-javascript'. 21-jun-2012 17:26:02 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ADVERTENCIA: Obsolete content type encountered: 'application/x-javascript'. 21-jun-2012 17:26:02 com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine handleJavaScriptException INFO: Caught script exception ======= EXCEPTION START ======== EcmaError: lineNumber=[797] column=[0] lineSource=[] name=[ReferenceError] sourceName=[script in http://aURL from (794, 64) to (798, 12)#797)] com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "flush" is not defined. (script in http://aURL from (794, 64) to (798, 12)#797) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:595) at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:474) at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:870) at com.gargoylesoftware.htmlunit.html.HtmlScript.executeInlineScriptIfNeeded(HtmlScript.java:302) at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:368) at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230) at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:240) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:598) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:556) at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1142) at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1044) at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206) at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329) at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3018) at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2005) at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:908) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:789) at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:225) at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:179) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:221) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:106) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:433) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:358) at es.cuponet.AirfastScrapper.main(AirfastScrapper.java:115) Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: ReferenceError: "flush" is not defined. (script in http://aURL from (794, 64) to (798, 12)#797) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3790) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3768) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3852) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:2239) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1505) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:854) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:429) at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:267) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3183) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:490) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:589) ... 32 more Enclosed exception: net.sourceforge.htmlunit.corejs.javascript.EcmaError: ReferenceError: "flush" is not defined. (script in http://aURL from (794, 64) to (798, 12)#797) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3790) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3768) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3852) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:2239) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpretLoop(Interpreter.java:1505) at script(script in http://aURL from (794, 64) to (798, 12):797) at net.sourceforge.htmlunit.corejs.javascript.Interpreter.interpret(Interpreter.java:854) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.call(InterpretedFunction.java:164) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.doTopCall(ContextFactory.java:429) at com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:267) at net.sourceforge.htmlunit.corejs.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3183) at net.sourceforge.htmlunit.corejs.javascript.InterpretedFunction.exec(InterpretedFunction.java:175) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:490) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:589) at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537) at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499) at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:474) at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:870) at com.gargoylesoftware.htmlunit.html.HtmlScript.executeInlineScriptIfNeeded(HtmlScript.java:302) at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:368) at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230) at com.gargoylesoftware.htmlunit.html.HtmlScript.onAllChildrenAddedToPage(HtmlScript.java:240) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:598) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.endElement(HTMLParser.java:556) at org.cyberneko.html.HTMLTagBalancer.callEndElement(HTMLTagBalancer.java:1142) at org.cyberneko.html.HTMLTagBalancer.endElement(HTMLTagBalancer.java:1044) at org.cyberneko.html.filters.DefaultFilter.endElement(DefaultFilter.java:206) at org.cyberneko.html.filters.NamespaceBinder.endElement(NamespaceBinder.java:329) at org.cyberneko.html.HTMLScanner$ContentScanner.scanEndElement(HTMLScanner.java:3018) at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2005) at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:908) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499) at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:789) at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:225) at com.gargoylesoftware.htmlunit.html.HTMLParser.parseHtml(HTMLParser.java:179) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:221) at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:106) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:433) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:358) at es.cuponet.AirfastScrapper.main(AirfastScrapper.java:115) ======= EXCEPTION END ======== 21-jun-2012 17:26:02 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify ADVERTENCIA: Obsolete content type encountered: 'application/x-javascript'. 21-jun-2012 17:26:03 com.gargoylesoftware.htmlunit.DefaultCssErrorHandler error ADVERTENCIA: CSS error: [563:46] Error in expression. Invalid token "=". Was expecting one of: ...

martes, 22 de mayo de 2012

lunes, 21 de mayo de 2012

Librerías javascript para crear gráficas


sábado, 12 de mayo de 2012

Descargar películas y series desde SHURWEB.es


Nos instalamos el plugin MusicSig Vkontakte Lite para el chrome. Para ello: 

  • Abrimos una nueva pestaña, 
  • Vamos a chrome web store, 
  • Buscamos el plugin 
  • Lo instalamos pinchando en "añadir a chrome" 
Sin necesidad de reiniciar el navegador, nos vamos a la página con alguna de las películas o series en shurweb.es y debajo del cuadro con el reproductor del vídeo, veremos un botón azul con el texto "Iphone/Ipad".
Lo pinchamos y se abre la página original de vk.com (el facebook ruso) con el vídeo, que debajo del cuadro del reproductor tiene enlaces para la descarga en distintos formatos.
Verás normalmente dos enlaces para la descarga, para los formatos 320x240 y 480x360. Cada uno de esos enlaces dice "Descargar"(Скачать) y en paréntesis el formato del video. La extensión es .MP4. Para descargar, pulsas el enlace, eliges el destino de descarga y a esperar.
Cuando intentas descargarlo con el administrador de descargar del propio Chrome no pone automáticamente la extensión del fichero. Y para poder abrirlo automáticamente una vez finalizada la descarga, no viene mal guardar el fichero poniéndole el nombre con esa extensión ".mp4", para que lo puedan reconocer automáticamente los reproductores.
Para las opciones de compartir (insertar el video en nuestra página dentro de un iframe), pulsar "Поделиться" y después "Получить код видео". Aparecerá un nueva ventanita con el código a insertar, similar a la que proporciona youtube para insertar vídeos.
En la FAQ de shurweb.es (películas y series gratis), sección "Cómo descargo los vídeos?" se explica éste mismo proceso.

viernes, 11 de mayo de 2012

Comentar bloque de código HTML y RUBY mezclado

Una forma un tanto laboriosa, pero al parecer la más simple que hay en rails, para comentar múltiples líneas con código ruby y html entremezclado, en los ficheros con scripts para generar vistas:

<%
=begin %>
... aquí va el código html y ruby entremezclado, que se ha deshabilitado por estar comentado
<%
=end %>
Una monstruosidad de comentarios multilínea, para un framework que presume de simplificar... En jsp por el contario, sería tan simple como rodear el bloque a comentar con <%-- y --%>.

"10 cosas" sobre Ruby para un programador de Java

10 cosas sobre Ruby para un programador de Java (en inglés)

Anidar plantillas en Rails

Método de anidar plantillas para las vistas en Rails, descrito en el blog de Matt McCray.

Fuente

Seguir a - Scott Gonzalez

Scott Gonzalez es desarrollador líder en JQuery UI, la librería de JQuery para interfaces. También activo en Node.js y WHATWG.

http://scottgonzalez.com/

JSMAG - Buen blog sobre lo último de JavaScript

El blog sobre javascript imprescindible, para estar a la última. Novedades de plugins, artículos de autoridades del sector,...

www.jsmag.com

Por ejemplo he descubierto éste fantástico plugin turnjs, que permite reproducir el efecto de paso de páginas.