<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title><![CDATA[blog.davidlozanolucas.com]]></title>
<link>http://blog.davidlozanolucas.com</link>
<description><![CDATA[El blog oficial.]]></description>
<language>es</language>
<pubDate>Sun, 12 Apr 2026 11:30:29 +0200</pubDate>
<lastBuildDate>Sun, 12 Apr 2026 11:30:29 +0200</lastBuildDate>
<image>
<url>http://www.davidlozanolucas.com/images/logo.gif</url>
<title>David Lozano Lucas.</title>
<link>http://blog.davidlozanolucas.com</link>
</image>
<ttl>120</ttl>
<item>
<title><![CDATA[Conectar con la API PSD2 de CaixaBank ahorrando 100.000 euros]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=157]]></link>
<description><![CDATA[<p>Si eres como yo, desarrollador, emprendedor o simplemente un "enredador" del mundo <i>fintech</i>, seguro que has tenido esta idea: "Voy a conectar mi aplicaci&oacute;n a los bancos". Y, l&oacute;gicamente, uno de los primeros que miras en Espa&ntilde;a es <b>CaixaBank</b>.</p><p>Ves en su portal de desarrolladores que tienen una <b>API PSD2</b> y piensas: "&iexcl;Genial! Esto est&aacute; hecho".</p><p>Bueno, pues d&eacute;jame ahorrarte unas cuantas semanas de frustraci&oacute;n: <b>no es tan sencillo</b>. Aqu&iacute; te cuento la soluci&oacute;n.</p><p></p><h3>El primer muro: El Banco de Espa&ntilde;a</h3><p></p><p>Lo primero que descubrir&aacute;s es que, para conectarte a esa API de CaixaBank (y a la de cualquier banco europeo), no basta con pedir una clave. Necesitas ser una entidad regulada. En concreto, necesitas una autorizaci&oacute;n llamada <b>AIS (Servicio de Informaci&oacute;n de Cuentas)</b>.</p><p>&iquest;Y qui&eacute;n da esa licencia en Espa&ntilde;a&euro; Efectivamente: el <b>Banco de Espa&ntilde;a</b>.</p><p>Las cifras:</p><ul><li><p><b>Coste inicial:</b> Preparar todo el papeleo, la tecnolog&iacute;a, los informes de seguridad y pagar las tasas para obtener la licencia AIS <b>supera holgadamente los 100.000 euros</b>.</p></li><li><p><b>Costes fijos:</b> Pero la fiesta no acaba ah&iacute;. Una vez la tienes, necesitas <b>seguros de responsabilidad civil</b> caros, pagar <b>auditor&iacute;as</b> externas cada a&ntilde;o y mantener un equipo de <i>compliance</i> que vele por todo.</p></li></ul><p>Sumado a los casi 2 a&ntilde;os que se puede tardar, es una barrera de entrada importante.</p><p></p><h3>La soluci&oacute;n</h3><p></p><p>Descartado el camino de convertirte en una entidad regulada, la soluci&oacute;n es obvia: necesitas un intermediario. Alguien que ya haya hecho esa inversi&oacute;n en tiempo y dinero y que est&eacute;n centrados en la agregaci&oacute;n bancaria.</p><p>Aqu&iacute; es donde entran los <b>AISP (Proveedores de Servicios de Informaci&oacute;n de Cuentas)</b> con licencia.</p><p>En el mercado espa&ntilde;ol, encontrar&aacute;s varias alternativas, donde la m&aacute;s destacable es&nbsp;<b>Wealthreader</b>. Cuenta con licencia del Banco de Espa&ntilde;a y ofrece una sola API limpia para conectarte a CaixaBank y a cientos de bancos m&aacute;s.</p><p>Pero, cuando investigues m&aacute;s, descubrir&aacute;s dos cosas que son las que marcan la diferencia:</p><p></p><h3>Lo que PSD2 no te da (y esto s&iacute;)</h3><p></p><p>La regulaci&oacute;n PSD2 solo obliga a los bancos a mostrar las "cuentas de pago". Es decir,&nbsp;<b>cuentas corrientes</b> y nada m&aacute;s.</p><p>La tecnolog&iacute;a de Wealthreader no solo usa el canal PSD2, sino que lo complementa para agregar <b>todos los productos</b>:</p><ul><li><p>Carteras de inversi&oacute;n (fondos, acciones...)</p></li><li><p>Pr&eacute;stamos e hipotecas</p></li><li><p>Tarjetas de cr&eacute;dito</p></li></ul><p>De poco sirve ver el saldo y movimientos de la cuenta corriente, si los gastos los hace con la tarjeta de cr&eacute;dito. Conocer el detalle de sus inversiones o pr&eacute;stamos puede ser informaci&oacute;n que haga tu producto final m&aacute;s completo.</p><p></p><h3>Pensando en global: M&aacute;s all&aacute; de Europa</h3><p></p><p>El segundo punto clave es la geograf&iacute;a. La PSD2 es europea. Los AISP se limitan a operar en la UE.</p><p>Pero si tu proyecto tiene ambici&oacute;n internacional (o simplemente tienes clientes con cuentas en Suiza, EE.UU. o Latinoam&eacute;rica), necesitas m&aacute;s. Wealthreader, por ejemplo, opera en <b>toda la Uni&oacute;n Europea y otros 14 pa&iacute;ses m&aacute;s</b>.</p><p></p><p>As&iacute; que, en resumen: s&iacute;, CaixaBank tiene una API, pero no, probablemente no quieras conectarte a ella directamente. La barrera regulatoria es real y car&iacute;sima. Apoyarse en un AISP que ya tenga la licencia es la soluci&oacute;n.</p>    ]]></description>
<pubDate>Fri, 07 Nov 2025 11:20:38 +0100</pubDate>
</item>
<item>
<title><![CDATA[Alternativas a Afterbanks]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=156]]></link>
<description><![CDATA[Hablar de <strong data-start="288" data-end="317">alternativas a Afterbanks</strong> tiene para mí un matiz especial. Fundé Afterbanks hace más de una década y lo llevé hasta convertirse en el referente español de agregación bancaria, antes de venderlo en 2019. Desde entonces, el mercado ha cambiado radicalmente. La PSD2 abrió la puerta al <em data-start="575" data-end="589">open banking</em>, pero las necesidades reales de las empresas y particulares van mucho más allá: inversiones, préstamos, seguros, factoring, traspasos entre entidades… todo aquello que no aparecía en las APIs regulatorias.<div><br></div><div>Con esa visión nació <strong data-start="804" data-end="820">Wealthreader</strong>, un proyecto independiente, 100% español, impulsado por el mismo equipo fundador que ya demostró lo que podía hacer con Afterbanks. Y puedo decir con orgullo que hoy, clientes de referencia como <strong data-start="1016" data-end="1064">Singular Bank, Cobas AM, Unidesys, Adiss o OKticket</strong> han elegido Wealthreader, no por marketing, sino por <strong data-start="1118" data-end="1157">cobertura, fiabilidad y boca a boca</strong><br><div><br></div><div><h2 data-start="1204" data-end="1245">Principales alternativas en el mercado</h2>
<p data-start="1247" data-end="1384">Hoy en día existen varios actores que ofrecen soluciones de agregación bancaria y financiera. Cada uno con sus fortalezas y limitaciones:</p></div><div><br></div><div><table><thead>
<tr>
<th>Proveedor</th>
<th>Fortalezas principales</th>
<th>Limitaciones</th>
<th>Enfoque geográfico</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong><a href="https://www.powens.com/" title="Powens" target="">Powens</a></strong> (antes Budget Insight)</td>
<td>Fuerte cumplimiento regulatorio, buena cobertura en Francia</td><td>Limitados a PSD2 fuera de Francia</td>
<td>Francia, España y Europa</td>
</tr>
<tr>
<td><strong><a href="https://www.tink.com/" title="Tink" target="">Tink</a></strong> (Visa)</td>
<td>Amplia cobertura, servicios adicionales (pagos, categorización)</td>
<td>Enfoque en pagos y cuentas, menos en productos complejos</td>
<td>Europa</td>
</tr>
<tr>
<td><strong><a href="https://www.plaid.com/" title="Plaid" target="">Plaid</a></strong></td>
<td>Simplicidad de integración, marca consolidada</td><td>Sin cobertura en España y LATAM</td>
<td>EE. UU., UK</td>
</tr>
<tr>
<td><strong><a href="https://www.wealthreader.com/" title="Wealthreader" target="">Wealthreader</a></strong></td>
<td>Granularidad total: cuentas, tarjetas, préstamos, fondos, seguros, acciones, pensiones. Conectividad en 220 bancos de 14 países. Nuevos conectores en días, no meses. Clientes de referencia en banca, ERPs y <em>fintech</em>.</td>
<td>Más reciente en el mercado, pero con fuerte tracción</td>
<td>España, Europa, México, Colombia y parcial en otros países de Latam</td>
</tr>
</tbody></table><br></div><div><br></div><div><h2 data-start="2359" data-end="2391">La diferencia de Wealthreader</h2>
<p data-start="2393" data-end="2665">Lo que distingue a Wealthreader no es sólo la tecnología, sino también la <strong data-start="2467" data-end="2513">ambición y experiencia del equipo fundador</strong>. Venimos con la perspectiva de qué funcionaba y qué no en el mercado. Con Wealthreader decidimos ir más lejos:</p>
<ul data-start="2667" data-end="3298">
<li data-start="2667" data-end="2770">
<p data-start="2669" data-end="2770"><strong data-start="2669" data-end="2687">Independencia:</strong> somos una empresa 100% española, sin depender de grandes grupos internacionales.</p>
</li>
<li data-start="2771" data-end="2937">
<p data-start="2773" data-end="2937"><strong data-start="2773" data-end="2787">Cobertura:</strong> integramos nuevos bancos en menos de una semana y ofrecemos acceso a todos los productos.</p>
</li>
<li data-start="2938" data-end="3096">
<p data-start="2940" data-end="3096"><strong data-start="2940" data-end="2965">Clientes satisfechos:</strong> entidades de primer nivel ya nos han elegido por recomendación de otros clientes, un crecimiento orgánico que habla por sí solo.</p>
</li>
<li data-start="3097" data-end="3298">
<p data-start="3099" data-end="3298"><strong data-start="3099" data-end="3124">Visión a largo plazo:</strong> creemos en un estándar de <em data-start="3151" data-end="3164">open wealth</em> global, que no se limite a cuentas corrientes, sino que abarque todo el patrimonio financiero.</p>
</li>
</ul><div>Además, participamos activamente en asociaciones internacionales que están definiendo los <strong data-start="398" data-end="443">estándares del open banking y open wealth</strong>, lo que nos permite anticipar hacia dónde va el sector y adaptar nuestra tecnología a esos cambios. Ese reconocimiento también se ha reflejado en diversos <strong data-start="599" data-end="633">premios y menciones del sector</strong>, que validan la solidez de nuestra propuesta.</div>
<hr data-start="3300" data-end="3303">
<h3 data-start="3305" data-end="3319">Conclusión</h3>
<p data-start="3321" data-end="3667">Afterbanks abrió camino en España. Hoy, <strong data-start="3361" data-end="3398">las alternativas son más diversas</strong>, pero también más especializadas. Powens, Tink o Plaid son opciones válidas en sus mercados, pero cuando lo que se busca es <strong data-start="3523" data-end="3604">profundidad en los datos, rapidez en las integraciones y visión internacional</strong>, Wealthreader se está consolidando como la opción preferida.</p>
<p data-start="3669" data-end="3907">Y lo más importante: seguimos siendo un proyecto <strong data-start="3718" data-end="3774">independiente, nacido en España, con ambición global</strong>.</p></div></div>]]></description>
<pubDate>Tue, 26 Aug 2025 13:03:03 +0100</pubDate>
</item>
<item>
<title><![CDATA[El cuento de los auriculares digitales: Por qué la física no miente]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=155]]></link>
<description><![CDATA[<p class="whitespace-normal break-words">Cada vez que Apple elimina el jack de 3.5mm de un dispositivo, o cuando Samsung presenta sus nuevos auriculares USB-C "con sonido digital superior", los departamentos de marketing se frotan las manos. Nos venden la idea de que por fin hemos dado el salto definitivo al audio digital, dejando atrás la "obsoleta" tecnología analógica. Pero, ¿es realmente así€ Spoiler: la física tiene otras ideas.</p>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">La verdad incómoda que nadie te cuenta</h2>
<p class="whitespace-normal break-words">Aquí va la realidad que los fabricantes prefieren que no sepas: <strong>todos los auriculares son analógicos</strong>. Sí, has leído bien. Incluso esos flamantes auriculares USB-C que acabas de comprar por 150€ prometiendo "sonido digital puro".</p>
<p class="whitespace-normal break-words">¿Por qué€ Porque tus oídos son analógicos. El aire que vibra para crear el sonido es analógico. Y, lo más importante, los altavoces diminutos dentro de tus auriculares necesitan una señal analógica para funcionar. No hay vuelta de hoja: en algún momento, esa señal digital tiene que convertirse en analógica.</p>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">Dónde está realmente la diferencia</h2>
<p class="whitespace-normal break-words">La única diferencia real entre auriculares USB-C y jack tradicional es <strong>dónde ocurre la conversión digital-analógica</strong>:</p>
<p class="whitespace-normal break-words"><strong>Con jack 3.5mm:</strong></p>
<ul class="[&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7">
<li class="whitespace-normal break-words">Tu teléfono/ordenador convierte la señal digital en analógica</li>
<li class="whitespace-normal break-words">Esta señal analógica viaja por el cable hasta los auriculares</li>
<li class="whitespace-normal break-words">Los auriculares la reproducen directamente</li>
</ul>
<p class="whitespace-normal break-words"><strong>Con USB-C "digital":</strong></p>
<ul class="[&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7">
<li class="whitespace-normal break-words">Tu teléfono envía la señal digital por el cable</li>
<li class="whitespace-normal break-words">Los auriculares convierten esa señal digital en analógica</li>
<li class="whitespace-normal break-words">Los auriculares la reproducen</li>
</ul>
<p class="whitespace-normal break-words">¿Ves la diferencia€ Hemos movido el convertidor digital-analógico (DAC) del teléfono a los auriculares. Punto.</p>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">El mito de la "pureza digital"</h2>
<p class="whitespace-normal break-words">Los fabricantes te dirán que mantener la señal digital hasta el último momento es superior porque:</p>
<ol class="[&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-decimal space-y-1.5 pl-7">
<li class="whitespace-normal break-words"><strong>Evita interferencias en el cable</strong></li>
<li class="whitespace-normal break-words"><strong>Permite mejor control del DAC</strong></li>
<li class="whitespace-normal break-words"><strong>Posibilita procesamiento digital avanzado</strong></li>
</ol>
<p class="whitespace-normal break-words">Vamos por partes:</p>
<h3 class="text-lg font-bold text-text-100 mt-1 -mb-1.5">Las interferencias fantasma</h3>
<p class="whitespace-normal break-words">En un cable de 1-2 metros, las interferencias electromagnéticas son prácticamente inexistentes si usas un cable decente. No estamos hablando de tendidos eléctricos de kilómetros. Tu cable de auriculares no va a captar la radio de tu vecino.</p>
<h3 class="text-lg font-bold text-text-100 mt-1 -mb-1.5">El DAC "optimizado"</h3>
<p class="whitespace-normal break-words">Esto puede ser cierto... o no. Depends completamente de la calidad del DAC que integren en los auriculares. Un DAC barato en auriculares USB-C puede sonar peor que un buen DAC integrado en tu teléfono. Es como decir que todos los coches son mejores que todas las bicicletas: depende del coche y de la bicicleta.</p>
<h3 class="text-lg font-bold text-text-100 mt-1 -mb-1.5">El procesamiento digital</h3>
<p class="whitespace-normal break-words">Aquí sí hay algo de verdad. Los auriculares USB-C pueden incluir procesamiento digital como cancelación de ruido, ecualizadores o efectos espaciales. Pero esto también se puede hacer en el dispositivo fuente y enviar por jack analógico.</p>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">Cuándo sí tiene sentido el USB-C</h2>
<p class="whitespace-normal break-words">No todo es marketing. Los auriculares USB-C tienen sentido en algunos casos:</p>
<p class="whitespace-normal break-words"><strong>Cancelación de ruido activa:</strong> Necesita procesamiento digital y alimentación eléctrica, que USB-C puede proporcionar.</p>
<p class="whitespace-normal break-words"><strong>Auriculares gaming:</strong> Pueden beneficiarse del procesamiento digital para efectos espaciales y comunicación.</p>
<p class="whitespace-normal break-words"><strong>Dispositivos sin jack:</strong> Si tu teléfono no tiene jack 3.5mm, obviamente necesitas una alternativa.</p>
<p class="whitespace-normal break-words"><strong>Auriculares de muy alta gama:</strong> Donde el control total sobre el DAC puede marcar diferencias sutiles.</p>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">La realidad práctica</h2>
<p class="whitespace-normal break-words">Para el 95% de usuarios, la diferencia entre buenos auriculares USB-C y buenos auriculares con jack es imperceptible. La calidad del sonido depende mucho más de:</p>
<ul class="[&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7">
<li class="whitespace-normal break-words">Los propios transductores (altavoces) de los auriculares</li>
<li class="whitespace-normal break-words">El ajuste y sellado en tus oídos</li>
<li class="whitespace-normal break-words">La calidad de la grabación que estés escuchando</li>
<li class="whitespace-normal break-words">El DAC utilizado (sea en el teléfono o en los auriculares)</li>
</ul>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">Por qué entonces se eliminan los jacks</h2>
<p class="whitespace-normal break-words">Si la diferencia es tan mínima, ¿por qué los fabricantes eliminan los jacks€ Las razones son más prácticas que técnicas:</p>
<ol class="[&:not(:last-child)_ul]:pb-1 [&:not(:last-child)_ol]:pb-1 list-decimal space-y-1.5 pl-7">
<li class="whitespace-normal break-words"><strong>Espacio interno:</strong> El jack ocupa espacio valioso en dispositivos cada vez más finos</li>
<li class="whitespace-normal break-words"><strong>Resistencia al agua:</strong> Un puerto menos que sellar</li>
<li class="whitespace-normal break-words"><strong>Control del ecosistema:</strong> Forzar el uso de sus propios auriculares o adaptadores</li>
<li class="whitespace-normal break-words"><strong>Costes:</strong> Eliminar componentes reduce costes de fabricación</li>
</ol>
<h2 class="text-xl font-bold text-text-100 mt-1 -mb-0.5">La conclusión que nadie quiere admitir</h2>
<p class="whitespace-normal break-words">Los auriculares USB-C no son una estafa, pero tampoco son la revolución que nos venden. Son una solución técnica válida para problemas específicos, envuelta en una narrativa de marketing que exagera sus beneficios.</p>
<p class="whitespace-normal break-words">La física no miente: el sonido siempre será analógico en el último tramo, y unos metros de cable analógico de calidad no van a arruinar tu experiencia auditiva.</p>
<p class="whitespace-normal break-words">Así que la próxima vez que veas "sonido digital superior" en unos auriculares, sonríe y recuerda: tu oído sigue siendo analógico, y eso no va a cambiar pronto.</p>    ]]></description>
<pubDate>Tue, 22 Jul 2025 09:11:59 +0100</pubDate>
</item>
<item>
<title><![CDATA[APIs Bancarias: Lo que toda empresa necesita conocer]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=154]]></link>
<description><![CDATA[<div data-test-render-count="2"><div style="height: auto;"><div data-is-streaming="false" class="group  relative  -tracking-[0.015em] pb-8"><div class="font-claude-message  relative  leading-[1.65rem]  [&amp;_pre>div]:bg-bg-300  [&amp;_.ignore-pre-bg>div]:bg-transparent  [&amp;>div>div>:is(p,blockquote,h1,h2,h3,h4,h5,h6)]:pl-2  [&amp;>div>div>:is(p,blockquote,ul,ol,h1,h2,h3,h4,h5,h6)]:pr-8"><div tabindex="0"><div class="grid-cols-1 grid gap-2.5 [&amp;_>_*]:min-w-0"><p><font size="4">En la actualidad, estamos presenciando una revoluci&oacute;n en el sector financiero gracias a las APIs bancarias. Estas interfaces de programaci&oacute;n est&aacute;n cambiando radicalmente la forma en que empresas y usuarios interact&uacute;an con sus datos financieros. Vamos a explorar qu&eacute; son exactamente y c&oacute;mo est&aacute;n transformando el panorama financiero.</font></p><h2>Qu&eacute; son las APIs bancarias</h2><p>Una API (Interfaz de Programaci&oacute;n de Aplicaciones) bancaria funciona como un intermediario que permite la comunicaci&oacute;n segura entre distintos sistemas inform&aacute;ticos. En t&eacute;rminos sencillos, es un puente que conecta los datos de un banco con aplicaciones externas, facilitando el intercambio de informaci&oacute;n de forma segura y estandarizada.</p><p>Imagina poder visualizar todos tus productos financieros en una sola aplicaci&oacute;n: cuentas corrientes, tarjetas de cr&eacute;dito, pr&eacute;stamos e inversiones, incluso si estos productos est&aacute;n distribuidos en diferentes entidades bancarias. Esto es precisamente lo que permiten las APIs bancarias: conectar diversos servicios financieros para crear experiencias m&aacute;s completas y personalizadas.</p><h2>Open Banking y PSD2</h2><p>Este ecosistema de conexiones est&aacute; impulsado por el Open Banking o Banca Abierta, un movimiento global que promueve la transparencia y la innovaci&oacute;n en el sector financiero.</p><p>En Europa, la Directiva de Servicios de Pago 2 (PSD2) estableci&oacute; en 2018 las bases regulatorias que han sido adoptadas posteriormente en otras regiones como M&eacute;xico, Colombia o Chile. Esta normativa obliga a los bancos a facilitar el acceso a la informaci&oacute;n de sus clientes mediante APIs, siempre contando con el consentimiento expl&iacute;cito del usuario.</p><p>La regulaci&oacute;n ha permitido el surgimiento de nuevos servicios y aplicaciones que mejoran la experiencia financiera tanto de individuos como de empresas, manteniendo altos est&aacute;ndares de seguridad y protecci&oacute;n de datos.</p><h2>Tipos de APIs bancarias y sus funciones</h2><p>Los servicios de Agregaci&oacute;n Bancaria permiten, a trav&eacute;s de las APIs, visualizar informaci&oacute;n consolidada de todas tus cuentas bancarias en un solo lugar. Sin embargo, los usos de estas interfaces van mucho m&aacute;s all&aacute;, extendi&eacute;ndose a:</p><ul>
<li>Verificaci&oacute;n de identidad</li>
<li>An&aacute;lisis crediticio</li>
<li>Herramientas de tesorer&iacute;a</li>
</ul><h2>Beneficios para empresas y usuarios</h2><p>Las ventajas de las APIs bancarias son significativas tanto para empresas como para usuarios finales.</p><p>Para las empresas representan una oportunidad de innovaci&oacute;n sin precedentes, permitiendo:</p><ul>
<li>Reducir costos operativos mediante la automatizaci&oacute;n</li>
<li>Agilizar procesos como la verificaci&oacute;n de identidad y solvencia</li>
<li>Desarrollar nuevos modelos de negocio basados en datos</li>
<li>Ofrecer servicios financieros personalizados</li>
</ul><p>Los usuarios tambi&eacute;n obtienen beneficios importantes:</p><ul>
<li>Una visi&oacute;n completa y unificada de todas sus finanzas</li>
<li>Mayor control sobre sus datos financieros</li>
<li>Acceso a servicios financieros m&aacute;s personalizados</li>
</ul><p>Seg&uacute;n datos recientes, el uso de APIs bancarias ha mostrado un crecimiento exponencial, con m&aacute;s de 2 mil millones de llamadas exitosas en 2023, y se proyecta que alcance 580 mil millones para 2027.</p><h2>Principales proveedores y soluciones</h2><p>En el mercado actual encontramos diversos proveedores que ofrecen servicios de APIs bancarias. Entre los m&aacute;s destacados est&aacute;n:</p><ul>
<li><strong>Tink</strong>: Ahora propiedad de VISA, ofrece servicios de agregaci&oacute;n para m&aacute;s de 2,500 instituciones financieras en Europa.</li>
<li><strong>Plaid</strong>: Proporciona un agregador financiero que permite gestionar cuentas de diversas entidades, principalmente en Estados Unidos.</li>
<li><strong>Wealthreader</strong>: Una API de agregaci&oacute;n bancaria de nueva generaci&oacute;n que permite acceder a informaci&oacute;n detallada de productos financieros en 14 pa&iacute;ses, incluyendo Espa&ntilde;a, Andorra, Luxemburgo, Suiza, Colombia y M&eacute;xico.</li>
</ul><h2>Seguridad y protecci&oacute;n de datos</h2><p>Un aspecto fundamental de las APIs bancarias es la seguridad. Estas interfaces implementan robustos protocolos como:</p><ul>
<li>Autenticaci&oacute;n reforzada de clientes</li>
<li>Conexiones cifradas</li>
<li>Monitorizaci&oacute;n en tiempo real para detectar actividades sospechosas</li>
</ul><p>Es importante destacar que los usuarios siempre mantienen el control sobre sus datos, pudiendo autorizar o revocar el acceso en cualquier momento. Adem&aacute;s, las entidades que ofrecen estos servicios deben contar con autorizaci&oacute;n espec&iacute;fica. En Espa&ntilde;a, esta autorizaci&oacute;n se tramita a trav&eacute;s del Banco de Espa&ntilde;a.</p><h2>Implementaci&oacute;n de APIs bancarias en tu negocio</h2><p>Si est&aacute;s considerando implementar APIs bancarias en tu negocio, estos son los pasos que debes seguir:</p><ol>
<li>Identifica tus necesidades espec&iacute;ficas</li>
<li>Investiga los proveedores disponibles y compara sus servicios</li>
<li>Verifica que cumplen con todas las normativas aplicables</li>
<li>Eval&uacute;a la cobertura de bancos e instituciones financieras que ofrecen</li>
<li>Analiza su infraestructura t&eacute;cnica y documentaci&oacute;n para desarrolladores</li>
<li>Considera los costos de implementaci&oacute;n y mantenimiento</li>
</ol><p>Recuerda que una implementaci&oacute;n adecuada puede ser determinante para el &eacute;xito de tu proyecto.</p><h2>El futuro de las APIs bancarias</h2><p>Las APIs bancarias continuar&aacute;n evolucionando y expandi&eacute;ndose, con tendencias como:</p><ul>
<li>Mayor integraci&oacute;n con tecnolog&iacute;as emergentes como la Inteligencia Artificial</li>
<li>Expansi&oacute;n global de las regulaciones de Open Banking</li>
<li>Servicios cada vez m&aacute;s personalizados basados en an&aacute;lisis avanzado de datos</li>
<li>Nuevos modelos de negocio basados en la monetizaci&oacute;n de APIs</li>
</ul><p>Se proyecta que el valor del mercado global de Open Banking alcance los 11.7 mil millones de euros para 2028, lo que refleja el enorme potencial de estas tecnolog&iacute;as.</p><h2>Conclusi&oacute;n</h2><p>Las APIs bancarias est&aacute;n creando un ecosistema m&aacute;s abierto, innovador y centrado en el usuario. Ya sea que representes a un banco, una fintech o cualquier empresa que busque mejorar sus servicios financieros, estas interfaces ofrecen oportunidades sin precedentes.</p><p class="whitespace-pre-wrap break-words">



































</p><p>No se trata solo de tecnolog&iacute;a, sino de una nueva forma de pensar y crear valor en el sector financiero. Las APIs bancarias est&aacute;n redefiniendo la manera en que interactuamos con nuestras finanzas, proporcionando mayor transparencia, control y personalizaci&oacute;n tanto para empresas como para usuarios finales.</p><p><br></p><p><br></p></div></div></div></div></div></div>
<iframe width="560" height="315" src="https://www.youtube.com/embed/pUOCMK5PMVs?si=_GywxAjafzS9rOmm" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>        ]]></description>
<pubDate>Mon, 07 Apr 2025 00:40:36 +0100</pubDate>
</item>
<item>
<title><![CDATA[Open Banking: La banca del futuro ya está aquí]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=153]]></link>
<description><![CDATA[<p>¿Alguna vez te has preguntado cómo sería tener <strong>control total sobre tus datos financieros</strong> y poder acceder a <strong>servicios personalizados</strong> que se adapten a tus necesidades? El <strong>Open Banking</strong> ha llegado para hacer esto posible.</p><h2>¿Qué es el Open Banking?</h2><p>El <strong>Open Banking</strong>, o banca abierta, es un sistema que permite <strong>compartir información financiera de forma segura y digital con terceros autorizados</strong>, siempre con el <strong>consentimiento expreso</strong> del cliente. Esta práctica se lleva a cabo a través de <strong>interfaces de programación de aplicaciones (APIs)</strong>, que facilitan el intercambio de datos entre diferentes instituciones financieras y proveedores de servicios.</p><p>En esencia, el <strong>Open Banking</strong> <strong>traslada el poder sobre los datos financieros al cliente</strong>, permitiéndole decidir con quién y cómo se comparten sus datos.</p><h2>¿Cómo funciona el Open Banking?</h2><p>El funcionamiento del <strong>Open Banking</strong> se basa en las <strong>APIs</strong>, que actúan como puentes de comunicación entre bancos y proveedores de servicios. El proceso general es el siguiente:</p><ul>    <li>El cliente da su <strong>consentimiento</strong> para que un tercero acceda a sus datos bancarios.</li>    <li>El tercero utiliza las <strong>APIs</strong> del banco para acceder a la información del cliente.</li>    <li>El proceso está regulado para garantizar la <strong>seguridad de los datos</strong> y la <strong>privacidad del cliente</strong>, cumpliendo con normativas como la <strong>GDPR</strong>.</li></ul><h2>Ventajas del Open Banking</h2><p>El <strong>Open Banking</strong> ofrece múltiples beneficios tanto para consumidores como para empresas:</p><ul>    <li><strong>Mayor control sobre los datos:</strong> Los usuarios tienen el poder de decidir quién accede a su información financiera y para qué fines.</li>    <li><strong>Servicios personalizados:</strong> Las empresas pueden ofrecer productos y servicios que se ajusten mejor a las necesidades individuales de cada cliente.</li>    <li><strong>Mayor transparencia:</strong> Facilita el acceso a la información financiera, permitiendo a los clientes comparar productos y servicios de manera más sencilla.</li>    <li><strong>Innovación:</strong> Permite a <strong>fintechs</strong> y otras empresas desarrollar servicios financieros más competitivos.</li>    <li><strong>Eficiencia:</strong> Reduce la necesidad de procesos manuales, acelerando las operaciones y disminuyendo los costes.</li>    <li><strong>Fomento de la competencia:</strong> Permite que un mayor número de empresas compitan en el sector de los servicios financieros, impulsando la innovación.</li>    <li><strong>Inclusión financiera:</strong> Facilita el acceso a servicios bancarios a sectores de la población que antes no tenían acceso.</li></ul><h2>El Open Banking en España y el mundo</h2><p>En Europa, el <strong>Open Banking</strong> está regulado por la <strong>Directiva de Servicios de Pago 2 (PSD2)</strong>, que busca aumentar la seguridad de los pagos electrónicos, proteger a los consumidores y fomentar la innovación. En <strong>España</strong>, la <strong>PSD2</strong> ha impulsado el crecimiento del <strong>Open Banking</strong>, permitiendo que las empresas <strong>fintech</strong> ofrezcan soluciones más rápidas y personalizadas.</p><p>A nivel global, el <strong>Open Banking</strong> está en expansión, con países como Reino Unido liderando la adopción de esta tecnología.</p><h2>¿Es seguro el Open Banking?</h2><p>La seguridad es una prioridad en el <strong>Open Banking</strong>. La normativa exige que se informe a los clientes sobre qué datos se utilizarán y con qué fin, y que se les permita retirar su consentimiento en cualquier momento. Además, se establecen límites claros sobre la información que se puede ceder, garantizando que el cliente siempre tenga el control de sus datos.</p><h2>Eligiendo tu Plataforma de Open Banking: ¿Por qué Wealth Reader?</h2><p>Con el auge del Open Banking, existen <strong>múltiples opciones</strong> para aprovechar sus ventajas. Sin embargo, es crucial elegir una plataforma que no solo ofrezca <strong>seguridad</strong> y <strong>cumplimiento normativo</strong>, sino también una <strong>visión de futuro</strong> y un <strong>equipo experto</strong>. En este sentido, <strong>Wealth Reader</strong> se destaca como una de las <strong>mejores opciones en España</strong>.</p><p>Wealth Reader no solo te permite <strong>gestionar tus finanzas de forma centralizada y segura</strong>, sino que también cuenta con un equipo con <strong>amplia experiencia en el mercado español</strong>. Su enfoque en la <strong>innovación</strong> y la <strong>personalización</strong> te asegura que estarás a la vanguardia de las últimas tendencias en Open Banking.</p><h2>El futuro del Open Banking</h2><p>El <strong>Open Banking</strong> tiene el potencial de transformar radicalmente el sector financiero, ofreciendo a los consumidores mayor control, transparencia y acceso a servicios personalizados. A medida que la tecnología avanza y la regulación se adapta, podemos esperar que el <strong>Open Banking</strong> juegue un papel cada vez más importante en nuestras vidas financieras.</p>]]></description>
<pubDate>Wed, 05 Mar 2025 08:41:54 +0100</pubDate>
</item>
<item>
<title><![CDATA[Detectar llamadas de spam en iPhone, similar a Android]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=152]]></link>
<description><![CDATA[<div>iPhone no tiene de forma nativa la detecci&oacute;n de llamadas de spam, como s&iacute; tiene Android. Aqu&iacute; algunas alternativas sugeridas por ChatGPT.</div><div><br></div><div>Yo estoy usando la versi&oacute;n free de Truecaller y, de momento, est&aacute; uncionando muy bien muy bien.</div><ol><li><p><strong>Aplicaciones de terceros</strong>:</p><ul><li><strong>Truecaller</strong>: Es una de las aplicaciones m&aacute;s populares y efectivas en Espa&ntilde;a para identificar llamadas de spam. Tiene una base de datos amplia y actualizada con n&uacute;meros reportados como spam por los usuarios.</li><li><strong>Hiya</strong>: Esta es otra opci&oacute;n confiable, que tambi&eacute;n ofrece identificaci&oacute;n de llamadas y bloqueo de spam. Hiya colabora con varias operadoras para proporcionar un servicio robusto.</li><li><strong>Call Blocker</strong>: Otra aplicaci&oacute;n utilizada en Espa&ntilde;a, que permite bloquear llamadas de spam y tambi&eacute;n tiene una base de datos de n&uacute;meros reportados.</li></ul></li><li><p><strong>Servicios de operadoras</strong>:</p><ul><li><strong>Vodafone</strong>: Ofrece un servicio llamado <strong>Call Filter</strong> que bloquea autom&aacute;ticamente llamadas de spam y n&uacute;meros sospechosos.</li><li><strong>Movistar</strong>: Tambi&eacute;n ofrece servicios de identificaci&oacute;n de llamadas molestas a trav&eacute;s de su funci&oacute;n <strong>Movistar Call Protect</strong>.</li><li><strong>Orange</strong>: Cuenta con un servicio similar llamado <strong>Orange Protect</strong>, que identifica y bloquea llamadas no deseadas.</li></ul></li><li><p><strong>Silenciar llamadas desconocidas</strong>:</p><ul><li>Si bien esta funci&oacute;n no identifica activamente el spam, s&iacute; ayuda a reducir el n&uacute;mero de llamadas molestas al enviarlas directamente al buz&oacute;n de voz si no est&aacute;n en tus contactos. Esto puede ser &uacute;til en combinaci&oacute;n con las aplicaciones mencionadas.</li></ul></li></ol><p>En general, <strong>Truecaller</strong> y los servicios de las operadoras como Vodafone y Movistar son los m&aacute;s utilizados y recomendados en Espa&ntilde;a para la identificaci&oacute;n y bloqueo de llamadas de spam.</p>        ]]></description>
<pubDate>Wed, 14 Aug 2024 16:11:21 +0100</pubDate>
</item>
<item>
<title><![CDATA[Cafeterías coworking friendly en Valencia]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=150]]></link>
<description><![CDATA[Necesitaba una cafetería en Valencia donde poder responder correos y organizarme el día.<div>Encontré este listado:</div><div><br></div><div><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">1. Pastelería Nuezcafé. Carrer del Convent de Sant Francesc, 6,</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">2. La Petite Brioche Sorní. C/ de Sorní, 28</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">3. Federal Valencia. Carrer de l’Ambaixador Vich, 15</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">4. Trencat.C. del Trench, 21</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">5. Coffee Corner. Calle de Pérez Bayer, 5</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">6. Café Rialto. Plaça de l’Ajuntament, 17</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">7. Café de las Horas. Carrer del Comte d’Almodóvar, 1</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">8. Savoiardi. Carrer de Ribera, 16</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">9. DDL Boutique. Carrer de Sant Vicent Màrtir, 52</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">10. Ubik Café Cafetería Librería. Carrer del Literat Azorín, 13</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">11. El Cafetín Valencia. Plaça de Sant Jaume, 2</span><br style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);"><span style="color: rgb(232, 234, 237); font-family: Roboto, Arial, sans-serif; font-size: 14px; font-variant-ligatures: none; letter-spacing: 0.2px; white-space: pre-wrap; background-color: rgb(32, 33, 36);">12. Sweets & Coffee. Carrer de Cirilo Amorós, 2</span></div><div><br></div><div>en este blog: https://llumcoworking.com/las-12-mejores-cafeterias-para-trabajar-en-valencia/</div><div><br></div><div>Pero no sé cuál está más cerca de la estación de tren. Así que mi aportación a ese listado es este mapa:</div><div><br><iframe src="https://www.google.com/maps/d/embed?mid=1xS_VvxqSEdMBd50yBDNkuKDeemt3tzE&ehbc=2E312F" width="640" height="480"></iframe></div>]]></description>
<pubDate>Tue, 23 Jan 2024 23:33:18 +0100</pubDate>
</item>
<item>
<title><![CDATA[Cambiar la password de un disco cifrado con APFS]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=149]]></link>
<description><![CDATA[<div>Obt&eacute;n el listado de tus discos conectados:</div><div><br></div><div><font face="courier new">sudo diskutil apfs list</font></div><div><br></div><div>Obt&eacute;n el UUID del usuario:</div><div><font face="courier new"><br></font></div><div><font face="courier new">sudo diskutil apfs listUsers </font><volumen apfs,="" por="" ejemplo:="" disk1s1=""></volumen></div><div><br></div><div>Cambia el password:</div><div><br></div><div><font face="courier new">sudo diskutil apfs changePassphrase </font><volumen apfs,="" por="" ejemplo:="" disk1s1=""><font face="courier new"> -user </font><el uuid=""></el></volumen></div>            ]]></description>
<pubDate>Wed, 14 Dec 2022 12:33:38 +0100</pubDate>
</item>
<item>
<title><![CDATA[Adequate, un blog sobre fintech]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=148]]></link>
<description><![CDATA[<p style="font-size: 16px; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-shadow: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-shadow-colored: 0 0 transparent; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; margin: 1.25em 0px; caret-color: rgb(55, 65, 81); color: rgb(55, 65, 81); font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; white-space: pre-wrap;">He comenzado a escribir un blog sobre el mundo de la tecnología financiera: <a href="https://www.adequate.is/" title="Blog fintech" target="">Adequate</a>. Escribiré desde reseñas de nuevas aplicaciones y plataformas hasta análisis de las últimas noticias.<br></p>    ]]></description>
<pubDate>Wed, 07 Dec 2022 12:15:17 +0100</pubDate>
</item>
<item>
<title><![CDATA[Etiquetas insertadas por Google y Amazon en ficheros MP3]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=147]]></link>
<description><![CDATA[Google Music ha sido un servicio que he utilizado muchos años casi a diario, pero Google ha cerrado en diciembre de 2020.<div><br></div><div>Te permitía almacenar en sus servidores tus propios ficheros MP3 y gestionarlos desde su reproductor. Además, durante la subida, si detectaban que tenían una versión de la misma canción a mayor calidad, no usaban tu fichero sino el suyo, por lo que mi colección mejoró muchísimo: mayor calidad de audio, carátulas... A decir verdad, Amazon Music en sus orígenes funcionaba de la misma manera, y tuve mi colección de música algún tiempo antes.</div><div><br></div><div>Google ha tenido el detalle de permitir descargar toda tu colección con muy pocos clics. Los ficheros están, aunque con una organización de carpetas que solo pueden entender ellos. Me he decido a ordenarla para luego ver qué opciones tengo de sincronizar con Spotify y dejar archivado en un disco duro. Así que me he preparado un script para leer la metainformación de cada fichero .mp3 y moverlo a carpetas con el nombre del album.</div><div><br></div><div>La mejor opción de las que he visto para leer la información de un mp3 desde línea de comando es esta:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div style="color: rgb(248, 248, 242); background-color: rgb(39, 40, 34); font-family: Menlo, Monaco, &quot;Courier New&quot;, monospace; font-size: 11px; line-height: 17px; white-space: pre;"><span style="color: #e6db74;">ffprobe -v quiet -print_format json -show_format -show_streams "sopa.mp3"</span></div></div></blockquote><div><br></div><div>Y lo que he ha llamado mucho la atención es que cada fichero, tiene un identificador único de cliente, tanto de su paso por Google como de su paso por Amazon:</div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><br></p></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">(</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[title] =&gt; Sopa De Caracol</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[artist] =&gt; Los Fabulosos Cadillacs</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[album_artist] =&gt; Los Fabulosos Cadillacs</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[composer] =&gt; Juan Pompillo Tejeda Duarte</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[album] =&gt; El Matador</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[genre] =&gt; Latin</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[track] =&gt; 9/0</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[disc] =&gt; 1/1</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[date] =&gt; 2010</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[<b>id3v2_priv.www.amazon.com</b>] =&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt;x0a&lt;uits:UITS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uits="http://www.udirector.net/schemas/2009/uits/1.1"&gt;&lt;metadata&gt;&lt;nonce&gt;7XJK9xEH&lt;/nonce&gt;&lt;Distributor&gt;Amazon.com&lt;/Distributor&gt;&lt;ProductID type="UPC" completed="false"&gt;00000000000002912966&lt;/ProductID&gt;&lt;AssetID type="ISRC"&gt;ARF109900553&lt;/AssetID&gt;&lt;TID version="1"&gt;455123-5881462168346286341370085&lt;/TID&gt;&lt;Media algorithm="SHA256"&gt;2e460c3aa23f5facfd2ca59f36d1aec81f54edab8995ee37c4019fe7b4efa78b&lt;/Media&gt;&lt;Parental&gt;&lt;/Parental&gt;&lt;Copyright&gt;&lt;/Copyright&gt;&lt;Extra type="TransactionType"&gt;Download - Locker&lt;/Extra&gt;&lt;/metadata&gt;&lt;signature algorithm="RSA2048" canonicalization="none" keyID="dd0af29b41cd7d6d82593caf1baeaae6b756383f"&gt;pGkKtbagmCjlCDyIzPnCGjPnZ3mOvscAUtaGrVS0x5DV80/TnV7j0ksHg4LAvVdG1m1KCPqMCDHr6GmHzVY/ptYpjYR1FedQpVSIZaOeQAM+5k8ZyZxBDEqXWyr4PwkuTanFfgwgWKWLNQ+rOy4Bo5kfwbgHCzT1McmZO4lbUWAg1znIogoaezFD9z987KYrY3Xsub8P/mfz/LMKnobcpI70vYTqsM+lRBskoGJgLbmZ7iilrxkxnKWk9co+vzHWDJmb1UVq39H+DoCO6fPRA/jnCaw5Hv6y2fy/O3W6YMzI1uHBLHYLlk7g4T6ajSlXLLDtfgivaCXm1T9PzPYpFA==&lt;/signature&gt;&lt;/uits:UITS&gt;</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><span class="Apple-converted-space">&nbsp; &nbsp; </span>[<b>id3v2_priv.Google/OriginalClientId</b>] =&gt; eteLIeYOGhpuTTTFtJvIwg</span></p></div><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;">)</span></p></div></blockquote><div><p class="p1" style="margin: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo;"><span class="s1" style="font-variant-ligatures: no-common-ligatures;"><br></span></p></div><div><br></div><div>No he encontrado nada sobre estas etiquetas en Google. Tampoco tengo interés especial en quitarlas, pero pienso que alguien que piense compartir sus canciones, algo raro cuando todo está en Spotify, debería pensárselo dos veces.</div>]]></description>
<pubDate>Fri, 26 Feb 2021 17:44:19 +0100</pubDate>
</item>
<item>
<title><![CDATA[5 hábitos poderosos de los programadores de éxito]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=144]]></link>
<description><![CDATA[<div><font face="verdana">Larry Wall, el autor del lenguaje de programación Perl, dijo una vez que los grandes desarrolladores tienen tres virtudes: pereza, impaciencia y arrogancia.</font></div><div><font face="verdana"><br></font></div><div><font face="verdana">Pereza porque los lleva a escribir programas que ahorran trabajo y a documentarlos bien para que no tengan que responder preguntas sobre ellos. Impaciencia porque los motiva a escribir programas que se anticipan a sus necesidades. Y arrogancia porque les hace querer escribir un código estricto que otras personas no criticarán.</font></div><div><font face="verdana">Dicho esto, los programadores exitosos no son necesariamente los mejores programadores.</font></div><div><font face="verdana">Un programador que hace bien su trabajo diario es mucho más efectivo que el que ocasionalmente alcanza alturas de codificación vertiginosas. Y para la mayoría de las empresas, lo que cuenta es el área bajo la curva, no el punto más alto que alcanza.</font></div><div><font face="verdana">Y el éxito que buscas viene de cómo te ves a ti mismo, al mundo y a los hábitos que tienes para enfrentarte a los desafíos de la vida. De hecho, según los investigadores de la Universidad de Duke, hasta <u>un 40% de nuestro éxito (o fracaso) ocurre automáticamente como resultado de nuestros hábitos</u>.</font></div><div><font face="verdana">Y aquí hay algunos hábitos poderosos que pueden sobrealimentar su éxito como desarrollador.</font></div><div><font face="verdana"><br></font></div><div><font face="verdana"><b>Sea profesional</b></font></div><div><font face="verdana">Steve Maraboli estaba en lo cierto cuando dijo:&nbsp;</font><span style="font-family: verdana;">"Lo correcto y lo difícil suelen ser lo mismo. Y ambos requieren profesionalidad".</span></div><div><font face="verdana">La profesionalidad es como la espada de Damocles. Por un lado, es una insignia de honor y orgullo, pero por el otro, también es un marcador de responsabilidad y rendición de cuentas. Los dos siempre van de la mano. No puedes enorgullecerte y honrar algo de lo que no puedes ser responsable.</font></div><div><font face="verdana">Imagina que has escrito un código y lo has implementado en producción. Debido a tu código ocurre un problema serio y el sistema de producción se interrumpió durante un día. Huelga decir que el cliente incurrió en una gran cantidad de pérdidas financieras. Reviertes el código pero cualquier daño que haya ocurrido no se puede deshacer.</font></div><div><font face="verdana">El no profesional se encogería de hombros y diría "las cosas pasan" y empezaría a escribir el siguiente módulo. El profesional sudaría y se preocuparía por el desliz y se aseguraría de que algo tan chapucero no se repita de nuevo.</font></div><div><font face="verdana">Siempre recuerda que la profesionalidad se basa en la responsabilidad. No puedes tener razón todo el tiempo. Pero tienes que admitir las cosas que has hecho mal.</font></div><div><font face="verdana"><br></font></div><div><font face="verdana"><b>No repetir el mismo error</b></font></div><div><font face="verdana">Amit Kalantri dio en el clavo cuando dijo:&nbsp;</font><span style="font-family: verdana;">"Si una disculpa va seguida de una excusa o una razón, significa que van a cometer el mismo error de nuevo por el que se han disculpado."</span></div><div><font face="verdana">Claramente, queremos que nuestro software funcione. Pero no somos los únicos que queremos que el software funcione. Nuestras empresas y sus clientes también quieren que funcione. De hecho, nos están pagando para crear software que funciona tal y como ellos quieren.</font></div><div><font face="verdana">Hasta ahora todo bien. Pero el software no es perfecto. Todo software tendrá errores.</font></div><div><font face="verdana">La clave aquí no es aspirar a escribir un código perfecto. Esa es una fantasía utópica y nunca ocurrirá. El mensaje aquí es tomar la responsabilidad completa de todas las imperfecciones en tu software. Crea nuevos errores. Comete nuevos errores. Pero no repitas el mismo error una y otra vez.</font></div><div><font face="verdana">A medida que maduras en tu profesión, tu tasa de error debería disminuir rápidamente hacia cero. Nunca llegará a cero, pero es tu responsabilidad acercarte lo máximo posible.</font></div><div><font face="verdana"><br></font></div><div><font face="verdana"><b>No dejes nada al azar. Nunca funciona.</b></font></div><div><font face="verdana">Jim Jenkins dijo con razón:&nbsp;</font><span style="font-family: verdana;">"La amargura de la mala calidad se mantiene mucho después de que se haya olvidado la dulzura de cumplir con el horario."</span></div><div><font face="verdana">La regla general es que si algo puede salir mal, saldrá mal y ninguna cantidad de suerte puede evitar que suceda.</font></div><div><font face="verdana">Es por eso que las pruebas son tan importantes. ¿Cómo puedes saber que tu código funciona? Eso es fácil. Pruébalo.&nbsp;</font><span style="font-family: verdana;">Pruébalo</span><font face="verdana">&nbsp;de nuevo. Pruébalo. Pruébalo.&nbsp;</font><span style="font-family: verdana;">Pruébalo</span><font face="verdana">&nbsp;los 7 días de la semana, hasta el domingo!</font></div><div><font face="verdana">Incluso si los plazos son rígidos y la presión es inmensa para reducir gastos, automatiza los casos de prueba, entra en el modo de programación de pares o incluso estudia la posibilidad de reutilizar los casos de prueba existentes. Pero no hagas nada que limite este paso.</font></div><div><font face="verdana"><u>Toda tu reputación depende de lo bien que hayas probado el código antes de desplegarlo en producción</u>. Debes probar cada pieza de código que hayas escribo. Punto.</font></div><div><font face="verdana">¿Y si el código es "no comprobable"? El código está escrito de tal manera que es difícil de probar.</font></div><div><font face="verdana">La respuesta corta es hacer que el código sea fácil de probar. Y la mejor manera de hacerlo es escribir tus pruebas antes de escribir el código que las aprueba.</font></div><div><font face="verdana">Siempre recuerda que el propósito de tu código es conseguir que se ejecute para resolver un problema de negocio.</font></div><div><font face="verdana">Tú como programador debes saber si tu código funciona. No hay nada más importante que este hecho fundamental.</font></div><div><font face="verdana"><br></font></div><div><font face="verdana"><b>Crear siempre un código flexible</b></font></div><div><font face="verdana">Siri Hustvedt dijo:&nbsp;</font><span style="font-family: verdana;">"La creatividad siempre ha dependido de la apertura y la flexibilidad, así que esperemos más de ambos en el futuro."</span></div><div><span style="font-family: verdana;">Es la estructura de su código la que le permite ser flexible. Si comprometes la estructura, comprometes el futuro.</span></div><div><div style=""><font face="verdana">La suposición fundamental que subyace en todos los proyectos de software es que el software sea fácil de cambiar. Si te encuentras con que esto no es posible, entonces algo en alguna parte está seriamente mal.</font></div><div style=""><font face="verdana">Demasiados proyectos quedan atrapados en el pantano del código inflexible. Los desarrolladores van y vienen y añaden más al laberinto de código inflexible y finalmente terminamos creando un monstruo que no se puede reescribir ni mantener fácilmente.</font></div><div style=""><font face="verdana">La clave aquí es identificar aquellas partes del código que lo hacen inflexible. Una vez que encontramos esas partes, invertimos tiempo y esfuerzo y reescribimos esas partes en lugar de añadir más al lío ya creado. Este esfuerzo se hará en contra de los plazos. Pero que así sea. Consigue la aceptación y haz lo correcto.</font></div><div style=""><font face="verdana">Sigue siempre el principio de "Refactorización despiadada". Deja el código limpio cuando lo dejes y si eso significa hacer algo "extra" de lo que te han dicho que hagas, hazlo.</font></div><div style=""><font face="verdana"><br></font></div><div style=""><font face="verdana"><b>Y por último, sé un estudiante siempre.</b></font></div><div style=""><font face="verdana">Anthony J. D'Angelo "</font><span style="font-family: verdana;">Desarrolla una pasión por el aprendizaje. Si lo haces, nunca dejarás de crecer."</span></div><div style=""><font face="verdana">"Quiero hacer el curso de S4 HANA. Pero la empresa no lo paga"</font></div><div style=""><font face="verdana">"Quería aprender los formularios de Webdynpro. Peo no puedo encontrar tiempo en mi apretada agenda"</font></div><div style=""><font face="verdana">"Quiero asistir a ese Codeathon. Pero se acerca el fin de semana".</font></div><div style=""><font face="verdana">Todas estas son excusas para no aprender. Tu carrera es tu responsabilidad. No es responsabilidad de tu empresa asegurarse de que tú seas comercializable. No es responsabilidad de tu empresa capacitarte, ni enviarte a conferencias, ni comprarte libros. Estas cosas son tu responsabilidad.</font></div><div style=""><font face="verdana">Como regla general, sigue la regla de las 40-20 horas cada semana. Las 40 horas de tiempo pertenecen a la empresa. Las 20 horas restantes te pertenecen, para tu propio aprendizaje. Haz tu semana en un mínimo de 60 horas por semana para imbuirte de una cultura de aprendizaje continuo dentro de ti.</font></div><div style=""><font face="verdana">Y 20 horas a la semana no es difícil. Si usas tu tiempo sabiamente; tiempo de viaje, hora de almuerzo, fines de semana, etc., encuentras mucho más tiempo disponible a tu disposición para ser utilizado solo para ti.</font></div><div style=""><font face="verdana">Recuerda siempre que el campo del software está en constante cambio y que es muy fácil convertirse en un dinosaurio obsoleto. Por lo tanto, si deseas mantenerte a la vanguardia de los tiempos y seguir siendo valioso, invierte en ti mismo y sigue aprendiendo.</font></div><div style=""><font face="verdana">Como Seema Openers dijo:&nbsp;</font><span style="font-family: verdana;">"La auto-educación está abierta a todos, pero sólo la toman aquellos que se niegan a vivir una vida pequeña y sin sentido."</span></div><div style=""><br></div></div><div><br></div><div><font face="verdana">Adaptación del artículo original de&nbsp;Ravi Rajan en Medium:&nbsp;<a href="https://medium.com/swlh/5-powerful-habits-of-successful-developers-1c0e32659ea3" title="" target="">5 Powerful Habits of Successful Developers</a></font><span style="font-family: verdana;">.</span></div>    ]]></description>
<pubDate>Sat, 09 Nov 2019 23:26:16 +0100</pubDate>
</item>
<item>
<title><![CDATA[Ver iPhone en blanco y negro]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=143]]></link>
<description><![CDATA[<div>En el iPhone, hay una forma de habilitar el cambio rápido entre el modo de color y la escala de grises. Esto es muy práctico para alternar momentos en los que quieres tener el modo en blanco y negro y los que quieres color.&nbsp; En mi caso, todo el tiempo lo tengo en blanco y negro, menos cuando quiero hacer una foto o ver un vídeo en youtube. Para activarlo:</div><div><br></div><div><ol><li>General / Accesibilidad</li><li>Ir a la parte inferior de la pantalla y buscar el texto "accesibilidad"</li><li>Seleccionar "Filtros de color"</li></ol></div><div><br></div><div>A partir de ahora, pulsando en cualquier momento 3 veces el botón derecho, pasarás del modo color a blanco y negro.</div>    ]]></description>
<pubDate>Fri, 08 Mar 2019 10:23:13 +0100</pubDate>
</item>
<item>
<title><![CDATA[Por qué tu cerebro necesita tiempo libre]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=142]]></link>
<description><![CDATA[    <div>Traducción del artículo "<a href="https://medium.com/s/the-nuance/why-your-brain-needs-idle-time-e5d90b0ef1df" title="" target="">Why Your Brain Needs Idle Time: Some vital brain functions demand downtime</a>".</div><div><br></div><div><div>Tu atención puede ser tu recurso más preciado.</div><div><br></div><div>El trabajo y las obligaciones sociales exigen una parte de este recurso, y es fácil ocupar lo que queda con estímulos de otro tipo: escuchando un podcast o viendo una serie. Para muchas personas, el tiempo que pasan en la ducha o tratando de dormirse por la noche puede ser el único momento del día cuando su mente está totalmente libre para vagar.</div><div><br></div><div>Nada de esto puede parecer un problema. Después de todo, ¿por qué perder el tiempo sin hacer nada cuando podrías estar haciendo algo divertido o productivo? Mientras estés ocupando tu mente con contenido de alta calidad (en su mayoría), ¿cuál es el daño?</div><div><br></div><div>"La investigación sobre el aprendizaje es extremadamente clara", dice Loren Frank, profesor del Centro de Neurociencia Integrativa de la Universidad de California en San Francisco. "Para aprender algo bien, necesitas estudiarlo durante un tiempo y luego tomarte un descanso."</div><div><br></div><div>Frank señala la evidencia sobre la formación educativa, que ha demostrado una y otra vez que las personas retienen mejor la nueva información cuando se les da tiempo libre a sus mentes para codificarla y consolidarla. Incluso fuera de los contextos de estudio, tomar pequeños descansos después de digerir material nuevo -ya sea un artículo de noticias o un correo electrónico importante- parece ayudar a tu cerebro a analizar y memorizar lo que acabas de aprender.</div><div><br></div><div>Para entender mejor cómo los cerebros procesan la nueva información, Frank ha llevado a cabo experimentos de escaneo cerebral en ratas. Él y sus colegas han demostrado que cuando a las ratas se les permite descansar después de completar un laberinto desconocido, sus cerebros parecen repetir automáticamente la experiencia de navegar por el laberinto. Enfrentadas más tarde con el mismo laberinto, las ratas encuentran su camino más rápidamente.</div><div><br></div><div>"Sabemos que el cerebro puede entrar en su estado de inactividad muy rápidamente, y la investigación educativa sugiere que sólo unos pocos minutos - de 5 a 15 - son suficientes para ayudar al aprendizaje".</div><div>Por otro lado, cuando las ratas se enfrentan inmediatamente a un nuevo desafío después de completar un laberinto, sus cerebros no tienen la oportunidad de repetir lo que han aprendido, dice Frank. Más tarde, cuando son desafiadas de nuevo con el mismo laberinto, estas ratas no son capaces de completarlo más rápido que la primera vez.</div><div><br></div><div>Frank dice que el cerebro humano parece funcionar de manera similar. "El cerebro necesita tiempo libre para procesar nueva información y convertirla en algo más permanente", dice.</div><div><br></div><div>¿Cuánto tiempo libre? Eso depende. "Sabemos que el cerebro puede entrar en su estado de inactividad muy rápidamente, y la investigación educativa sugiere que sólo unos pocos minutos -entre 5 y 15- son suficientes para ayudar al aprendizaje", dice. La cantidad de tiempo que una mente necesita para construir una memoria duradera probablemente varía de una persona a otra, y también depende de la complejidad de lo que esa persona está tratando de aprender, agrega.</div><div><br></div><div>Los expertos dicen que el tiempo muerto probablemente también ayuda a desarrollar procesos mentales que son mucho más complicados que el almacenamiento y recuperación de memoria. "Los estados reflexivos más profundos, en los que se da sentido a lo que está sucediendo y se conecta con el yo y la identidad y se integra el conocimiento juntos en narrativas coherentes -este tipo de procesos solo ocurren cuando no se está enfocado en alguna actividad en el momento", dice Mary Helen Immordino-Yang, profesora de educación, psicología y neurociencia en la Universidad del Sur de California.</div><div><br></div><div>Cuando su cerebro es bombardeado con nuevos estímulos o información, dice ella, puede luchar para generar sentido y significado. Demasiado de esto puede hacer que te sientas sin rumbo - o peor. "Si usted está atrapado en este ciclo de estimulación, sabemos que esto está asociado con la sensación de estar fuera de control", dice. "Está asociado con ansiedad y desconexión, y una sensación de, ¿qué es realmente real?"</div><div><br></div><div>El tiempo de inactividad mental, sin embargo, parece facilitar la creatividad y la resolución de problemas. "Nuestra investigación ha encontrado que el vagabundeo mental puede fomentar un tipo particular de productividad", dice Jonathan Schooler, profesor de ciencias psicológicas y cerebrales en la Universidad de California, Santa Bárbara, quien ha estudiado ampliamente el vagabundeo mental. Dice que superar los callejones sin salida -incluyendo lo que él llama momentos de "a-ha!</div><div><br></div><div>"Creo que debemos reconocer que el pensamiento interno del cerebro puede ser de valor en sí mismo."</div><div>Schooler menciona la experiencia común de no ser capaz de recordar una palabra que está en la punta de la lengua - no importa cuánto intentes pensar en ella. Pero tan pronto como te mueves hacia otra tarea mental, la palabra aparece en tu cabeza. "Creo que es muy posible que algunos procesos inconscientes estén ocurriendo durante el vagabundeo de la mente, y los conocimientos que estos procesos producen luego burbujean a la superficie", dice.</div><div><br></div><div>También es posible que privar al cerebro de tiempo libre ahogue su capacidad para completar este trabajo inconsciente. "Creo que necesitamos reconocer que el tren interno de pensamiento del cerebro puede ser de valor en sí mismo", dice Schooler. "De la misma manera que podemos experimentar un déficit de sueño".</div></div><div><br></div><div>Loquillo ya lo sabía:</div><div><iframe width="560" height="315" src="https://www.youtube.com/embed/JI4O8ddNmgs?start=29" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>]]></description>
<pubDate>Fri, 08 Mar 2019 09:18:02 +0100</pubDate>
</item>
<item>
<title><![CDATA[En MySQL, convertir todas las tablas de MyISAM a InnoDB]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=141]]></link>
<description><![CDATA[<div>Si has llegado a este artículo, no es necesario que te haga una introducción sobre las diferencias entre MyISAM e InnoDB.</div><div>Quieres cambiar todas las tablas a InnoDB, y así se hace:</div><div><br></div><div><pre style="padding: 9.5px; font-family: &quot;Source Code Pro&quot;, monospace; font-size: 14pt; color: rgb(51, 51, 51); border-radius: 4px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; background-color: rgb(245, 245, 245); border: 1px solid rgba(0, 0, 0, 0.15);"><span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">SET</span> <span class="o" style="color: rgb(102, 102, 102);">@</span><span class="n">DATABASE_NAME</span> <span class="o" style="color: rgb(102, 102, 102);">=</span> <span class="s1" style="color: rgb(186, 33, 33);">'nombreDeTuBaseDeDatos'</span><span class="p">;</span>

<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">SELECT</span> <span class="n">CONCAT</span><span class="p">(</span><span class="s1" style="color: rgb(186, 33, 33);">'ALTER TABLE `'</span><span class="p">,</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">TABLE_NAME</span><span class="p">,</span> <span class="s1" style="color: rgb(186, 33, 33);">'` ENGINE=InnoDB;'</span><span class="p">)</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">AS</span> <span class="n">sentenciasSQL</span>
<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">FROM</span> <span class="n">information_schema</span><span class="p">.</span><span class="n">tables</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">AS</span> <span class="n">tb</span>
<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">WHERE</span> <span class="n">table_schema</span> <span class="o" style="color: rgb(102, 102, 102);">=</span> <span class="o" style="color: rgb(102, 102, 102);">@</span><span class="n">DATABASE_NAME</span>
  <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">AND</span> <span class="o" style="color: rgb(102, 102, 102);">`</span><span class="n">ENGINE</span><span class="o" style="color: rgb(102, 102, 102);">`</span> <span class="o" style="color: rgb(102, 102, 102);">=</span> <span class="s1" style="color: rgb(186, 33, 33);">'MyISAM'</span>
  <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">AND</span> <span class="o" style="color: rgb(102, 102, 102);">`</span><span class="n">TABLE_TYPE</span><span class="o" style="color: rgb(102, 102, 102);">`</span> <span class="o" style="color: rgb(102, 102, 102);">=</span> <span class="s1" style="color: rgb(186, 33, 33);">'BASE TABLE'</span>
<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">ORDER</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">BY</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">TABLE_NAME</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">DESC</span><span class="p">;</span></pre></div>        ]]></description>
<pubDate>Sat, 10 Feb 2018 14:30:52 +0100</pubDate>
</item>
<item>
<title><![CDATA[Argument list too long al intentar borrar archivos]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=140]]></link>
<description><![CDATA[En Linux, podemos querer hacer alguna operación masiva en archivos, como empaquetarlos o borrarlos, y nos podemos encontrar con el errror&nbsp;"Argument list too long" cuando el número de archivos es muy elevado.<div><br></div><div>La solución es combinar find con xargs de la siguiente manera, para que cada archivo sea tratado de forma individual. En este ejemplo, eliminaremos todos los ficheros del directorio actual:</div><div>




<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Courier; color: #4d2f2d; background-color: #dfdbc3; background-color: rgba(223, 219, 195, 0.96)}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style>


<p class="p1"><span class="s1">find ./ -type f -name "*.*" -print |<span class="Apple-converted-space">&nbsp; </span>xargs rm -v</span></p></div>]]></description>
<pubDate>Sat, 10 Feb 2018 14:17:40 +0100</pubDate>
</item>
<item>
<title><![CDATA[Error al subir remesas de recibos a ING Direct]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=139]]></link>
<description><![CDATA[Como cada mes, te conectas a la web de ING Direct empresas, y vas a Cobros / Remesas de Recibos / Crear a partir de Fichero.<div><br></div><div>Pero obtienes este error al subir el fichero XML:<div><span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 12px; text-align: justify; background-color: rgb(255, 240, 222);">Invocation failed for method sendSSH in worker com.ingdirect.dg.ejb.SendSSHBean because of null</span></div><div><br></div><div style="text-align: justify;"><ol><li>ING no tiene chat de soporte, tampoco tienen email donde enviarles un pantallazo...</li><li>Sales y vuelves a entrar. El problema persiste. Lo haces 3 veces más. Te desesperas.</li><li>Decides si llamarles y entretenerte unos minutos contándoles tu caso, o si buscas en Google con la esperanza terminar antes.</li><li>Buscas en Google, llegas este artículo, y encuentras la solución:</li><ol><li><b>Vaciar cookies y el historial de navegación, y repetir la operación. Ahora ya funciona.</b></li><li>Si no quieres borrar cookies, puedes utilizar otro navegador.</li></ol></ol><div><br></div></div></div>]]></description>
<pubDate>Mon, 05 Feb 2018 14:57:18 +0100</pubDate>
</item>
<item>
<title><![CDATA[Caixa Guissona, N26 o Imaginbank en Fintonic]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=138]]></link>
<description><![CDATA[<p>Por fin me hab&iacute;a decidido a darle otra oportunidad a <b>Fintonic</b> y usar la aplicaci&oacute;n unos d&iacute;as para ver si me convenc&iacute;a.</p><p>Sin embargo, cuando intent&eacute; a&ntilde;adir mi cuenta de <b>N26</b>, el banco que m&aacute;s utilizo &uacute;ltimamente para peque&ntilde;as compras porque me permite usar Apple Pay en Espa&ntilde;a, me di cuenta de que no estaba en su lista de bancos compatibles. Tambi&eacute;n comprob&eacute; que no estaban ni <b>Imaginbank</b> ni <b>Caixa Guissona</b>, as&iacute; que dej&eacute; de buscar.</p><p>Para cualquiera que se encuentre con el mismo problema, es &uacute;til saber que la aplicaci&oacute;n web y m&oacute;vil de <b>Wealthreader</b> tiene una lista de bancos compatibles mucho m&aacute;s extensa, tanto nacionales como internacionales. Entre ellos s&iacute; se encuentran N26, Imaginbank y Caixa Guissona.</p><p>Para m&aacute;s informaci&oacute;n, visita su p&aacute;gina web: <b><a href="https://www.wealthreader.com" title="" target=""><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><link-block _nghost-ng-c3597814273="" class="ng-star-inserted"><!----><!---->https://www.wealthreader.com</link-block></a></b></p>        ]]></description>
<pubDate>Tue, 16 Jan 2018 08:54:27 +0100</pubDate>
</item>
<item>
<title><![CDATA[Cómo configurar un iPad para bebés]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=137]]></link>
<description><![CDATA[<b>Objetivos</b><br><ul><li>Tener una APP que reproduzca vídeos, con unos cuantos vídeos de canciones infantiles guardados.</li><li>Bloquear la pantalla táctil y los botones para que no se pueda cerrar.</li><li>Protejer el iPad de los golpes.</li></ul><br><b>Cómo adaptar el iPad a bebés</b><br><ol><li>Descargar VLC para iPad: <a href="https://itunes.apple.com/es/app/vlc-for-mobile/id650377962?mt=8" title="VLC for Mobile" target="_blank">https://itunes.apple.com/es/app/vlc-for-mobile/id650377962?mt=8</a>. Permite subir vídeos que tengamos en nuestro ordenador a través del navegador. Muy buena a pesar de los comentarios de la gente que se frustra al ver que no va a poder descargar vídeos desde la propia aplicación. VLC es solamente un reproductor de vídeos.<br></li><li>Bloquear la APP VLC, para que el niño no salga al tocar la pantalla: Configuración/General/Accesibilidad/Acceso Guiado. Activar esta opción. Luego, abrir la APP VLC y pulsar tres veces seguidas el botón de inicio. Esto deja fijado el reproductor de vídeo.</li><li>Ponerle una buena funda al iPad. Yo he comprado esta: <a href="http://amzn.to/2ixGrPt">http://amzn.to/2ixGrPt</a><br></li></ol>
<br>
<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-eu.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=protdt-21&o=30&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B01M732M3C&linkId=261f67efa012be62301be47c156ab098"></iframe>]]></description>
<pubDate>Wed, 06 Dec 2017 21:52:54 +0100</pubDate>
</item>
<item>
<title><![CDATA[Cómo añadir cuentas de empresa en Fintonic]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=136]]></link>
<description><![CDATA[Añadir cuentas de empresa en <a href="https://www.fintonic.com" title="Fintonic" target="">Fintonic</a> no es posible. Debemos utilizar una herramienta diseñada específicamente para empresas, como es <a href="https://www.absorto.com" title="Absorto" target="">Absorto</a>.<br><br>Absorto es una aplicación gratis para particulares, y para las empresas tiene un coste de 15€ al mes. Además de permitir agregar cuentas de empresa, cuenta con otras funcionalidades muy interesantes:<br><br><ul><li>Información presentada en listado y en calendario.</li><li>Exportar toda la información a Excel en un click.</li><li>Buscador con filtros avanzados.</li><li>Descarga automatizada del fichero norma 43, para poder importarlo en programas como Contaplus, SAP, A3 de Wolters Kluwers.</li></ul><br><br><p>Si eres una empresa, y trabajas uno o varios de los siguientes bancos, tienes un mes de prueba gratuito: Abanca, ActivoBank, American Express, Arquia, Banca March, Banco Caminos, Banco Pastor, Banco Popular, Banco Sabadell, Banco Santander, Bankia, Bankinter, Bankoa, Barclaycard, BBVA, Blockchain, BMN, Caixa Albalat, Caixa Alginet, Caixa Almenara, Caixa Alqueries, Caixa Altea, Caixa burriana, Caixa Callosa, Caixa Colonya, Caixa Guisona, Caixa Nules, Caixa Petrer, Caixa Rural de Villar, Caixa Sant Vicent, Caixa Turís, Caixa Vilafamés, Caixa Vilavella, Caixa Xilxes, Caixabank, Caja cheste, Cajamar, CajaSur, Carrefour Visa, CCM, Coinc, Cuenta Facto, Deutsche Bank, Edenred, España Duero, Evo Banco, iberCaja, imaginBank, ING Direct, Kutxabank, Laboral Kutxa, Liberbank, Mediolanum, MoneyGram, Novo Banco, Oficina Directa, OpenBank, Rural Vila-Real, RuralVia, Santander Private, Self Bank, Solred, Targobank, TranferWise, Triodos, Unicaja, uno-e, Visa Cepsa, Western Union y WiZink.</p><p></p><p>Más de 30.000 particulares y empresas utilizan la tecnología de <a href="https://www.wealthreader.com" title="Wealthreader" target="">Wealthreader</a>.<br></p><br>]]></description>
<pubDate>Thu, 27 Jul 2017 09:11:56 +0100</pubDate>
</item>
<item>
<title><![CDATA[Terra.es cierra y a nadie le importa]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=135]]></link>
<description><![CDATA[El 30 de junio de 2017 cerró Terra.es. Desde el 1 de Julio redirige a la web de Movistar.<br><br>Por costumbre, y porque a finales de los 90 los anuncios en televisión grabaron a fuego en mi mente la marca, tengo la costumbre de entrar en Terra para ver que internet funciona bien. Así es como he descubierto que han cerrado, porque después he buscado en internet y veo que la noticia ha sido publicada en muy pocos sitios.<br><br>Mi historia con Terra también tiene una parte más personal. Comencé a estudiar ingeniería informática coincidiendo con el boom de las .com. Terra y Wanadoo en todos los medios a todas horas, y también comprando todo tipo de "portales" indiscriminadamente. Recuerdo alguna compra como la del rincondelvago.com de Wanadoo por 100 millones de pesetas (600.000 €), o la de Lycos por parte de Terra por $12.000.000. En la universidad siempre hablábamos de qué web podríamos hacer para vendérsela a Terra... Supongo que ahora se hablará de lo mismo pero con apliciones móviles.<br><br>Casualidades de la vida, acabé trabajando en Terra en 2007. Fue hace 10 años y la gente ya me preguntaba: ¿sigue existiendo? Pues existía, y le dedicaban un presupuesto a mi parecer enorme: dos edificios en Pozuelo, uno para redactores y técnicos (unos 40), y otro para soporte telefónico.&nbsp; En la parte técnica estaba gobernada por los propios técnicos, muchos de los cuales llevaban en Terra desde el principio, y su criterio iba a misa. Esto podría no resultar extrano, si no fuera porque todos los técnicos éramos personal subcontratado. La prioridad era vivir lo mejor posible, y secundario trabajar, excepto para apagar fuegos y luego ser tratado como un héroe.<br><br>Esa era la forma de trabajar y tengo que reconocer que rápidamente me adapté a ella: cómoda con algún pico de estrés, guardias e intervenciones fuera de horario debidamente pagadas. "Aquí me quiero jubilar" es lo que pensaba al llegar cada mañana con una sonrisa (tenía 26 años).<br><br>Pero durante el año y poco que trabajé allí, me tocó vivir parte del declibe: mudanza a un edificio ruinoso sin aire acondicionado ni calefación, mal ambiente por la posibilidad de que Telefónica eligiera un proveedor más barato y nos echaran, cosa que finalmente pasó...<br><br>Al menos me dejó un montón de anécdotas graciosas. Como cuando estábamos trabajando en una sala y en una ventana de un edificio a 5 metros un señor de aspecto dejado se entretenía mirándonos desde su balcón, echándose un cigarro en calzoncillos.<br><br>Una pena que cierre Terra. Al menos "ping www.terra.es" sigue funcionando.<br><br>Buscando un anuncio de Terra para ilustrar el artículo, he encontrado este de 1985 mucho más interesante. ¿Alguien lo entendería en la época? Bueno, era una empresa pública sin competencia así que supongo que se podían permitir emitir estas rarezas en TV.<br><br><br><iframe width="560" height="315" src="https://www.youtube.com/embed/CW63MlEyhu0" frameborder="0" allowfullscreen></iframe>]]></description>
<pubDate>Fri, 14 Jul 2017 00:51:28 +0100</pubDate>
</item>
<item>
<title><![CDATA[Cómo hacer un USB arrancable con la ISO de Windows 10]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=134]]></link>
<description><![CDATA[<div>Descargar MediaCreationTool.exe:<a href="https://www.microsoft.com/es-es/software-download/windows10"> https://www.microsoft.com/es-es/software-download/windows10</a><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>La
 herramienta tiene un asistente que te pide poner un pen drive de mínimo
 4GB, y se encarga de descargar la imagen ISO y preparar el pen drive 
arrancable (bootable).<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div>En
 la página de descarga de "Media Creation Tool" indica que debes contar 
con una licencia. Para crear el pen drive con la imagen de Windows no es
 necesaria la licencia, pero sí para la instalación posterior. Sirve 
como licencia la que puedas tener en la pegatina de un PC con Windows 7 o
 superior.        ]]></description>
<pubDate>Thu, 22 Jun 2017 11:33:54 +0100</pubDate>
</item>
<item>
<title><![CDATA[Obtener datos XML de una URL a través de SQL Server]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=133]]></link>
<description><![CDATA[<!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>EN-US</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->Ejemplo para extraer información de Google Maps.<br><p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><a name="_GoBack"></a><span style="font-size:9.5pt;font-family:Consolas;color:blue">USE</span><span style="font-size:9.5pt;font-family:Consolas"> tempdb</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">GO</span><span style="font-size:9.5pt;
font-family:Consolas"></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas">&nbsp;</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">IF</span><span style="font-size:9.5pt;
font-family:Consolas"> <span style="color:fuchsia">OBJECT_ID</span><span style="color:gray">(</span><span style="color:red">'tempdb..#xml'</span><span style="color:gray">)</span> <span style="color:gray">IS</span> <span style="color:gray">NOT</span> <span style="color:gray">NULL</span> <span style="color:blue">DROP</span> <span style="color:blue">TABLE</span> #xml</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">CREATE</span><span style="font-size:
9.5pt;font-family:Consolas"> <span style="color:blue">TABLE</span> #xml<span style="color:blue"> </span><span style="color:gray">(</span> yourXML <span style="color:blue">XML</span> <span style="color:gray">)</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">GO</span><span style="font-size:9.5pt;
font-family:Consolas"></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas">&nbsp;</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @URL <span style="color:blue">VARCHAR</span><span style="color:gray">(</span>8000<span style="color:gray">)</span> </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">SELECT</span><span style="font-size:
9.5pt;font-family:Consolas"> @URL <span style="color:gray">=</span> <span style="color:red">'http://maps.google.com/maps/api/geocode/xml?latlng=40.4193371,-3.6952723&amp;sensor=false'</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas">&nbsp;</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @Response <span style="color:blue">varchar</span><span style="color:gray">(</span><span style="color:fuchsia">MAX</span><span style="color:gray">)</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @XML <span style="color:blue">xml</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @Obj <span style="color:blue">int</span> </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @Result <span style="color:blue">int</span> </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @HTTPStatus <span style="color:blue">int</span> </span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">DECLARE</span><span style="font-size:
9.5pt;font-family:Consolas"> @ErrorMsg <span style="color:blue">varchar</span><span style="color:gray">(</span><span style="color:fuchsia">MAX</span><span style="color:gray">)</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas"></span><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OACreate</span><span style="color:blue"> </span><span style="color:red">'MSXML2.XMLHttp'</span><span style="color:gray">,</span> @Obj
<span style="color:blue">OUT</span> </span>



</p><p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OAMethod</span><span style="color:blue"> </span>@Obj<span style="color:gray">,</span> <span style="color:red">'open'</span><span style="color:gray">,</span> <span style="color:gray">NULL,</span> <span style="color:red">'GET'</span><span style="color:gray">,</span> @URL<span style="color:gray">,</span> false</span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OAMethod</span><span style="color:blue"> </span>@Obj<span style="color:gray">,</span> <span style="color:red">'setRequestHeader'</span><span style="color:gray">,</span> <span style="color:gray">NULL,</span> <span style="color:red">'Content-Type'</span><span style="color:gray">,</span> <span style="color:red">'application/x-www-form-urlencoded'</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OAMethod</span><span style="color:blue"> </span>@Obj<span style="color:gray">,</span> <span style="color:blue">send</span><span style="color:gray">,</span> <span style="color:gray">NULL,</span> <span style="color:red">''</span></span></p>

<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OAGetProperty</span><span style="color:blue"> </span>@Obj<span style="color:gray">,</span> <span style="color:red">'status'</span><span style="color:gray">,</span> @HTTPStatus <span style="color:blue">OUT</span> </span></p>



<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">INSERT</span><span style="font-size:
9.5pt;font-family:Consolas"> #xml<span style="color:blue"> </span><span style="color:gray">(</span> yourXML <span style="color:gray">)</span></span></p><span style="font-size:
9.5pt;font-family:Consolas;color:blue">EXEC</span><span style="font-size:9.5pt;
font-family:Consolas"> @Result <span style="color:gray">=</span> <span style="color:maroon">sp_OAGetProperty</span><span style="color:blue"> </span>@Obj<span style="color:gray">,</span> <span style="color:red">'responseXML.xml'</span></span>



<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
normal;mso-layout-grid-align:none;text-autospace:none"><span style="font-size:
9.5pt;font-family:Consolas;color:blue">SELECT</span><span style="font-size:
9.5pt;font-family:Consolas"> <span style="color:gray">*</span> <span style="color:blue">FROM</span> #xml</span></p><span style="font-size:
9.5pt;font-family:Consolas"></span><span style="font-size:
9.5pt;font-family:Consolas;color:blue">SELECT</span><span style="font-size:
9.5pt;font-family:Consolas"> x<span style="color:gray">.*,</span> y<span style="color:gray">.</span>c<span style="color:gray">.</span>query<span style="color:gray">(</span><span style="color:red">'.'</span><span style="color:gray">)</span> <span style="color:blue">FROM</span> #xml x <span style="color:gray">CROSS</span> <span style="color:gray">APPLY</span> x<span style="color:gray">.</span>yourXML<span style="color:gray">.</span>nodes<span style="color:gray">(</span><span style="color:red">'/GeocodeResponse/status'</span><span style="color:gray">)</span> y<span style="color:gray">(</span>c<span style="color:gray">)</span></span>

]]></description>
<pubDate>Tue, 16 May 2017 10:41:31 +0100</pubDate>
</item>
<item>
<title><![CDATA[Encontrar la última vez que se ejecutó un procedimiento almacenado en SQL Server]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=132]]></link>
<description><![CDATA[<div>La vista agregada sys.dm_exec_procedure_stats devuelve estadísticas
 de rendimiento agregadas para los procedimientos almacenados 
almacenados en caché. Esta vista es similar a sys.dm_exec_query_stats, y
 la definición completa se puede consultar aquí: 
<a href="https://msdn.microsoft.com/en-us/library/cc280701.aspx" title="definición de sys.dm_exec_procedure_stats" target="">https://msdn.microsoft.com/en-us/library/cc280701.aspx</a><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Para
 consultar las veces que se ha ejecutado un procedimiento almacenado, y 
tiempo de ejecución, y cuándo fue la última vez que se ejecutó, podemos 
utilizar esta query:<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><font face="courier new">SELECT<br>&nbsp; a.object_id,<br>&nbsp; DB_NAME(a.database_id) 'database_name',<br>&nbsp; OBJECT_NAME(object_id, database_id) 'proc_name',<br>&nbsp; a.cached_time,<br>&nbsp; a.last_execution_time,<br>&nbsp; a.total_elapsed_time,<br>&nbsp; a.total_elapsed_time / a.execution_count 'avg_elapsed_time',<br>&nbsp; a.last_elapsed_time,<br>&nbsp; a.execution_count<br>FROM sys.dm_exec_procedure_stats a<br>WHERE OBJECT_NAME(object_id, database_id) LIKE '%NombreDelProcedimiento%'<br>ORDER BY [total_worker_time] DESC</font>        ]]></description>
<pubDate>Tue, 20 Dec 2016 10:24:07 +0100</pubDate>
</item>
<item>
<title><![CDATA[Generando scripts para la recreación de pertenencia a roles en SQL Server 2014]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=131]]></link>
<description><![CDATA[Desde SQL Management Studio no es posible exportar la asignación de roles creados por el usuario, sólo es posible para los predefinidos por SQL Server: db_owner, db_datareader, etc.<br><br>Investigando en foros, sugerían utilizar herramientas de terceros para hacerlo, pero una forma de generar las llamadas a sp_addrolemember para los roles definidos por el usuario es:<br><br>- Asumiendo que los usuarios que vas a utilizar en la instancia donde está la base de datos de destino ya están creados, generar el script para crear los usuarios en la base de datos de destino:<br><br><font face="courier new">SELECT 'CREATE USER [' + name + '] for login [' + name + ']'<br>FROM sys.database_principals<br>WHERE (TYPE = 'U' OR TYPE = 'G')<br>&nbsp; AND name &lt;&gt; 'dbo'</font><br><br>- Configurar los usuarios recién creados en destino, para que tengan los mismos roles que en la base de datos de origen:<br><br><font face="courier new">SELECT 'EXECUTE sp_addrolemember ''' + roles.name + ''', ''' + users.name + ''''<br>FROM sys.database_principals users<br>INNER JOIN sys.database_role_members LINK ON link.member_principal_id = users.principal_id<br>INNER JOIN sys.database_principals ROLES ON roles.principal_id = link.role_principal_id<br></font><br>                ]]></description>
<pubDate>Sat, 17 Dec 2016 10:17:53 +0100</pubDate>
</item>
<item>
<title><![CDATA[Ver días de retención en DataCollector de SQLServer]]></title>
<link><![CDATA[http://blog.davidlozanolucas.com/?id=130]]></link>
<description><![CDATA[Uno de los puntos más importantes cuando configuramos DataCollector en SQL Server es la retención de los datos de los distintos colectores. La configuración por defecto puede hacer que nuestra base de datos crezca de forma descontrolada.<div><br></div><div>Para conocer de una forma rápida cuáles son nuestros valores para cada uno de los conjuntos, podemos utilizar:</div><div><br></div><div><pre style="padding: 9.5px; font-family: 'Source Code Pro', monospace; font-size: 14pt; color: rgb(51, 51, 51); border-radius: 4px; margin-top: 0px; margin-bottom: 10px; line-height: 20px; word-break: break-all; word-wrap: break-word; white-space: pre-wrap; border: 1px solid rgba(0, 0, 0, 0.14902); background-color: rgb(245, 245, 245);"><span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">SELECT</span> <span class="n">msdb</span><span class="p">.[</span><span class="n">name</span><span class="p">],</span>
       <span class="n">mdw</span><span class="p">.[</span><span class="n">days_until_expiration</span><span class="p">]</span>
<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">FROM</span> <span class="p">[</span><span class="n">core</span><span class="p">].[</span><span class="n">source_info_internal</span><span class="p">]</span> <span class="n">mdw</span>
<span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">INNER</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">JOIN</span> <span class="p">[</span><span class="n">msdb</span><span class="p">].[</span><span class="n">dbo</span><span class="p">].[</span><span class="n">syscollector_collection_sets_internal</span><span class="p">]</span> <span class="n">msdb</span> <span class="k" style="color: rgb(0, 128, 0); font-weight: bold;">ON</span> <span class="n">mdw</span><span class="p">.[</span><span class="n">collection_set_uid</span><span class="p">]</span> <span class="o" style="color: rgb(102, 102, 102);">=</span> <span class="n">msdb</span><span class="p">.[</span><span class="n">collection_set_uid</span><span class="p">];</span></pre></div><div><br></div><div>En algunos foros encontraréis información para modificar la retención editando los jobs. Esto no es nada recomendable, porque no se actualizan las tablas de sistema.</div><div><br></div><div>La forma de cambiar la retención, es ir al conjunto de recopilación de datos y modificarlo. Si necesitamos cambiar la retención en un grupo grande de servidores, podemos generar el script y distribuirlos desde un servidor de administración central. Si no dispones de uno, también es recomendable invertir 30 minutos en configurarlo:&nbsp;<a href="https://msdn.microsoft.com/es-es/library/bb934126(v=sql.120).aspx" title="Crear servidor de administración centralizada en SQL Server" target="">https://msdn.microsoft.com/es-es/library/bb934126(v=sql.120).aspx</a>. Te ahorrará mucho tiempo en un futuro.<br><div><br></div><div><br></div></div>]]></description>
<pubDate>Wed, 01 Jun 2016 12:02:29 +0100</pubDate>
</item>
</channel>
</rss>