<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>Donde guardo mis ideas</title>
	<atom:link href="https://www.dondeguardomisideas.com/feed/" rel="self" type="application/rss+xml"/>
	<link>https://www.dondeguardomisideas.com</link>
	<description>Carlos Coronado Maleno</description>
	<lastBuildDate>Thu, 16 May 2024 15:14:13 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<itunes:explicit>no</itunes:explicit><itunes:subtitle>Carlos Coronado Maleno</itunes:subtitle><item>
		<title>Arreglar error de fecha entre windows y ubuntu</title>
		<link>https://www.dondeguardomisideas.com/2021/arreglar-error-de-fecha-entre-windows-y-ubuntu/</link>
					<comments>https://www.dondeguardomisideas.com/2021/arreglar-error-de-fecha-entre-windows-y-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Wed, 27 Jan 2021 20:59:30 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[timezone]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1981</guid>

					<description><![CDATA[Cada vez que reiniciaba el ordenador y saltaba entre windows/ubuntu, la hora de la BIOS se actualizaba y ambos SO mostraban mal la hora al inicia. Al cabo de un rato se actualizaba automáticamente (entiendo que cuando se conectase a la red y sincronizase la hora) y se corregía solo. Pero era un coñazo y me desquiciaba un poco xD Así que encontré la solución y os la dejo por<a href="https://www.dondeguardomisideas.com/2021/arreglar-error-de-fecha-entre-windows-y-ubuntu/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Cada vez que reiniciaba el ordenador y saltaba entre windows/ubuntu, la hora de la BIOS se actualizaba y ambos SO mostraban mal la hora al inicia. Al cabo de un rato se actualizaba automáticamente (entiendo que cuando se conectase a la red y sincronizase la hora) y se corregía solo.</p>



<p>Pero era un coñazo y me desquiciaba un poco xD</p>



<span id="more-1981"></span>



<p>Así que encontré la solución y os la dejo por aquí, por si alguien más necesita la solución.</p>



<p>El problema venía que Ubuntu trabaja con horas en UTC-0 y Windows 10 trabaja con la hora local que tengas configurado (en mi caso GMT+2 para España). Así que hay que corregir una de los dos SO.</p>



<ul class="wp-block-list"><li>Se puede cambiar Ubuntu para que use GTM+2</li><li>Se puede cambiar para que Windows use UTC-0</li></ul>



<p>En mi caso, como paso más tiempo en Ubuntu que en Windows (lo uso solo para jugar) Pues decidí pasar Windows a UTC-0</p>



<p>Para ello, ejecutamos el siguiente comando en un terminal (ejecutando como Administrador)</p>



<pre lang="shell"># Para windows en 64 bits
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_QWORD /d 1

# Para windows en 32 bits
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
</pre>



<p>Una vez ejecutado esto, reiniciáis Windows y listo.</p>



<p>Ahora teniendo el mismo timezone en los dos SO no volveremos a sufrir cambios de hora cuando cambiemos de uno a otro.</p>



<p>Si por el contrario queréis cambiar la hora de Ubuntu</p>



<pre lang="bash">timedatectl set-local-rtc 0</pre>



<p>Reiniciamos y listo.</p>



<p>Espero que os ayude y no os volváis locos como me ha pasado a mi (cambiando las pila del ordenador «como si no hubiera un mañana» xD )</p>



<p>Referencia:<a href="https://ubuntuhandbook.org/index.php/2016/05/time-differences-ubuntu-1604-windows-10/" target="_blank" rel="noreferrer noopener"> https://ubuntuhandbook.org/index.php/2016/05/time-differences-ubuntu-1604-windows-10/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2021/arreglar-error-de-fecha-entre-windows-y-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP Barcelona 2019 –– Día 1PHP Barcelona 2019 –– Día 1</title>
		<link>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-2/</link>
					<comments>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-2/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Thu, 14 Nov 2019 22:06:52 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1878</guid>

					<description><![CDATA[Hoy continuamos con el segundo, y último, día de charlas.Mathias Noback nos explica su modelo de «capas» sobre arquitectura hexagonal. Lorna nos enseñará a trabajar de forma segura con Webhooks, Enrico hablará sobre como monitorizar microservicios de forma eficiente y Théo Fidry nos expicará como realizar test mutantes para tener todas los frentes cubiertos. Advanced Web Application Architecture Matthias Noback In this talk I&#8217;ll explain how to make a clean<a href="https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-2/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Hoy continuamos con el segundo, y último, día de charlas.<br>Mathias Noback nos explica su modelo de «capas» sobre arquitectura hexagonal. Lorna nos enseñará a trabajar de forma segura con Webhooks, Enrico hablará sobre como monitorizar microservicios de forma eficiente y Théo Fidry nos expicará como realizar test mutantes para tener todas los frentes cubiertos.</p>



<span id="more-1878"></span>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Advanced Web Application Architecture</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Matthias Noback (abre en una nueva pestaña)" href="https://twitter.com/matthiasnoback" target="_blank">Matthias Noback</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk I&#8217;ll explain how to make a clean separation between your own business logic and the code that makes your application&#8217;s use cases available to the world outside. We&#8217;ll discuss architectural concepts like «layers» and «ports &amp; adapters», and how applying them will make your application flexible enough to deal with a constantly changing environment.</p><cite>https://php.barcelona/talk/126710f0-796a-46af-a2f8-2e56e0503042/questions</cite></blockquote>



<ul class="wp-block-list"><li>Single responsibiliy principle for achitecture. </li><li>Not too many groups (Domain vs Infrastructure)<ul><li>Note: Application inside domain</li></ul></li></ul>



<p>Steps:</p>



<ul class="wp-block-list"><li>Introduce layers<ul><li>Web framework</li><li>Domain logic</li><li>Database integration</li></ul></li><li>Define ports and adapters (Hexagonal architecture)<ul><li>Determine actors</li><li>Distinction between the intention and the implementation.</li><li>Advantages: Migrations, replacement, postpone vendor choices&#8230;</li></ul></li></ul>



<ul class="wp-block-gallery columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13-1024x562.png"><img fetchpriority="high" decoding="async" width="1024" height="562" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13-1024x562.png" alt="" data-id="1880" class="wp-image-1880" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13-1024x562.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13-300x165.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13-768x421.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-13.png 1218w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-14.png"><img decoding="async" width="680" height="636" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-14.png" alt="" data-id="1881" class="wp-image-1881" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-14.png 680w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-14-300x281.png 300w" sizes="(max-width: 680px) 100vw, 680px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-15.png"><img decoding="async" width="890" height="648" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-15.png" alt="" data-id="1882" class="wp-image-1882" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-15.png 890w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-15-300x218.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-15-768x559.png 768w" sizes="(max-width: 890px) 100vw, 890px" /></a></figure></li></ul>



<p>Slides: <a href="https://www.slideshare.net/matthiasnoback/advanced-web-application-architecture-php-barcelona" target="_blank" rel="noreferrer noopener" aria-label="https://www.slideshare.net/matthiasnoback/advanced-web-application-architecture-php-barcelona (abre en una nueva pestaña)">https://www.slideshare.net/matthiasnoback/advanced-web-application-architecture-php-barcelona</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Working with Webhooks</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Lorna Mitchell (abre en una nueva pestaña)" href="https://twitter.com/lornajane" target="_blank">Lorna Mitchell</a> &#8211; Nexmo</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This session covers the basic theory of webhooks and shows some examples of how to handle them in your own applications. We&#8217;ll also talk about when webhooks are a helpful design choice, and some pitfalls to look out for when you&#8217;re working with them!</p><cite>https://php.barcelona/talk/c947707e-1b07-4675-88c7-882024b185f9/questions</cite></blockquote>



<p>Webhook use cases:</p>



<ul class="wp-block-list"><li>Notify of events</li><li>Deliver data when available</li><li>Broadcast to multiple receivers as-it-happens.</li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="441" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-16-1024x441.png" alt="" class="wp-image-1885" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-16-1024x441.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-16-300x129.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-16-768x331.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-16.png 1278w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><a href="https://ngrok.com/" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">https://ngrok.com/</a></figcaption></figure></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/IMG_3848-e1573636496960-1024x1024.jpg" alt="" class="wp-image-1887"/><figcaption>Demo: https://www.nexmo.com/products/sms<br>Code example: https://github.com/lornajane/incoming-sms-laravel-beanstalkd</figcaption></figure>



<p>Shared secrets<br>Best practice:</p>



<ul class="wp-block-list"><li>Do: accept, store and acknowledge quickly.</li><li>Don&#8217;t: Process before acknowledging.</li><li>Use queues. They protect you against bursty traffic and allow separate work from webservers.</li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/IMG_3849-e1573637231354-1024x1024.jpg" alt="" class="wp-image-1892"/><figcaption><a rel="noreferrer noopener" href="https://beanstalkd.github.io/" target="_blank">https://beanstalkd.github.io/</a></figcaption></figure></div>



<p>Slides: <a href="https://noti.st/lornajane/gbzyij/working-with-webhooks" target="_blank" rel="noreferrer noopener" aria-label="https://noti.st/lornajane/gbzyij/working-with-webhooks (abre en una nueva pestaña)">https://noti.st/lornajane/gbzyij/working-with-webhooks</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Supercharge your apps with ReactPHP &amp; PHP-PM</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Albert Casademont (abre en una nueva pestaña)" href="https://twitter.com/acasademont" target="_blank">Albert Casademont</a> &#8211; Noustique</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Prepare yourself to dive into the lifecycle of a PHP request (compilation, opcode generation, memory allocation, execution, IO&#8230;) and to understand why there’s not much more room for performance improvements using the current stacks. We will also discuss the pros and cons of the ReactPHP + PHP-PM approach using a Symfony 4 app as an example, including developer experience and deployment options with containers.</p><cite>https://php.barcelona/talk/d0b096c3-6368-4aac-9e96-f3f17730fb3e/questions</cite></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="452" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-17-1024x452.png" alt="" class="wp-image-1896" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-17-1024x452.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-17-300x132.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-17-768x339.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-17.png 1614w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><a href="https://reactphp.org/" target="_blank" rel="noreferrer noopener" aria-label="https://reactphp.org/ (abre en una nueva pestaña)">https://reactphp.org/</a></figcaption></figure>



<ul class="wp-block-list"><li>No globals variables.</li><li>Async I/O. </li><li>Careful with state (Doctrine!).</li><li>No more var_dumps(), because the output will be in console, not in the Response.</li><li>Code changes need a reload. Because the loop still be running (Long-time process).</li><li>Dx is worse</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="581" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-18-1024x581.png" alt="" class="wp-image-1898" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-18-1024x581.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-18-300x170.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-18-768x436.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-18.png 1646w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption><a href="https://github.com/php-pm/php-pm" target="_blank" rel="noreferrer noopener" aria-label="https://github.com/php-pm/php-pm (abre en una nueva pestaña)">https://github.com/php-pm/php-pm</a></figcaption></figure>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h3 class="wp-block-heading">It&#8217;s all about the goto</h3>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://twitter.com/derickr" target="_blank">Derick Rethans</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this presentation, I am showing you some of the inner workings of PHP. We are going to look at how different language keywords and constructs are handled internally. Basically, everything is converted to goto, but the how and why, is not as simple as it seems! We&#8217;ll also have a look at what sort of optimisations opcache does to make your code run faster.</p><cite>https://php.barcelona/talk/fb93240c-399a-4550-b533-99fc330aee5d/questions</cite></blockquote>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-19-1024x512.png"><img loading="lazy" decoding="async" width="1024" height="512" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-19-1024x512.png" alt="" data-id="1900" class="wp-image-1900" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-19-1024x512.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-19-300x150.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-19-768x384.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20-1024x646.png"><img loading="lazy" decoding="async" width="1024" height="646" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20-1024x646.png" alt="" data-id="1902" class="wp-image-1902" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20-1024x646.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20-300x189.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20-768x484.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-20.png 1608w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul>



<p>Slides: <a rel="noreferrer noopener" aria-label=" https://derickrethans.nl/talks/jump-bcn19.pdf (abre en una nueva pestaña)" href="https://derickrethans.nl/talks/jump-bcn19.pdf" target="_blank">https://derickrethans.nl/talks/jump-bcn19.pdf</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Develop microservices in PHP</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Enrico Zimuel (abre en una nueva pestaña)" href="https://twitter.com/ezimuel" target="_blank">Enrico Zimuel</a> &#8211; Elastic</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk I&#8217;ll present how to develop microservices in PHP using Expressive framework + Swoole extension, to run PHP as HTTP server from the command line.</p><cite>https://php.barcelona/talk/b5cf72d5-7e19-4839-aced-40ddb70cdc98/questions</cite></blockquote>



<p>Pros:</p>



<ul class="wp-block-list"><li>Separation of concerns<ul><li>Modularity</li><li>Encapsulation</li></ul></li><li>Scalability<ul><li>Horizontally scaling</li><li>Workload partitioning</li></ul></li></ul>



<p>Cons:</p>



<ul class="wp-block-list"><li>Service latency (Docker, Kubernetes, etc&#8230;)</li><li>Debugging</li><li>New architecture challenges<ul><li>Autodiscovery</li><li>Telemetry</li><li>Everything needs to be automated</li></ul></li></ul>



<p>To handle errores between services can use a standard «<strong>application/problem+json</strong>» -&gt; <a rel="noreferrer noopener" aria-label="https://symfonycasts.com/screencast/rest/application-problem (abre en una nueva pestaña)" href="https://symfonycasts.com/screencast/rest/application-problem" target="_blank">https://symfonycasts.com/screencast/rest/application-problem</a></p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-1024x762.png"><img loading="lazy" decoding="async" width="1024" height="762" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-1024x762.png" alt="" data-id="1910" class="wp-image-1910" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-1024x762.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-300x223.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-768x572.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21-200x150.png 200w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-21.png 1362w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22-1024x325.png"><img loading="lazy" decoding="async" width="1024" height="325" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22-1024x325.png" alt="" data-id="1911" class="wp-image-1911" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22-1024x325.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22-300x95.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22-768x243.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-22.png 1868w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul>



<div class="wp-block-image"><figure class="aligncenter"><img decoding="async" src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Ftorino.grusp.org%2Fwp-content%2Fuploads%2F2018%2F05%2Fswoole_evento.png&amp;f=1&amp;nofb=1" alt="PHP User Group Torino | Gli appassionati di PHP a Torino e ..."/><figcaption>https://www.swoole.co.uk/</figcaption></figure></div>



<p><a href="https://getexpressive.org/">https://getexpressive.org/</a></p>



<p>Microservices needs:</p>



<ul class="wp-block-list"><li>Loggin: aggregation.</li><li>Monitoring: telemetry, metrics.</li><li>debugging: APM, distributed tracing.</li></ul>



<figure class="wp-block-image"><img decoding="async" src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1200%2F1*xpO072p2xxwL9H7LCadj_w.jpeg&amp;f=1&amp;nofb=1" alt="Deployment of full-scale ELK stack to Kubernetes – Hacker Noon"/></figure>



<p>Slides: <a href="https://www.zimuel.it/slides/phpbarcelona2019#/" target="_blank" rel="noreferrer noopener" aria-label="https://www.zimuel.it/slides/phpbarcelona2019#/ (abre en una nueva pestaña)">https://www.zimuel.it/slides/phpbarcelona2019#/</a><br>Workshop exercise: <a rel="noreferrer noopener" aria-label="https://github.com/ezimuel/php-microservices-workshop (abre en una nueva pestaña)" href="https://github.com/ezimuel/php-microservices-workshop" target="_blank">https://github.com/ezimuel/php-microservices-workshop</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Mutation Testing &#8211; Better code by making bugs</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Théo Fidry (abre en una nueva pestaña)" href="https://twitter.com/tfidry" target="_blank">Théo Fidry</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>How do you know you added enough tests to capture the behaviour of an untested application in order to refactor it safely?<br>Discover Mutation Testing, a fun tool to make your code better by introducing bugs.</p><cite>https://php.barcelona/talk/f9cec7f1-90be-4e70-9a85-0109ec9bd9ba/questions</cite></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/IMG_3857-e1573655980844-1024x1024.jpg" alt="" class="wp-image-1914"/></figure>



<ul class="wp-block-list"><li>How do i safely refactor my test?</li><li>How do i know i can trust a test suite?</li><li>How do i ensure y team is writing test?</li><li>&#8230;.</li></ul>



<p><a href="https://packagist.org/packages/infection/infection">https://packagist.org/packages/infection/infection</a></p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.50.31-768x1024.jpg"><img loading="lazy" decoding="async" width="768" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.50.31-768x1024.jpg" alt="" data-id="1937" data-link="https://www.dondeguardomisideas.com/?attachment_id=1937" class="wp-image-1937" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.50.31-768x1024.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.50.31-225x300.jpg 225w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.50.31.jpg 1000w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01.jpg"><img loading="lazy" decoding="async" width="1000" height="1000" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01.jpg" alt="" data-id="1938" data-link="https://www.dondeguardomisideas.com/?attachment_id=1938" class="wp-image-1938" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01.jpg 1000w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-15.57.01-768x768.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure></li></ul>



<p>Papers: <a href="https://github.com/theofidry/awesome-mutation-testing">https://github.com/theofidry/awesome-mutation-testing</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Nuclear powered software security</h2>



<p class="has-small-font-size"><a href="https://twitter.com/giveupalready" target="_blank" rel="noreferrer noopener" aria-label="Chris Riley (abre en una nueva pestaña)">Chris Riley</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk I&#8217;m going to show you how this level of safety is achieved, what happens when it goes wrong and then see what lessons we, as PHP developers, can learn from it to help us secure our applications from meltdown</p><cite>https://php.barcelona/talk/f1c388ab-83b6-405b-8599-1dba0e7ae39a/questions</cite></blockquote>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/IMG_3860-e1573660936525-1024x1024.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/IMG_3860-e1573660936525-1024x1024.jpg" alt="" data-id="1917" data-link="https://www.dondeguardomisideas.com/?attachment_id=1917" class="wp-image-1917"/></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42.jpg"><img loading="lazy" decoding="async" width="1000" height="1000" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42.jpg" alt="" data-id="1940" data-link="https://www.dondeguardomisideas.com/?attachment_id=1940" class="wp-image-1940" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42.jpg 1000w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.08.42-768x768.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></a></figure></li></ul>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h3 class="wp-block-heading">Coming back to the monolith</h3>



<p class="has-small-font-size">Manel Sellés</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This talk will explain architecture problems suffered at Ulabox, taking into account factors like team size or enterprise objectives, and which is our proposal to evolve our architecture.</p><cite>https://php.barcelona/talk/7605c1c1-3de5-4ed3-8bb7-d71332b2add4/questions</cite></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1000" height="1000" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.42.19.jpg" alt="" class="wp-image-1941" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.42.19.jpg 1000w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.42.19-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.42.19-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-13-17.42.19-768x768.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHP Barcelona 2019 –– Día 1</title>
		<link>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-1/</link>
					<comments>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-1/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Tue, 12 Nov 2019 21:19:42 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1793</guid>

					<description><![CDATA[Empezamos la conferencia PHP.Barcelona de este año con lleno completo. Así ha sido el 1º día. Opening Keynote Rasmus Lerdorf &#8211; PHP creator Rasmus will talk about all the shiny new things in PHP 7.4 and PHP 8 we all love but the keynote will also cover important things in our careers such as motivation, burn-out and focusing on things that really matter. https://php.barcelona/talk/760f5396-5251-47cc-a9a6-c1dee1f3b497/questions La charla ha empezado con un<a href="https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-1/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-image w100"><figure class="aligncenter is-resized"><img loading="lazy" decoding="async" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/elephant-logo-with-text-for-og.png" alt="" class="wp-image-1809" width="450" height="110" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/elephant-logo-with-text-for-og.png 450w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/elephant-logo-with-text-for-og-300x73.png 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></figure></div>



<p>Empezamos la conferencia PHP.Barcelona de este año con lleno completo. Así ha sido el 1º día.</p>



<span id="more-1793"></span>



<h2 class="wp-block-heading">Opening Keynote</h2>



<p class="has-small-font-size"><a href="https://twitter.com/rasmus" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">Rasmus Lerdorf</a> &#8211; PHP creator</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Rasmus will talk about all the shiny new things in PHP 7.4 and PHP 8 we all love but the keynote will also cover important things in our careers such as motivation, burn-out and focusing on things that really matter.</p><cite>https://php.barcelona/talk/760f5396-5251-47cc-a9a6-c1dee1f3b497/questions</cite></blockquote>



<p>La charla ha empezado con un breve resumen sobre donde «nació» Rasmus y como se gestó el nacimiento de PHP</p>



<ul class="wp-block-gallery columns-3 is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1.png"><img loading="lazy" decoding="async" width="708" height="417" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1.png" alt="" data-id="1818" class="wp-image-1818" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1.png 708w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1-300x177.png 300w" sizes="auto, (max-width: 708px) 100vw, 708px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-2.png"><img loading="lazy" decoding="async" width="695" height="483" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-2.png" alt="" data-id="1819" class="wp-image-1819" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-2.png 695w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-2-300x208.png 300w" sizes="auto, (max-width: 695px) 100vw, 695px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-3.png"><img loading="lazy" decoding="async" width="365" height="397" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-3.png" alt="" data-id="1820" class="wp-image-1820" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-3.png 365w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-3-276x300.png 276w" sizes="auto, (max-width: 365px) 100vw, 365px" /></a></figure></li></ul>



<p>Luego a continuado con la evolución del rendimiento a lo largo de las diferentes versiones.</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-7 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-4.png"><img loading="lazy" decoding="async" width="763" height="499" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-4.png" alt="" data-id="1821" class="wp-image-1821" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-4.png 763w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-4-300x196.png 300w" sizes="auto, (max-width: 763px) 100vw, 763px" /></a><figcaption>Rendimiento</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-5.png"><img loading="lazy" decoding="async" width="793" height="505" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-5.png" alt="" data-id="1822" class="wp-image-1822" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-5.png 793w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-5-300x191.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-5-768x489.png 768w" sizes="auto, (max-width: 793px) 100vw, 793px" /></a><figcaption>Consumo de memoria</figcaption></figure></li></ul>



<p>Para continuar ha mostrado diferentes herramientas para hacer profiling: <a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://github.com/adsr/phpspy" target="_blank">https://github.com/adsr/phpspy</a> para realizar análisis estático del código y además permite realizar gráficas de dependencias.   <a href="https://github.com/phan/phan" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">https://github.com/phan/phan</a> realiza un análisis del código para mostrar las compatibilidades con otras versiones de PHP. Y por último, para realizar <em>profiling</em> en los procesos de PHP <a rel="noreferrer noopener" href="http://pdep.lerdorf.com/" target="_blank">http://pdep.lerdorf.com/</a></p>



<ul class="wp-block-gallery columns-3 is-cropped wp-block-gallery-8 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-6.png"><img loading="lazy" decoding="async" width="783" height="364" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-6.png" alt="" data-id="1824" class="wp-image-1824" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-6.png 783w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-6-300x139.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-6-768x357.png 768w" sizes="auto, (max-width: 783px) 100vw, 783px" /></a><figcaption>Phan</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7-1024x490.png"><img loading="lazy" decoding="async" width="1024" height="490" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7-1024x490.png" alt="" data-id="1825" class="wp-image-1825" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7-1024x490.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7-300x143.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7-768x367.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-7.png 1326w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption>Pdep</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/68747470733a2f2f692e696d6775722e636f6d2f653650394172702e706e67.png"><img loading="lazy" decoding="async" width="772" height="551" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/68747470733a2f2f692e696d6775722e636f6d2f653650394172702e706e67.png" alt="" data-id="1828" data-link="https://www.dondeguardomisideas.com/?attachment_id=1828" class="wp-image-1828" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/68747470733a2f2f692e696d6775722e636f6d2f653650394172702e706e67.png 772w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/68747470733a2f2f692e696d6775722e636f6d2f653650394172702e706e67-300x214.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/68747470733a2f2f692e696d6775722e636f6d2f653650394172702e706e67-768x548.png 768w" sizes="auto, (max-width: 772px) 100vw, 772px" /></a><figcaption>Phpspy</figcaption></figure></li></ul>



<p>Por último acabó mostrando nuevas cosas que llegarán en las próximas versiones de PHP</p>



<ul class="wp-block-list"><li>Mejoras de rendimiento en Opcache</li><li>FFI &#8211; foreign function interface (loading libc and exporting functions into php code)</li></ul>



<p>Y cerró con una frase motivadora</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>WORK ON THINGS THAT MATTER (TO YOU)</p></blockquote>



<p>Slides: <a href="http://talks.php.net/phpbcn19" target="_blank" rel="noreferrer noopener" aria-label="http://talks.php.net/phpbcn19 (abre en una nueva pestaña)">http://talks.php.net/phpbcn19</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">From Helpers to Middleware</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Marco Pivetta (abre en una nueva pestaña)" href="https://twitter.com/Ocramius" target="_blank">Marco Pivetta</a> &#8211; @RoaveTeam, #doctrine2 team, #zendframework team.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>We&#8217;ll look at a brief history of frameworks, at which practices emerged from the various communities, and which of them survived and evolved, as well as recommendations to keep pushing forward.</p><cite>https://php.barcelona/talk/c25cf612-d76a-4a19-ace3-2193227a6f86/questions</cite></blockquote>



<p>Buenas prácticas:</p>



<ul class="wp-block-list"><li>DI / Container</li><li>TDD</li><li>DDD</li><li>ORM</li></ul>



<p>Y ahora toca evolucionar hacia:</p>



<ul class="wp-block-list"><li>Kill the framework -&gt; frame-to-work</li><li>Pushing immutability</li><li>Values as Value Objects</li><li>Static analysis: PHPStan, Psalm, Exakat&#8230;</li><li>Functional programming (x.e: curring functions)</li><li>Event sourcing</li></ul>



<ul class="wp-block-gallery columns-3 is-cropped wp-block-gallery-9 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1.jpg" alt="" data-id="1848" data-link="https://www.dondeguardomisideas.com/?attachment_id=1848" class="wp-image-1848" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.19.52-1-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1.jpg" alt="" data-id="1849" data-link="https://www.dondeguardomisideas.com/?attachment_id=1849" class="wp-image-1849" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.37.53-1-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17-1024x752.jpg"><img loading="lazy" decoding="async" width="1024" height="752" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17-1024x752.jpg" alt="" data-id="1852" data-link="https://www.dondeguardomisideas.com/?attachment_id=1852" class="wp-image-1852" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17-1024x752.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17-300x220.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17-768x564.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-10.47.17.jpg 1655w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul>



<p>Slides: pendiente</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Microservices gone wrong</h2>



<p class="has-small-font-size"><a href="https://twitter.com/ircmaxell" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">Anthony Ferrara</a> &#8211; Engineering @ FB</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Microservices are the latest architectural trend to take the PHP community by storm.<br>Is it a good pattern? How can you use it effectively? In this talk, we&#8217;ll explore real world experience building out a large scale application based around microservices &#8211; what worked really well, what didn&#8217;t work at all, and what we learned along the way.<br>Spoiler alert &#8211; we got a lot wrong.</p><cite>https://php.barcelona/talk/78eb8e51-adb7-4b21-b3da-3e59a65142e5/questions</cite></blockquote>



<ul class="wp-block-list"><li>Background<ul><li>Frameworks (legacy): Laravel, Zend 1, Crons (+1000)</li></ul></li><li>Architecture: <ul><li>API gateway <a rel="noreferrer noopener" aria-label="https://tyk.io/ (abre en una nueva pestaña)" href="https://tyk.io/" target="_blank">https://tyk.io/</a></li><li>Queues: Rambbit MQ to manage Domain Events («event sourcing» si lo guardas en S3)</li></ul></li><li>Infrastructure<ul><li>Hardware infrastructure.</li><li>Network Infrastructure: External ELB + HA Proxy + Mesos Cluster.</li><li>Logging infrastructure: <a rel="noreferrer noopener" aria-label="https://zipkin.io/ (abre en una nueva pestaña)" href="https://zipkin.io/" target="_blank">https://zipkin.io/</a></li></ul></li></ul>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-10 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14.jpg" alt="" data-id="1839" data-link="https://www.dondeguardomisideas.com/?attachment_id=1839" class="wp-image-1839" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.14-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49.jpg" alt="" data-id="1840" data-link="https://www.dondeguardomisideas.com/?attachment_id=1840" class="wp-image-1840" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-11.45.49-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Hasta este punto, explica, es todo lo que Kubernetes hace.</p></blockquote>



<ul class="wp-block-list"><li>Local dev experience<ul><li>«The automated local environment tool was unreliable, difficult to use, and excruciating SLOW»</li></ul></li><li>Getting it running<ul><li>ENV differences took a few days to sort out</li><li>Services were built to idealized infra behavior</li><li>Engineers had moved on to other services by the time infra challenges were sorted.</li><li>Most deployments required high levels of coordination</li><li>Getting a local/staging environment to a known state was exceedingly challenging</li><li>Lack of circuit breakers led to difficult to detect and debug cascading failures.</li></ul></li><li>Dealing with change<ul><li>Partially due to feedback from clients</li></ul></li><li>Leassons learned<ul><li>Service calls are unreliable<ul><li>how often do you expect a method call to fail randmly? (1M, 1000M?</li><li>how about network calls?</li></ul></li><li>How small should you build your services?</li><li>Don&#8217;t do microservices unless you have a dedicated tooling and automation team.</li><li>Big services are easier to split and stitch small services.</li><li>Automate everthing (spin-up, deploy, migration, backup, etc&#8230;)</li><li>Failure modes should be built first.</li></ul></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Managing complexity is vital to long-term success.</p></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.08.13.jpg" alt="" class="wp-image-1841" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.08.13.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.08.13-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.08.13-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.08.13-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Slides: <a rel="noreferrer noopener" aria-label="https://docs.google.com/presentation/d/1lsqDhUCI57WrY6x78FQ7_5Khm34gW49wUAnLbXpu83U/edit#slide=id.p (abre en una nueva pestaña)" href="https://docs.google.com/presentation/d/1lsqDhUCI57WrY6x78FQ7_5Khm34gW49wUAnLbXpu83U/edit#slide=id.p" target="_blank">https://docs.google.com/presentation/d/1lsqDhUCI57WrY6x&#8230;..</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Serverless PHP applications with Bref</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Matthieu Napoli (abre en una nueva pestaña)" href="https://twitter.com/matthieunapoli" target="_blank">Matthieu Napoli</a> &#8211; </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Let&#8217;s see if serverless lives up to this promise! We will check out&nbsp;<strong>AWS Lambda</strong>&nbsp;and&nbsp;<strong>Bref</strong>, an open source solution for building&nbsp;<strong>serverless PHP applications</strong>.</p><cite>https://php.barcelona/talk/ebde04b9-7442-4cbb-8e46-5900a3cea332/questions</cite></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.15.23.jpg" alt="" class="wp-image-1846" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.15.23.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.15.23-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.15.23-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-12.15.23-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list"><li>Manage less</li><li>scale more</li><li>pay per use</li><li><a href="https://bref.sh/" target="_blank" rel="noreferrer noopener" aria-label="https://bref.sh/ (abre en una nueva pestaña)">https://bref.sh/</a></li></ul>



<p>Consejos:<br>&#8211; Do not use cheapest lambda services, use with at least 1024MB of CPU<br>&#8211; Take care with «cold starts»</p>



<p>Termina con una herramienta para poder realizar análisis automático de PSR y MessDetector.</p>



<figure class="wp-block-image"><img decoding="async" src="https://prettyci.com/img/home/prettyci-github.png" alt="PrettyCI integrates PHP CodeSniffer and PHP-CS-Fixer into GitHub"/><figcaption><a href="https://prettyci.com/" target="_blank" rel="noreferrer noopener" aria-label="https://prettyci.com/ (abre en una nueva pestaña)">https://prettyci.com/</a></figcaption></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Is the future serverless?<br>Is PHP&#8217;s future serverless?</p><p>&#8230;..</p><p>Try it and share!</p><cite>https://serverless-php.news/</cite></blockquote>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Knock knock, who&#8217;s there? Authenticating your single page apps using JSON Web Tokens.</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Sam Bellen  (abre en una nueva pestaña)" href="https://twitter.com/sambego" target="_blank">Sam Bellen</a> &#8211; Auth0</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk I will try to explain in depth, the way JSON Web Tokens work and can be used to secure your single page apps. I will explain the difference between using opaque tokens and JWTs. The talks will also give an overview of a modern authentication flow and a step by step breakdown of how it works exactly. No specific previous knowledge is required, but it helps the audience has some experience with authenticating users.</p><cite>https://php.barcelona/talk/dc95e4af-0296-4008-a99e-4f0f7a0f508d/questions</cite></blockquote>



<p>Existen varios tipos de «tokens»</p>



<ul class="wp-block-list"><li>Access token</li><li>Id token </li><li>Refresh tokens</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Cookies don&#8217;t like CORS</p></blockquote>



<p>Partes de un token JWT:<br>&#8211; Header (fecha de expiración + algoritmo utilizado)<br>&#8211; Payload (datos)<br>&#8211; Signature (verficación de la firma)<br>Y dentro del <em>payload</em>: </p>



<ul class="wp-block-list"><li>Reserved claims</li><li>Public claims</li><li>Private claims</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>DON&#8217;T PUT SENSITIVE DATA IN THE PAYLOAD!<br>Keep the payload small, only put in relevant data!</p></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="820" height="529" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-8.png" alt="" class="wp-image-1854" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-8.png 820w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-8-300x194.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-8-768x495.png 768w" sizes="auto, (max-width: 820px) 100vw, 820px" /></figure>



<p><strong>JOSE</strong> specification: acrónimo de <strong>JSON OBJECT SIGNING AND ENCRYPTION</strong></p>



<figure class="wp-block-image"><img decoding="async" src="https://insomnia.rest/static/main-ac0a1732afac19acce5ad6825595c3bb-9a259.webp" alt="Insomnia REST Client"/><figcaption><a href="https://insomnia.rest/" target="_blank" rel="noreferrer noopener" aria-label="https://insomnia.rest/ (abre en una nueva pestaña)">https://insomnia.rest/</a></figcaption></figure>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="976" height="316" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-9.png" alt="" class="wp-image-1857" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-9.png 976w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-9-300x97.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-9-768x249.png 768w" sizes="auto, (max-width: 976px) 100vw, 976px" /></figure>



<p>Slides: <a rel="noreferrer noopener" href="https://jwt.sambego.tech/" target="_blank">https://jwt.sambego.tech/</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h3 class="wp-block-heading">Developing cacheable PHP applications</h3>



<p class="has-small-font-size"><a href="https://twitter.com/ThijsFeryn" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">Thijs Feryn</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this presentation I will show you how to leverage specific mechanism to achieve a good hit rate without losing touch with some of the challenges of real-life web projects.</p><cite>https://php.barcelona/talk/80127c19-d670-4263-ba56-78a67e530383/questions</cite></blockquote>



<ul class="wp-block-list"><li>Slow websites SUCK</li><li>Throwing servers at the problem</li><li>Mo&#8217; Money, Mo&#8217; server, Mo&#8217; Problems</li></ul>



<p>Cache control:</p>



<ul class="wp-block-list"><li>Cache-control header</li><li>Conditional requests: only fetch part that has changed<ul><li>If-None-Match</li></ul><ul><li>Etag + 304</li><li>Last-Modified + 304   /   If-Last-Modified</li><li>Stale-while-revalidate</li></ul></li><li>Redis: Store &amp; retrieve Etag</li><li>Content composition: cache: header/nav/footer + only render «Main» section (in separate http request -&gt; ajax)</li><li>Placeholders<ul><li>ESI: Edge-side includes</li><li>VCL: https://varnish-cache.org/docs/trunk/users-guide/vcl.html</li></ul></li><li>Composition at the view layer: <ul><li>Change {{ include(&#8216;footer.twig&#8217;) }}  &#8212;&gt; {{render_esi(&#8216;footer&#8217;) }}</li></ul></li><li>Cache variation<ul><li>Chach key based on url + Accept-Language if change.<ul><li>Vary: Accept-Language</li></ul></li><li>Only keep accept some cookies</li></ul></li><li>caching personalized data<ul><li>Synthetic http</li></ul></li><li>Edgestash: <a rel="noreferrer noopener" aria-label="https://github.com/ThijsFeryn/EdgestashTwigBundle (abre en una nueva pestaña)" href="https://github.com/ThijsFeryn/EdgestashTwigBundle" target="_blank">https://github.com/ThijsFeryn/Edgest ashTwigBundle</a></li></ul>



<ul class="wp-block-gallery columns-3 is-cropped wp-block-gallery-11 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35.jpg" alt="" data-id="1859" class="wp-image-1859" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.37.35-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45.jpg"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45.jpg" alt="" data-id="1860" data-link="https://www.dondeguardomisideas.com/?attachment_id=1860" class="wp-image-1860" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45-150x150.jpg 150w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45-300x300.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.46.45-768x768.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.54.11-1024x882.jpg"><img loading="lazy" decoding="async" width="1024" height="882" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.54.11-1024x882.jpg" alt="" data-id="1861" data-link="https://www.dondeguardomisideas.com/?attachment_id=1861" class="wp-image-1861" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.54.11.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.54.11-300x258.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/2019-11-12-15.54.11-768x662.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure></li></ul>



<p>Slides: <a href="https://speakerdeck.com/thijsferyn/developing-cacheable-php-applications-php-barcelona-2019" target="_blank" rel="noreferrer noopener" aria-label="https://speakerdeck.com/thijsferyn/developing-cacheable-php-applications-php-barcelona-2019 (abre en una nueva pestaña)">https://speakerdeck.com/thijsferyn/developing-cacheable-php-applications-php-barcelona-2019</a><br>Libro sobre Varnish -> <a rel="noreferrer noopener" aria-label="https://info.varnish-software.com/getting-started-with-varnish-cache-oreilly-book (abre en una nueva pestaña)" href="https://info.varnish-software.com/getting-started-with-varnish-cache-oreilly-book" target="_blank">https://info.varnish-software.com/getting-started-with-varnish-cache-oreilly-book</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">PHP Performance Trivia</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Nikita Popov (abre en una nueva pestaña)" href="https://twitter.com/nikita_ppv" target="_blank">Nikita Popov</a> &#8211; JetBrains</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This talk discusses various issues of low-level PHP performance, such as: When is it more efficient to use arrays or objects? What causes catastrophic garbage collection? Does adding type annotations make PHP faster or slower?</p><cite>https://php.barcelona/talk/caf83167-eb0c-4727-805b-27ddec4e3b1f/questions</cite></blockquote>



<ul class="wp-block-list"><li>Opcache </li><li>Preloading</li><li>Value Caching:<ul><li>Composer classmap</li></ul><ul><li>APCUP &lt;&#8211;&gt; PHP  &lt;&#8211;&gt;OpCache</li><li>(Ab)use opcache as data cache</li></ul></li><li>Opcache reset: <ul><li>Invalidated files remain in opcache + cleared on full reset.</li></ul><ul><li>Needs to be repopulated from scratch.</li><li>Cache not used during reset (proccess up)</li></ul></li><li>Arrays vs Objects</li><li>Garbage Collection</li></ul>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="558" height="309" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-10.png" alt="" class="wp-image-1863" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-10.png 558w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-10-300x166.png 300w" sizes="auto, (max-width: 558px) 100vw, 558px" /></figure>



<p>Do they make PHP slower or faster?</p>



<ul class="wp-block-list"><li>Type declarations need to be checked</li><li>Type declarations allow more optimizations</li><li>Global Namespaces -&gt; Cachéa la primera vez que se usa. No hace falta optimizar añadiendo \json_encode(&#8230;..);</li><li>Specialized functions</li><li>Sometimes FINAL class are faster with Opcache</li></ul>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-12 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="589" height="326" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-11.png" alt="" data-id="1864" class="wp-image-1864" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-11.png 589w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-11-300x166.png 300w" sizes="auto, (max-width: 589px) 100vw, 589px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="505" height="326" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-12.png" alt="" data-id="1865" class="wp-image-1865" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-12.png 505w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-12-300x194.png 300w" sizes="auto, (max-width: 505px) 100vw, 505px" /></figure></li></ul>



<p>Slides: <a href="https://www.slideshare.net/nikita_ppv/php-performance-trivia/nikita_ppv/php-performance-trivia" target="_blank" rel="noreferrer noopener" aria-label="https://www.slideshare.net/nikita_ppv/php-performance-trivia/nikita_ppv/php-performance-trivia (abre en una nueva pestaña)">https://www.slideshare.net/nikita_ppv/php-performance-trivia/nikita_ppv/php-performance-trivia</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">Get GOing with a new language</h2>



<p class="has-small-font-size"><a href="https://twitter.com/kasiazien" target="_blank" rel="noreferrer noopener" aria-label="Kat Zień (abre en una nueva pestaña)">Kat Zień</a> &#8211; Monzo</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The goal of this talk is to give you a good idea of what Go is and how it compares with PHP. We’ll look at the language itself as well as the tooling and communities around it. Even if you’re not sold on Go by the end of it, I hope you’ll leave inspired to go out there and learn whatever language you wanted to look into next.</p><cite>https://php.barcelona/talk/f498f15d-d3f0-4b93-914c-3e5f1205cdb9/questions</cite></blockquote>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="607" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1024x607.png" alt="" class="wp-image-1813" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-1024x607.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-300x178.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image-768x455.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/11/image.png 1434w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Slides: <a rel="noreferrer noopener" aria-label="https://github.com/katzien/talks/blob/master/get-going-with-a-new-language/phpbarcelona-2019-11-12/slides.pdf (abre en una nueva pestaña)" href="https://github.com/katzien/talks/blob/master/get-going-with-a-new-language/phpbarcelona-2019-11-12/slides.pdf" target="_blank">https://github.com/katzien/talks/blob/master/get-going-with-a-new-language/phpbarcelona-2019-11-12/slides.pdf</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/php-barcelona-2019-dia-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arreglar reproducción de videos en Opera</title>
		<link>https://www.dondeguardomisideas.com/2019/arreglar-reproduccion-de-videos-en-opera/</link>
					<comments>https://www.dondeguardomisideas.com/2019/arreglar-reproduccion-de-videos-en-opera/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Mon, 10 Jun 2019 09:56:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[video]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1574</guid>

					<description><![CDATA[Cada cierto tiempo, el navegador web Opera se queda sin la capacidad de reproducción de videos. El error es debido al desfase de versiones entre el núcleo del navegador (Chromium) y la versión de FFmpeg que lleva integrado. Para arreglar la reproducción solo tenemos que descargarnos la última versión de esta librería: https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases En mi caso: Kubuntu 22.04 sería la 0.87.0-linux-x64.zip. Después de descargarnos el zip lo descomprimimos y nos<a href="https://www.dondeguardomisideas.com/2019/arreglar-reproduccion-de-videos-en-opera/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Cada cierto tiempo, el navegador web Opera se queda sin la capacidad de reproducción de videos. El error es debido al <strong>desfase de versiones </strong>entre el núcleo del navegador (<strong>Chromium</strong>) y la versión de <strong>FFmpeg</strong> que lleva integrado.</p>



<span id="more-1574"></span>



<p>Para arreglar la reproducción solo tenemos que descargarnos la última versión de esta librería: <a href="https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases" target="_blank" rel="noreferrer noopener">https://github.com/nwjs-ffmpeg-prebuilt/nwjs-ffmpeg-prebuilt/releases</a></p>



<pre class="wp-block-verse">En mi caso: Kubuntu 22.04 sería la <strong>0.87.0-linux-x64.zip</strong>. 
</pre>



<figure class="wp-block-image size-large"><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173.png"><img loading="lazy" decoding="async" width="1024" height="573" src="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173-1024x573.png" alt="" class="wp-image-2307" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173-1024x573.png 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173-300x168.png 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173-768x430.png 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/imagen_2024-05-16_170854173.png 1519w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>Después de descargarnos el <strong>zip</strong> lo descomprimimos y nos aparecerá el archivo <strong>libffmpeg.so</strong></p>



<p>Ahora solamente tenemos que crear una carpeta aquí</p>



<pre class="wp-block-verse">/usr/lib/x86_64-linux-gnu/opera/lib_extra</pre>



<p>y mover el arhivo que hemos descomprimido antes a ella</p>



<pre class="wp-block-verse">sudo mv libffmpeg.so /usr/lib/x86_64-linux-gnu/opera/lib_extra</pre>



<p>Terminado!! Ahora <strong>reinicia el navegador</strong> para que cargue la nueva librería y podrás volver a ver videos en cualquier lado <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Si quieres confirmarlo, visita la web <a href="https://html5test.com/" target="_blank" rel="noreferrer noopener">https://html5test.com/</a> y comprueba que ya tienes soporte oficial para videos con formato H.264</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/image.png"><img loading="lazy" decoding="async" width="462" height="483" src="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/image.png" alt="" class="wp-image-2310" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/image.png 462w, https://www.dondeguardomisideas.com/wp-content/uploads/2024/05/image-287x300.png 287w" sizes="auto, (max-width: 462px) 100vw, 462px" /></a></figure>
</div>


<p>Nota: Se supone que con esa carpeta, no hace falta volver a actualizarlo con cada actualización de Opera, pero ya veremos&#8230; Si encuentro una forma mejor os lo actualizaré por aquí <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p></p>



<p>Nota: Con Esto arregla tambiél el error de <strong><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://www.plex.tv/" target="_blank">Plex</a></strong> sobre:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Se ha producido un error intentando reproducir «Episodio XXX».<br>Código de error: <strong>s9009&nbsp;(Manifiesto)</strong></p>
</blockquote>



<p>Update 2022: Esto también arregla el error de twich:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Este vídeo no está disponible o no es compatible con el navegador. (Error #4000)</p>
</blockquote>



<p>Update: 2024: Se han cambiado los links para soportar versiones de Opera +110</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/arreglar-reproduccion-de-videos-en-opera/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps Barcelona 2019 – Día 3</title>
		<link>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-3/</link>
					<comments>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-3/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Thu, 06 Jun 2019 21:31:14 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[meetup]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1705</guid>

					<description><![CDATA[Hoy empezamos el último día con un refresco de los puntos de seguridad que debemos tener siempre en mente. Thank you for coming folks!! What a great time!! @devopsbarcelona #devopsbcn2019 pic.twitter.com/uOBP7e4gXQ — Néstor Salceda (@nestorsalceda) 6 de junio de 2019 1. DevSecOps, stay away from being in the news Irene Comalada &#8211; GFI#security #hackers #devsecops Have you ever heard of: ‘one apple a day keeps the doctor away’? Fact that<a href="https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-3/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Hoy empezamos el último día con un refresco de los puntos de seguridad que debemos tener siempre en mente.</p>



<span id="more-1705"></span>



<blockquote class="twitter-tweet" data-lang="es"><p lang="en" dir="ltr">Thank you for coming folks!! What a great time!! <a href="https://twitter.com/devopsbarcelona?ref_src=twsrc%5Etfw">@devopsbarcelona</a>  <a href="https://twitter.com/hashtag/devopsbcn2019?src=hash&amp;ref_src=twsrc%5Etfw">#devopsbcn2019</a> <a href="https://t.co/uOBP7e4gXQ">pic.twitter.com/uOBP7e4gXQ</a></p>— Néstor Salceda (@nestorsalceda) <a href="https://twitter.com/nestorsalceda/status/1136574840457109506?ref_src=twsrc%5Etfw">6 de junio de 2019</a></blockquote>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">1. DevSecOps, stay away from being in the news</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Irene Comalada (abre en una nueva pestaña)" href="https://twitter.com/irenecomalada" target="_blank">Irene Comalada</a></em> &#8211; GFI<br>#security #hackers #devsecops</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-13 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3166-1024x768.jpg" alt="" data-id="1737" data-link="https://www.dondeguardomisideas.com/?attachment_id=1737" class="wp-image-1737" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3166-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3166-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3166-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3166-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3168-1024x768.jpg" alt="" data-id="1738" data-link="https://www.dondeguardomisideas.com/?attachment_id=1738" class="wp-image-1738" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3168-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3168-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3168-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3168-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3169-1024x768.jpg" alt="" data-id="1739" data-link="https://www.dondeguardomisideas.com/?attachment_id=1739" class="wp-image-1739" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3169-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3169-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3169-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3169-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3171-1024x768.jpg" alt="" data-id="1740" data-link="https://www.dondeguardomisideas.com/?attachment_id=1740" class="wp-image-1740" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3171-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3171-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3171-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3171-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Have you ever heard of: ‘one apple a day keeps the doctor away’? Fact that makes each one of us responsible for doing a small action that should improve our life.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/devsecops-stay-away-from-being-in-the-news</cite></blockquote>



<p><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://www.devseccon.com/" target="_blank">https://www.devseccon.com/</a><br><a rel="noreferrer noopener" aria-label="https://owaspsamm.org/ (abre en una nueva pestaña)" href="https://owaspsamm.org/" target="_blank">https://owaspsamm.org/</a><br><a href="https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project" target="_blank" rel="noreferrer noopener" aria-label="https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project (abre en una nueva pestaña)">https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">2. Continuous delivery for data science models</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Raam Rosh Hai (abre en una nueva pestaña)" href="https://twitter.com/raam86" target="_blank">Raam Rosh Hai</a></em> &#8211; Wonderkind<br>#predictions</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Tired of wrapping pickled models in server logic? me too! The biggest bottleneck in delivering machine learning services is the handover from data science to engineering.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/continuous-delivery-for-data-science-models</cite></blockquote>



<p><a href="https://github.com/assaf-platform">https://github.com/assaf-platform</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">3. Kubernetes event abnormality detection with Falco</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Néstor Salceda  (abre en una nueva pestaña)" href="https://twitter.com/nestorsalceda" target="_blank">Néstor Salceda</a></em><a rel="noreferrer noopener" aria-label="Néstor Salceda  (abre en una nueva pestaña)" href="https://twitter.com/nestorsalceda" target="_blank"> </a>&#8211; Sysdig<br>#kubernetes #security #anomaly #detection #falco</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3172-1024x768.jpg" alt="" class="wp-image-1742" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3172-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3172-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3172-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3172-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk we’ll cover how we extended Falco to ingest events beyond just host system calls, such as Kubernetes audit events or even application level event</p><cite>https://joind.in/event/devops-barcelona-conference-2019/kubernetes-event-abnormality-detection-with-falco</cite></blockquote>



<p><br><a rel="noreferrer noopener" aria-label="https://falco.org/ (abre en una nueva pestaña)" href="https://falco.org/" target="_blank">https://falco.org/</a><br><a rel="noreferrer noopener" aria-label="https://sysdig.com/blog/gke-security-using-falco/ (abre en una nueva pestaña)" href="https://sysdig.com/blog/gke-security-using-falco/" target="_blank">https://sysdig.com/blog/gke-security-using-falco/</a><br><a rel="noreferrer noopener" aria-label="https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud/ (abre en una nueva pestaña)" href="https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud/" target="_blank">https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud/</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">4. Managing Failure in a Distributed World</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Nic Jackson (abre en una nueva pestaña)" href="https://twitter.com/sheriffjackson" target="_blank">Nic Jackson</a></em> &amp;<a rel="noreferrer noopener" aria-label=" Erik Veld  (abre en una nueva pestaña)" href="https://twitter.com/erikveld" target="_blank"> Erik Veld </a>&#8211; HashiCorp<br>#mesh-architecture</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3173-1024x768.jpg" alt="" class="wp-image-1743" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3173-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3173-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3173-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3173-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk, Nic will walk through the areas of complexity in a system we will then look at what patterns you can employ to ensure performance and availability even in a failing world.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/managing-failure-in-a-distributed-world</cite></blockquote>



<p><a href="https://emojify.today/">https://emojify.today/</a><br><a rel="noreferrer noopener" aria-label="https://www.envoyproxy.io/ (abre en una nueva pestaña)" href="https://www.envoyproxy.io/" target="_blank">https://www.envoyproxy.io/</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">5. Monitoring OVH: 300k servers, 27 DCs and one Observability platform</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Horacio González (abre en una nueva pestaña)" href="https://twitter.com/LostInBrittany" target="_blank">Horacio González</a></em> &#8211; OVH<br>#scalable #metrics</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-14 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3176-1024x768.jpg" alt="" data-id="1744" data-link="https://www.dondeguardomisideas.com/?attachment_id=1744" class="wp-image-1744" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3176-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3176-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3176-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3176-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3178-1024x768.jpg" alt="" data-id="1745" data-link="https://www.dondeguardomisideas.com/?attachment_id=1745" class="wp-image-1745" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3178-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3178-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3178-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3178-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk we will relate our experience building and maintaining OVH Metrics, the platform used to monitor all OVH infrastructure.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/monitoring-ovh-300k-servers-27-dcs-and-one-observability-platform</cite></blockquote>



<p><a rel="noreferrer noopener" aria-label="https://gotochgo.com/2017/sessions/86 (abre en una nueva pestaña)" href="https://gotochgo.com/2017/sessions/86" target="_blank">https://gotochgo.com/2017/sessions/86</a><br><a rel="noreferrer noopener" aria-label="https://www.influxdata.com/ (abre en una nueva pestaña)" href="https://www.influxdata.com/" target="_blank">https://www.influxdata.com/</a><br><a rel="noreferrer noopener" aria-label="https://www.warp10.io/ (abre en una nueva pestaña)" href="https://www.warp10.io/" target="_blank">https://www.warp10.io/</a><br><a rel="noreferrer noopener" aria-label="https://prometheus.io/ (abre en una nueva pestaña)" href="https://prometheus.io/" target="_blank">https://prometheus.io/</a><br>Slides: <a rel="noreferrer noopener" aria-label="https://noti.st/lostinbrittany/RBj04E/monitoring-ovh-300k-servers-27-dcs-and-one-metrics-platform (abre en una nueva pestaña)" href="https://noti.st/lostinbrittany/RBj04E/monitoring-ovh-300k-servers-27-dcs-and-one-metrics-platform" target="_blank">https://noti.st/lostinbrittany/RBj04E/monitoring-ovh-300k-se&#8230;</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">6. From DevTestOops to DevTestOps</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Álex Soto (abre en una nueva pestaña)" href="https://twitter.com/alexsotob" target="_blank">Álex Soto</a></em> &#8211; RedHat<br>#testing pyramid #test-in-production #canary-releases #dark-canaries</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-15 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3179-1024x768.jpg" alt="" data-id="1746" data-link="https://www.dondeguardomisideas.com/?attachment_id=1746" class="wp-image-1746" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3179-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3179-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3179-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3179-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3180-1024x768.jpg" alt="" data-id="1747" data-link="https://www.dondeguardomisideas.com/?attachment_id=1747" class="wp-image-1747" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3180-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3180-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3180-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3180-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this session, we will not only describe but also actively demonstrate several techniques that you can use immediately following the session for testing applications like unicorns.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/from-devtestoops-to-devtestops</cite></blockquote>



<p><a rel="noreferrer noopener" aria-label="https://puppet.com/resources/whitepaper/state-of-devops-report (abre en una nueva pestaña)" href="https://puppet.com/resources/whitepaper/state-of-devops-report" target="_blank">https://puppet.com/resources/whitepaper/state-of-devops-report</a><br><a rel="noreferrer noopener" aria-label="https://github.com/redhat-developer-demos/istio-tutorial (abre en una nueva pestaña)" href="https://github.com/redhat-developer-demos/istio-tutorial" target="_blank">https://github.com/redhat-developer-demos/istio-tutorial</a><br>Slides: <a href="https://www.slideshare.net/asotobu/from-devtestoops-to-devtestops">https://www.slideshare.net/asotobu/from-devtestoops-to-devtestops</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">7. Levering Kubernetes to run Kubernetes</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Fernando Ripoll Lafuente (abre en una nueva pestaña)" href="https://twitter.com/pipo02mix" target="_blank">Fernando Ripoll Lafuente</a></em> &#8211; Giant Swarm<br>#kubernetes</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>I will go through the key components of our design and how we apply DevOps practices to deliver value fast in a highly dynamic environment.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/levering-kubernetes-to-run-kubernetes</cite></blockquote>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">8. You cannot fight against what you cannot see</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Jesús Chóliz  (abre en una nueva pestaña)" href="https://twitter.com/jesuscholiz" target="_blank">Jesús Chóliz</a></em><a rel="noreferrer noopener" aria-label="Jesús Chóliz  (abre en una nueva pestaña)" href="https://twitter.com/jesuscholiz" target="_blank"> </a>&#8211; Adevinta<br>#security #monitoring #hacks</p>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-16 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3181-1024x768.jpg" alt="" data-id="1748" data-link="https://www.dondeguardomisideas.com/?attachment_id=1748" class="wp-image-1748" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3181-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3181-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3181-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3181-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3182-1024x768.jpg" alt="" data-id="1749" data-link="https://www.dondeguardomisideas.com/?attachment_id=1749" class="wp-image-1749" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3182-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3182-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3182-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3182-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk we want to show the architecture we have in place to monitor several different platforms from several different websites, with distributed teams, diverse technologies, using a pragmatic approach for investing a very reasonable effort and money</p><cite>https://joind.in/event/devops-barcelona-conference-2019/you-cannot-fight-against-what-you-cannot-see</cite></blockquote>



<p>Monitor Web Request: WAF: <a href="https://www.splunk.com/">https://www.splunk.com</a><br>Monitor infrastructure: AWS CloudTrail<br>Monitor Server: <a rel="noreferrer noopener" aria-label="OSSEC (abre en una nueva pestaña)" href="https://www.ossec.net/" target="_blank">OSSEC</a> (<a rel="noreferrer noopener" aria-label="Wazuh (abre en una nueva pestaña)" href="https://wazuh.com/" target="_blank">Wazuh</a>)<br>Monitor User: Logins: Same county/ip on differents users <br>Monitor Attackers: HonneyPot<br>Monitor Network: AWS Guard Duty (request to bitcoin server, root logins, TOR nodes, etc&#8230;)</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps Barcelona 2019 – Día 2</title>
		<link>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-2/</link>
					<comments>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-2/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Wed, 05 Jun 2019 18:48:39 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[meetup]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1661</guid>

					<description><![CDATA[Hoy ha sido un día un poco más flojo pero seguimos aprendiendo! Segundo dia en la @devopsbarcelona y es un día muy especial 🤯 Tenemos a nuestro adevintan @pakusland hablando sobre «Spartans don&#8217;t like bad data» 🤩 Lleno absoluto 🥳 #AdevintaTalks #devopsbcn19 pic.twitter.com/tKLWMZSFdI — Adevinta Spain (@AdevintaSpain) 5 de junio de 2019 Balloon party thanks to @AdevintaEng 😀 #devopsbcn19 @devopsbarcelona pic.twitter.com/iNhaOYwnRa — Agente Romanov 🐐 (@ivanvihe) 5 de junio de<a href="https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-2/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Hoy ha sido un día un poco más flojo pero seguimos aprendiendo!</p>



<span id="more-1661"></span>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<blockquote class="twitter-tweet" data-lang="es"><p lang="es" dir="ltr">Segundo dia en la <a href="https://twitter.com/devopsbarcelona?ref_src=twsrc%5Etfw">@devopsbarcelona</a> y es un día muy especial <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f92f.png" alt="🤯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Tenemos a nuestro adevintan <a href="https://twitter.com/pakusland?ref_src=twsrc%5Etfw">@pakusland</a> hablando sobre «Spartans don&#8217;t like bad data» <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f929.png" alt="🤩" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Lleno absoluto <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f973.png" alt="🥳" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://twitter.com/hashtag/AdevintaTalks?src=hash&amp;ref_src=twsrc%5Etfw">#AdevintaTalks</a> <a href="https://twitter.com/hashtag/devopsbcn19?src=hash&amp;ref_src=twsrc%5Etfw">#devopsbcn19</a> <a href="https://t.co/tKLWMZSFdI">pic.twitter.com/tKLWMZSFdI</a></p>— Adevinta Spain (@AdevintaSpain) <a href="https://twitter.com/AdevintaSpain/status/1136207024193191936?ref_src=twsrc%5Etfw">5 de junio de 2019</a></blockquote>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<blockquote class="twitter-tweet" data-lang="es"><p lang="en" dir="ltr">Balloon party thanks to <a href="https://twitter.com/AdevintaEng?ref_src=twsrc%5Etfw">@AdevintaEng</a> <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <a href="https://twitter.com/hashtag/devopsbcn19?src=hash&amp;ref_src=twsrc%5Etfw">#devopsbcn19</a> <a href="https://twitter.com/devopsbarcelona?ref_src=twsrc%5Etfw">@devopsbarcelona</a> <a href="https://t.co/iNhaOYwnRa">pic.twitter.com/iNhaOYwnRa</a></p>— Agente Romanov <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f410.png" alt="🐐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> (@ivanvihe) <a href="https://twitter.com/ivanvihe/status/1136200957660762112?ref_src=twsrc%5Etfw">5 de junio de 2019</a></blockquote>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">1. SMART ethics</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Paula Julve Andía (abre en una nueva pestaña)" href="https://twitter.com/PaulaJulve" target="_blank">Paula Julve Andía</a></em> &#8211; HolaLuz</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In the fastest-paced environments, where we&#8217;re asked to deliver features as quickly as we can think of them, it&#8217;s not easy to take a step back, stop for a minute and pause to consider the ethical implications of what we&#8217;re doing.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/smart-ethics</cite></blockquote>



<p>Slides: no disponibles aún</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">2. Orchestrating mobile app releases</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Alejandro Rodríguez Salamanca (abre en una nueva pestaña)" href="https://twitter.com/Alexrs95" target="_blank">Alejandro Rodríguez Salamanca</a></em> &#8211; Shopify</p>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3148-1024x768.jpg" alt="" class="wp-image-1690" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3148-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3148-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3148-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3148-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk, I’ll explain how my team built a continuous integration (CI) system for our mobile apps (Android and iOS), and how we used this infrastructure</p><cite>https://joind.in/event/devops-barcelona-conference-2019/orchestrating-mobile-app-releases</cite></blockquote>



<p><a href="https://engineering.shopify.com/blogs/engineering/unreasonable-effectiveness-test-retries-android-monorepo-case-study">https://engineering.shopify.com/blogs/engineering/unreasonable-effectiveness-test-retries-android-monorepo-case-study</a><br><a href="https://buildkite.com/">https://buildkite.com/</a><br><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://engineering.shopify.com/blogs/engineering/mobile-tophatting-at-shopify-1" target="_blank">https://engineering.shopify.com/blogs/engineering/mobile-tophatting-at-shopify-1</a><br><a href="https://appetize.io/">https://appetize.io/</a><br></p>



<p>Slides: <a href="https://engineering.shopify.com/blogs/engineering/mobile-release-engineering-scale-shipit-mobile">https://engineering.shopify.com/blogs/engineering/mobile-relea&#8230;</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">3. Spartans don&#8217;t like «bad» data</h2>



<p class="has-small-font-size"><em>Paco Orozco</em> &#8211; Adevinta</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3151-1024x768.jpg" alt="" class="wp-image-1691" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3151-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3151-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3151-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3151-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>We’ll be glad to share our journey, including the tech stack we used, options we dismissed, lessons learnt, and some actual findings from the latency-measurement data we are collecting.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/spartans-dont-like-bad-data</cite></blockquote>



<p><a href="https://www.balena.io/what-is-balena">https://www.balena.io/what-is-balena</a><br>Slides: <a rel="noreferrer noopener" aria-label="https://www.slideshare.net/pakus/devopsbarcelona-2019-spartans-dont-like-bad-data (abre en una nueva pestaña)" href="https://www.slideshare.net/pakus/devopsbarcelona-2019-spartans-dont-like-bad-data" target="_blank">https://www.slideshare.net/pakus/devopsbarcelona-2019-spart&#8230;</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">4. Improving your Kubernetes DevOps implementation in complex scenarios</h2>



<p class="has-small-font-size"><em>Juan Luis Buenosvinos</em> &#8211; RedHat</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>We will introduce Ansible as the automation key technology to provide an API for every context of the model and show how we can implement a Kubernetes life-cycle on OpenShift.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/improving-your-kubernetes-devops-implementation-in-complex-scenarios</cite></blockquote>



<p>Slides: no disponibles aún</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">5. Centralized Logging Patterns</h2>



<p class="has-small-font-size"><a rel="noreferrer noopener" aria-label="Philipp Krenn (abre en una nueva pestaña)" href="https://twitter.com/xeraa" target="_blank">Philipp Krenn</a> &#8211; Elastic</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3156-1024x768.jpg" alt="" class="wp-image-1694" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3156-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3156-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3156-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3156-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This talk presents multiple approaches and patterns with their advantages and disadvantages, so you can pick the one that fits your organization best</p><cite>https://joind.in/event/devops-barcelona-conference-2019/centralized-logging-patterns</cite></blockquote>



<p><a href="https://github.com/xeraa/java-logging">https://github.com/xeraa/java-logging</a><br>Slides: <a href="https://conferences.xeraa.net/Lb6ygD" target="_blank" rel="noreferrer noopener" aria-label="https://conferences.xeraa.net/Lb6ygD (abre en una nueva pestaña)">https://conferences.xeraa.net/Lb6ygD</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">6. How fast can you DevOps Financial Services?</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Aubrey Stearn (abre en una nueva pestaña)" href="https://twitter.com/auberryberry" target="_blank">Aubrey Stearn</a></em> &#8211; Nationwide Building Society UK</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>I want to tell you about the awesome innovations Nationwide Building Society UK have made and challenges we have overcome as a financial services institution, applying DevOps the right way, building a cloud platform.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/how-fast-can-you-devops-financial-services</cite></blockquote>



<p>Slides: no disponible aún</p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">7. Resilient service-to-service calls in a post-Hystrix world</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Rareş Muşină (abre en una nueva pestaña)" href="https://twitter.com/MusinaRares" target="_blank">Rareş Muşină</a></em> &#8211; N26</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3158-1024x768.jpg" alt="" class="wp-image-1695" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3158-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3158-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3158-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3158-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>This talk will share the approach we are currently implementing and the tools we analyzed while making the decision.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/resilient-service-to-service-calls-in-a-post-hystrix-world</cite></blockquote>



<p><a href="https://github.com/Netflix/Hystrix">https://github.com/Netflix/Hystrix</a><br><a href="https://github.com/resilience4j/resilience4j">https://github.com/resilience4j/resilience4j</a><br><a href="https://github.com/Netflix/concurrency-limits">https://github.com/Netflix/concurrency-limits</a><br><a href="https://www.envoyproxy.io/">https://www.envoyproxy.io/</a><br></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">8. Stories from the trenches: Migrating our cloud provider</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Eduardo Gulias Davis (abre en una nueva pestaña)" href="https://twitter.com/egulias" target="_blank">Eduardo Gulias Davis</a></em> &#8211; Packlink</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3164-1024x768.jpg" alt="" class="wp-image-1696" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3164-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3164-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3164-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3164-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk I’ll cover a one and a half year journey at Packlink, where we migrated from cloud provider and in the way went from:</p><cite>https://joind.in/event/devops-barcelona-conference-2019/stories-from-the-trenches-migrating-our-cloud-provider</cite></blockquote>



<p><a href="https://traefik.io/">https://traefik.io/</a><br><a href="https://www.terraform.io/">https://www.terraform.io/</a><br><a href="https://www.fluentd.org/">https://www.fluentd.org/</a><br><a href="https://cloud.google.com/customers/packlink/">https://cloud.google.com/customers/packlink/</a><br><a rel="noreferrer noopener" aria-label="https://www.cloudendure.com/ (abre en una nueva pestaña)" href="https://www.cloudendure.com/" target="_blank">https://www.cloudendure.com/</a></p>



<p>Por si te perdiste el día 1 -&gt; <a href="https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/">https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps Barcelona 2019 – Día 1</title>
		<link>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/</link>
					<comments>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Tue, 04 Jun 2019 18:34:15 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[barcelona]]></category>
		<category><![CDATA[devops]]></category>
		<category><![CDATA[meetup]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1607</guid>

					<description><![CDATA[Hoy empieza la devops.barcelona: buenas charlas e interesantes. Os dejo un resumen y los links a las diapositivas. 1. Managing DevOps Teams, staying alive Marc Cluet Marc nos habla sobre sus experiencias sobre la gestión, comunicación y motivación de los equipos técnicos. DevOps and Agile are great at speeding up development and providing quick results, however most organisations struggle to transition and adapt their team and leadership structures, which is<a href="https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[
<p>Hoy empieza la <a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://devops.barcelona" target="_blank">devops.barcelona</a>: buenas charlas e interesantes. Os dejo un resumen y los links a las diapositivas.</p>



<span id="more-1607"></span>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3128-1024x768.jpg" alt="" class="wp-image-1609" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3128-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3128-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3128-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3128-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-gallery columns-2 is-cropped wp-block-gallery-17 is-layout-flex wp-block-gallery-is-layout-flex"><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3132-1024x768.jpg" alt="" data-id="1654" data-link="https://www.dondeguardomisideas.com/?attachment_id=1654" class="wp-image-1654" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3132-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3132-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3132-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3132-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3133-1024x768.jpg" alt="" data-id="1655" data-link="https://www.dondeguardomisideas.com/?attachment_id=1655" class="wp-image-1655" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3133-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3133-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3133-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3133-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3135-1024x768.jpg" alt="" data-id="1656" data-link="https://www.dondeguardomisideas.com/?attachment_id=1656" class="wp-image-1656" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3135-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3135-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3135-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3135-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li><li class="blocks-gallery-item"><figure><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3142-1024x768.jpg" alt="" data-id="1657" data-link="https://www.dondeguardomisideas.com/?attachment_id=1657" class="wp-image-1657" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3142-1024x768.jpg 1024w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3142-300x225.jpg 300w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3142-768x576.jpg 768w, https://www.dondeguardomisideas.com/wp-content/uploads/2019/06/IMG_3142-200x150.jpg 200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure></li></ul>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading"><strong>1. Managing DevOps Teams, staying alive</strong></h2>



<p class="has-text-color has-small-font-size has-very-dark-gray-color"><em><a href="https://twitter.com/lynxman" target="_blank" rel="noreferrer noopener" aria-label="Marc Cluet (abre en una nueva pestaña)">Marc Cluet</a></em></p>



<p>Marc nos habla sobre sus experiencias sobre la gestión, comunicación y motivación de los equipos técnicos.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>DevOps and Agile are great at speeding up development and providing quick results, however most organisations struggle to transition and adapt their team and leadership structures, which is made of FAIL.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/managing-devops-teams-staying-alive</cite></blockquote>



<p>Slides: <a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://www.slideshare.net/lynxmanuk/managing-devops-teams-staying-alive" target="_blank">https://www.slideshare.net/lynxmanuk/managing-devo&#8230;</a><br><a href="https://devroot.org/">https://devroot.org</a><br><a href="https://web.devopstopologies.com/">https://web.devopstopologies.com</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading"><strong>2. Continuous Performance Testing: Jmeter and Taurus</strong></h2>



<p class="has-text-color has-small-font-size has-very-dark-gray-color"><em><a href="https://twitter.com/MrsDaehin" target="_blank" rel="noreferrer noopener" aria-label="Almudena Vivanco (abre en una nueva pestaña)">Almudena Vivanco</a></em></p>



<p>Almudena nos ha hecho un «demo time» divertido. Ha explicado como integrar Jmeter y <a rel="noreferrer noopener" aria-label="Taurus (abre en una nueva pestaña)" href="http://gettaurus.org/" target="_blank">Taurus</a> para poder comprobar la performance de nuestro site.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk i will explain how to integrate a Jmeter in your continuous integration system.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/continuous-performance-testing-jmeter-and-taurus</cite></blockquote>



<p>Slides: <a href="https://docs.google.com/presentation/d/1bHib6eOezEHeppekd9ZBXvEIlEUGNCRXd46oWkDz-9w/edit#slide=id.p" target="_blank" rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)">https://docs.google.com/presentation/d/1bHib6eOezEHe&#8230;</a><br><a rel="noreferrer noopener" aria-label=" http://gettaurus.org (abre en una nueva pestaña)" href="http://gettaurus.org/" target="_blank"> http://gettaurus.org</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading"><strong>3. From on-premises monolith to cloud microservices using a stateless API Gateway and horror stories</strong></h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Albert Lombarte (abre en una nueva pestaña)" href="https://twitter.com/ALombarte" target="_blank">Albert Lombarte</a></em> &#8211; Krakend</p>



<p>Ventajas de usar un API Gateway como  <a rel="noreferrer noopener" aria-label="Krakend (abre en una nueva pestaña)" href="https://www.krakend.io/features/" target="_blank">Krakend</a> y sus pasos para integrarlo en nuestro proyecto.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>A stateless API Gateway can help you preserve your existing API contract while developers chop the monolith in different microservices, and publish the new specification transparently.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/from-on-premises-monolith-to-cloud-microservices-using-a-stateless-api-gateway-and-horror-stories</cite></blockquote>



<p>Slides:  no disponibles aún<br><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://www.krakend.io/features/" target="_blank">https://www.krakend.io/features</a><br><a href="https://zipkin.apache.org/">https://zipkin.apache.org</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">4. Productionizing ML</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Carlos Villavieja (abre en una nueva pestaña)" href="https://twitter.com/VillaviejaC" target="_blank">Carlos Villavieja</a>, <a href="https://twitter.com/salim" target="_blank" rel="noreferrer noopener" aria-label="Salim Virji (abre en una nueva pestaña)">Salim Virji</a></em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Machine-learning systems have become increasingly prevalent in commodity software systems. They are used through cloud-based APIs or embedded through software libraries</p><cite>https://joind.in/event/devops-barcelona-conference-2019/productionizing-ml</cite></blockquote>



<p>Slides: <a rel="noreferrer noopener" aria-label="https://drive.google.com/file/d/1w3jbawD815teqvgTAPJacXbfqgkQhnf3/view (abre en una nueva pestaña)" href="https://drive.google.com/file/d/1w3jbawD815teqvgTAPJacXbfqgkQhnf3/view" target="_blank">https://drive.google.com/file/d/1w3jbawD815teqvgTAPJacXb&#8230;</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">5. Next generation network operation through automation: CI/CD with Ansible</h2>



<p class="has-small-font-size"><em>Beatriz Martínez Santos, Ignacio Verona Ríos</em> &#8211; RedHat</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Gone are the days of hand-typing commands into network devices one by one: the same benefits of Ansible seen on compute nodes can now be extended to the network nodes.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/next-generation-network-operation-through-automation-cicd-with-ansible</cite></blockquote>



<p>Slides: no disponibles aún<br><a rel="noreferrer noopener" aria-label="https://www.ansible.com/ (abre en una nueva pestaña)" href="https://www.ansible.com/" target="_blank">https://www.ansible.com</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">6. Apache Kafka: advice from the trenches or how to successfully fail!</h2>



<p class="has-small-font-size"><em><a href="https://twitter.com/purbon" target="_blank" rel="noreferrer noopener" aria-label="Pere Urbon-Bayes (abre en una nueva pestaña)">Pere Urbon-Bayes</a></em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Operating a complex distributed system such as Apache Kafka could be a lot of work, so many moving parts need to be understood when something wrong happens.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/apache-kafka-advice-from-the-trenches-or-how-to-successfully-fail</cite></blockquote>



<p>Slides: <a rel="noreferrer noopener" aria-label="https://speakerdeck.com/purbon/apache-kafka-advice-from-the-trenches-or-how-to-successfully-fail (abre en una nueva pestaña)" href="https://speakerdeck.com/purbon/apache-kafka-advice-from-the-trenches-or-how-to-successfully-fail" target="_blank">https://speakerdeck.com/purbon/apache-kafka-advice&#8230;</a><br><a href="https://kafka.apache.org/">https://kafka.apache.org</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">7. Kubernetes is not a deployment tool: it&#8217;s a platform</h2>



<p class="has-small-font-size"><em><a rel="noreferrer noopener" aria-label="Jose Armesto (abre en una nueva pestaña)" href="https://twitter.com/fiunchinho" target="_blank">Jose Armesto</a></em> &#8211; CloudBees</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk we are going to explain how Kubernetes works internally, showing what Kubernetes controllers are and how they work.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/kubernetes-is-not-a-deployment-tool-its-a-platform</cite></blockquote>



<p>Slides: <a rel="noreferrer noopener" aria-label="https://docs.google.com/presentation/d/1tNY01aNj9pFtLgEzp1giA_Dcq0tQCljVsmBl34Swj28/edit?usp=sharing (abre en una nueva pestaña)" href="https://docs.google.com/presentation/d/1tNY01aNj9pFtLgEzp1giA_Dcq0tQCljVsmBl34Swj28/edit?usp=sharing" target="_blank">https://docs.google.com/presentation/d/1tNY01aNj9p&#8230;</a><br><a href="https://kubernetes.io/">https://kubernetes.io</a><br><a href="https://istio.io/docs/setup/kubernetes/">https://istio.io/docs/setup/kubernetes</a></p>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer hide-xs"></div>



<h2 class="wp-block-heading">8. Self-Service Toolchain through versioned Infrastructure as Code</h2>



<p class="has-small-font-size"><em>Carlos Muñoz Robles</em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>In this talk, we show the audience how we combined our experience as an enterprise SaaS provider with our experience as an OpenShift IaaS provider, to create an easy to use, easy to update and easy to rollback `Infrastructure as Code` Toolchain/Monitoring solution.</p><cite>https://joind.in/event/devops-barcelona-conference-2019/self-service-toolchain-through-versioned-infrastructure-as-code</cite></blockquote>



<p>Slides: no disponibles aún<br><a rel="noreferrer noopener" aria-label=" (abre en una nueva pestaña)" href="https://www.checkmarx.com/" target="_blank"> https://www.checkmarx.com</a><br><a href="https://istio.io/">https://istio.io</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/devops-barcelona-2019-dia-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Solucionado: Wifi lento en ubuntu 16.04</title>
		<link>https://www.dondeguardomisideas.com/2019/problema-con-wifi-lento-en-ubuntu-16-04/</link>
					<comments>https://www.dondeguardomisideas.com/2019/problema-con-wifi-lento-en-ubuntu-16-04/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sun, 17 Feb 2019 20:53:10 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[slow]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1572</guid>

					<description><![CDATA[Hace poco compré una tarjeta wifi Asus PCE-AC51 y no me iba bien en Ubuntu 16.04. Se desconectaba de vez en cuando o me daba velocidades de conexión ridículas 3mb/s o menos (de los 100mb/s que tengo en casa). Buscando por internet no encontré muchas soluciones y las que encontraba eran de hace muchos años&#8230; por lo que poco podían ayudar ya&#8230; Como el tema apuntaba a drivers, empecé por revisar<a href="https://www.dondeguardomisideas.com/2019/problema-con-wifi-lento-en-ubuntu-16-04/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Hace poco compré una tarjeta wifi Asus PCE-AC51 y no me iba bien en Ubuntu 16.04. Se desconectaba de vez en cuando o me daba velocidades de conexión ridículas 3mb/s o menos (de los 100mb/s que tengo en casa).<span id="more-1572"></span></p>
<p>Buscando por internet no encontré muchas soluciones y las que encontraba eran de hace muchos años&#8230; por lo que poco podían ayudar ya&#8230;</p>
<p>Como el tema apuntaba a drivers, empecé por revisar si estaba cogiendo el driver correcto:</p>
<pre lang="bash">$ lspci -nnk
07:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8812AE 802.11ac PCIe Wireless Network Adapter [10ec:8812] (rev 01)
	Subsystem: ASUSTeK Computer Inc. RTL8812AE 802.11ac PCIe Wireless Network Adapter [1043:86dd]
	Kernel driver in use: rtl8821ae
	Kernel modules: rtl8821ae

</pre>
<p>En principio parecía que cogía el correcto&#8230; así que mi siguiente paso fue revisar que estuviese actualizado&#8230; para mi sorpresa, vi que había un <a href="https://github.com/lwfinger/rtlwifi_new/issues/397" target="_blank" rel="noopener">bug</a> donde se hablaba de este bug y que lo habían corregido en versiones posteriores&#8230; pero en APT ya tenía la última versión&#8230;. así que grabé un par de live USB de ubuntu con diferentes versiones comprobé que en la 18.04 ya habían incorporado esta versión.</p>
<p>Como me negaba a actualizar aún, vi que hay un github con los drivers actualizados y que tu te los puedes compilar&#8230;</p>
<blockquote><p><a href="https://github.com/lwfinger/rtlwifi_new/issues/397" target="_blank" rel="noopener">https://github.com/lwfinger/rtlwifi_new/issues/397</a></p></blockquote>
<p>Después de actualizar el driver ya conseguí que no tuviese caídas de internet y alcanzase la velocidad máxima del ADSL.</p>
<p>Los pasos que seguí fueron:</p>
<ol>
<li>clonar el repositorio<br />
git clone https://github.com/lwfinger/rtlwifi_new.git</li>
<li>Entramos en su directorio<br />
cd rtlwifi_new</li>
<li>Compilamos e instalamos los driver en nuestro linux<br />
make<br />
sudo make install</li>
<li>Eliminamos el driver viejo y lo sustituimos por el nuevo<br />
sudo modprobe -r &lt;&lt;YOUR WIRELESS DRIVER CODE&gt;&gt;<br />
sudo modprobe &lt;&lt;YOUR WIRELESS DRIVER CODE&gt;&gt;<br />
en mi caso:<br />
sudo modprobe -r rtl8821ae<br />
sudo modprobe rtl8821ae</li>
<li>Reiniciamos y listo</li>
</ol>
<p>Espero que os haya servido de ayuda.</p>
<p>NOTA: Probé la misma tarjeta en otro PC con Ubuntu 18.04 e iba bien sin tener que hacer nada&#8230; la otra opción era simplemente actualizar :&#8217;)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2019/problema-con-wifi-lento-en-ubuntu-16-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ping: The Tragedy of Craftsmanship</title>
		<link>https://www.dondeguardomisideas.com/2018/ping-the-tragedy-of-craftsmanship/</link>
					<comments>https://www.dondeguardomisideas.com/2018/ping-the-tragedy-of-craftsmanship/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sun, 09 Sep 2018 14:58:51 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[clean code]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1557</guid>

					<description><![CDATA[by Robert C. Martin (Uncle Bob) Leer noticia completa]]></description>
										<content:encoded><![CDATA[<p>by Robert C. Martin (Uncle Bob)</p>
<p style="text-align: right;"><a href="http://blog.cleancoder.com/uncle-bob/2018/08/28/CraftsmanshipMovement.html" target="_blank" rel="noopener">Leer noticia completa</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/ping-the-tragedy-of-craftsmanship/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Detectar intrusiones en el servidor con Tripwire</title>
		<link>https://www.dondeguardomisideas.com/2018/detectar-intrusiones-en-el-servidor-con-tripwire/</link>
					<comments>https://www.dondeguardomisideas.com/2018/detectar-intrusiones-en-el-servidor-con-tripwire/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Thu, 09 Aug 2018 08:00:37 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[HIDS]]></category>
		<category><![CDATA[intrusion]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tripwire]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1538</guid>

					<description><![CDATA[Tripwire es un popular monitor de archivos enfocado en la detección de intrusos. El software es capaz de monitorizar múltiples archivos y directorios para detectar intrusiones y cambios no autorizados en ellos. Instalación Lo primero que haremos será instalar el software sudo apt-get update sudo apt-get install tripwire Después de instalar, nos irá haciendo varias preguntas, debemos responder con: «internet site» «yes» «yes» &#8230;.. Y por último las claves para<a href="https://www.dondeguardomisideas.com/2018/detectar-intrusiones-en-el-servidor-con-tripwire/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Tripwire es un popular monitor de archivos enfocado en la detección de intrusos. El software es capaz de monitorizar múltiples archivos y directorios para detectar intrusiones y cambios no autorizados en ellos.<span id="more-1538"></span></p>
<h2>Instalación</h2>
<p>Lo primero que haremos será instalar el software</p>
<p><code>sudo apt-get update<br />
sudo apt-get install tripwire</code></p>
<p>Después de instalar, nos irá haciendo varias preguntas, debemos responder con:</p>
<ul>
<li>«internet site»</li>
<li>«yes»</li>
<li>«yes»</li>
<li>&#8230;..</li>
</ul>
<p>Y por último las claves para proteger las configuraciones:</p>
<ul>
<li><strong>site key</strong>: Esta clave es usada para proteger los archivos de configuración. No perdáis esta clave o la modifiquéis porque si no no podréis volver a actualizar la configuración o los perfiles. Esta clave puede ser usada en múltiples servidores.</li>
<li><strong>local key</strong>: Esta clave es usada solo en 1 servidor y es sirve para ejecutar los escaneos (para no poder usar el software sin autorización de otros usuarios).</li>
</ul>
<p>Para iniciar la base de datos ejecutamos</p>
<p><code>sudo tripwire --init</code></p>
<p>Para realizar un escaneo:</p>
<p><code>sudo sh -c 'tripwire --check | grep Filename &gt; test_results'<br />
o podemos añadirlo a crontab con:<br />
@weekly /usr/sbin/tripwire --check | mail nuestro@correo.com -s "TripWire log status"</code></p>
<p>Con esto podremos ver cada vez que se ejecute un informe de los archivos que han cambiado</p>
<h2>Cambiar los arhivos a monitorizar</h2>
<p>Como las configuraciones se guardan encriptadas para poder cambiarlas antes hay que exportarlas a texto plano. Para ello ejecutamos:</p>
<p><code>sudo sh -c 'twadmin --print-polfile &gt; /etc/tripwire/twpol.txt'</code></p>
<p>Esto genera el archivo «/etc/tripwire/twpol.txt» que podemos modificar. Una vez con los cambios nuevos lo guardamos con:</p>
<p><code>sudo twadmin -m P /etc/tripwire/twpol.txt<br />
o<br />
tripwire --update-policy twpol.txt</code></p>
<p>Aquí nos pedirán las 2 contraseñas con las que registramos el servidor.</p>
<p>Si por algún motivo nos aparece este error:</p>
<p><code>### Warning: Policy Update Changed Object.<br />
### An object has been changed since the database was last updated.</code></p>
<p>Lo podemos solucionar con el flag «secure-mode»:</p>
<p><code>tripwire -m p --secure-mode low /etc/tripwire/policy.txt</code></p>
<p>&nbsp;</p>
<p>Espero que os sirva!</p>
<p>pd. Con la ayuda de <a href="https://www.digitalocean.com/community/tutorials/how-to-use-tripwire-to-detect-server-intrusions-on-an-ubuntu-vps" target="_blank" rel="noopener">DigitalOcean</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/detectar-intrusiones-en-el-servidor-con-tripwire/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ping: Applet para monitoreo de redes en Ubuntu y derivados</title>
		<link>https://www.dondeguardomisideas.com/2018/ping-applet-para-monitoreo-de-redes-en-ubuntu-y-derivados/</link>
					<comments>https://www.dondeguardomisideas.com/2018/ping-applet-para-monitoreo-de-redes-en-ubuntu-y-derivados/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Mon, 06 Aug 2018 08:54:44 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[ping]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1535</guid>

					<description><![CDATA[Es un applet desarrollado en Python, que nos permite la supervisión de diversas Network, para ello la herramienta se encarga de realizar pings constantemente a los servidores que le indiquemos. Leer noticia completa]]></description>
										<content:encoded><![CDATA[<p>Es un <strong>applet</strong> desarrollado en <strong>Python</strong>, que nos permite la <strong>supervisión de diversas Network</strong>, para ello la herramienta se encarga de realizar pings constantemente a los servidores que le indiquemos.</p>
<p style="text-align: right;"><a href="http://salseeg.github.io/ping-indicator/" target="_blank" rel="noopener">Leer noticia completa</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/ping-applet-para-monitoreo-de-redes-en-ubuntu-y-derivados/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ping: Zenmap la interfaz grafica de Nmap que te permite scanear los puertos</title>
		<link>https://www.dondeguardomisideas.com/2018/ping-zenmap-la-interfaz-grafica-de-nmap-que-te-permite-scanear-los-puertos/</link>
					<comments>https://www.dondeguardomisideas.com/2018/ping-zenmap-la-interfaz-grafica-de-nmap-que-te-permite-scanear-los-puertos/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Thu, 02 Aug 2018 08:38:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[remote port]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1532</guid>

					<description><![CDATA[Zenmap es la interfaz gráfica oficial de Nmap, con la cual podremos realizar los diferentes tipos de análisis que se nos permite poder hacer con Nmap. Leer noticia completa]]></description>
										<content:encoded><![CDATA[<p><strong>Zenmap es la interfaz gráfica oficial de Nmap,</strong> con la cual podremos realizar los diferentes tipos de análisis que se nos permite poder hacer con Nmap.</p>
<p style="text-align: right;"><a href="https://blog.desdelinux.net/zenmap-la-interfaz-grafica-de-nmap-que-te-permite-scanear-los-puertos/" target="_blank" rel="noopener">Leer noticia completa</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/ping-zenmap-la-interfaz-grafica-de-nmap-que-te-permite-scanear-los-puertos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tunel Mysql a través de VPN/SSH y exponer un puerto remoto en local</title>
		<link>https://www.dondeguardomisideas.com/2018/tunel-mysql-a-traves-de-una-vpn-ssh-y-exponer-un-puerto-remoto-en-local/</link>
					<comments>https://www.dondeguardomisideas.com/2018/tunel-mysql-a-traves-de-una-vpn-ssh-y-exponer-un-puerto-remoto-en-local/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Mon, 30 Jul 2018 08:01:13 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[remote port]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tunel]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1521</guid>

					<description><![CDATA[En mi caso, la Base de Datos está en un hosting privado desde el cual solo es accesible a través de una IP fija: el servidor de producción. Como el router de mi casa va cambiando periodicamente la IP, cada cierto tiempo voy perdiendo la conexión con la Base de Datos&#8230; y sería un fallo de seguridad abrir todo el rango de IPs para que, aunque mi IP cambie, no pierda la<a href="https://www.dondeguardomisideas.com/2018/tunel-mysql-a-traves-de-una-vpn-ssh-y-exponer-un-puerto-remoto-en-local/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>En mi caso, la <strong>Base de Datos</strong> está en un hosting privado desde el cual solo es accesible a través de una IP fija: el <strong>servidor de producción</strong>.</p>
<p>Como el router de mi casa va cambiando <strong>periodicamente </strong>la IP, cada cierto tiempo voy perdiendo la conexión con la Base de Datos&#8230; y sería un <strong>fallo de seguridad</strong> abrir todo el rango de IPs para que, aunque mi IP cambie, no pierda la conexión&#8230;<span id="more-1521"></span></p>
<p>La configuración que está en el servidor de producción es:</p>
<p><code>mysql -h dirección.basededatos.com:35333 -u admin</code></p>
<p>Pero desde mi ordenador de casa <strong>no puedo usar esta configuración</strong> porque, como he dicho antes, <em>dirección.basededatos.com</em> solo admite conexiones desde <strong>1 sola IP</strong>, que es el servidor de producción.</p>
<p>Para arreglar esto podemos <strong>exponer un puerto remoto</strong> desde el servidor hacia mi ordenador de casa (haciendo forward), lo que vendría a ser:</p>
<p style="padding-left: 30px;">Local (3306) &#8212;&gt; VPN/SSH &#8212;&gt; Servidor de producción &#8212;&gt; Internet (35333) -&gt; Base de datos</p>
<p>o <strong>traducido</strong> a shell:</p>
<p><code>ssh -L localhost:3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com<br />
-L  para definir las opciones de enrutamiento: puerto_local:dirección_remota:puerto_remoto<br />
-N  para que no ejecute el comando y cierre el terminal, sino que deje abierta la conexión.</code></p>
<p>Con esto ya podemos conectarnos <strong>desde nuestro ordenador</strong> de casa:</p>
<p><code>mysql -h localhost:3306 -u admin</code></p>
<p>&nbsp;</p>
<p><strong>Mejora</strong>: Si esto lo necesitamos para conectanos desde dentro de un <strong>contanier docker</strong>, abrimos el tunel con:</p>
<p><code>ssh -L ip-del-docker-anfitrion:3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com</code></p>
<p>y después para conectarnos:</p>
<p><code>mysql -h ip-del-docker-anfitrion:3306 -u admin</code></p>
<p>Para sacar la IP del anfitrion, ejecutamos en nuestro pc:</p>
<p><code>ip addr show docker0</code></p>
<p>&nbsp;</p>
<h4>Docker for mac</h4>
<p>Para los que usan macOS el comando cambia un poco porque <a href="https://docs.docker.com/docker-for-mac/networking/#i-cannot-ping-my-containers" target="_blank" rel="noopener">no existe la interfaz docker0</a>:</p>
<p><code>ssh -L 3306:dirección.basededatos.com:35333 -N usuario@nuestro-servidor.com</code></p>
<p>y como host de BD de nuestro proyecto poner: <strong>host.docker.interna<br />
</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/tunel-mysql-a-traves-de-una-vpn-ssh-y-exponer-un-puerto-remoto-en-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Solucionar error en samba (cifs) en Ubuntu +16.04</title>
		<link>https://www.dondeguardomisideas.com/2018/solucionar-error-en-samba-cifs-en-ubuntu-16-04/</link>
					<comments>https://www.dondeguardomisideas.com/2018/solucionar-error-en-samba-cifs-en-ubuntu-16-04/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sun, 22 Jul 2018 18:42:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cifs]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1465</guid>

					<description><![CDATA[Después de algunas actualizaciones de Ubuntu no he podido montar una NAS que tengo en casa, me ha costado encontrar el motivo pero al final lo he podido arreglar. Cada vez que intentaba montar la carpeta desde el explorador de archivos me daba el error: error: mount error(112): Host is down La solución era muy fácil, bastaba añadir a la configuración de /etc/fstab la opción «vers=1.0«, quedando: #file /etc/fstab //192.168.10.200/NAS<a href="https://www.dondeguardomisideas.com/2018/solucionar-error-en-samba-cifs-en-ubuntu-16-04/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Después de algunas actualizaciones de Ubuntu no he podido montar una NAS que tengo en casa, me ha costado encontrar el motivo pero al final lo he podido arreglar.<span id="more-1465"></span></p>
<p>Cada vez que intentaba montar la carpeta desde el explorador de archivos me daba el error:</p>
<p style="padding-left: 30px;"><em>error: mount error(112): Host is down</em></p>
<p>La solución era muy fácil, bastaba añadir a la configuración de /etc/fstab la opción «<strong>vers=1.0</strong>«, quedando:</p>
<pre lang="Bash">#file /etc/fstab
//192.168.10.200/NAS /media/NAS cifs user,rw,noauto,file_mode=0777,dir_mode=0777,username=xxx,password=xxx,vers=1.0 0 0
</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/solucionar-error-en-samba-cifs-en-ubuntu-16-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arreglar problemas en Ubuntu 17.10 con desactivar el touchpad</title>
		<link>https://www.dondeguardomisideas.com/2018/arreglar-problemas-en-ubuntu-17-10-al-desactivar-el-touchpad/</link>
					<comments>https://www.dondeguardomisideas.com/2018/arreglar-problemas-en-ubuntu-17-10-al-desactivar-el-touchpad/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sat, 21 Jul 2018 11:37:54 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[17.10]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[touchpad]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1485</guid>

					<description><![CDATA[En mi portátil, mientras escribía, el touchpad me jugaba malas pasadas haciendo que cuando lo rozaba con la palma de la mano provocaba un «click» y así era muy difícil escribir&#8230; Según la configuración parecía estar todo bien, pero así conseguí solucionarlo Primero verificamos que Ubuntu detecta correctamente el Touchpad y está debidamente configurado: xinput list gsettings list-recursively org.gnome.desktop.peripherals.touchpad Hasta aquí todo correcto, entonces no entendía por qué se comportaba<a href="https://www.dondeguardomisideas.com/2018/arreglar-problemas-en-ubuntu-17-10-al-desactivar-el-touchpad/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>En mi portátil, mientras escribía, el <strong>touchpad</strong> me jugaba malas pasadas haciendo que cuando lo rozaba con la palma de la mano provocaba un «click» y así era muy difícil escribir&#8230;</p>
<p>Según la configuración parecía estar todo bien, pero así conseguí solucionarlo</p>
<p><span id="more-1485"></span>Primero verificamos que Ubuntu detecta correctamente el Touchpad y está debidamente configurado:</p>
<pre lang="Bash">xinput list</pre>
<p><img loading="lazy" decoding="async" class="w100 hauto alignnone wp-image-1489 size-full" src="https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/xinput.png" alt="" width="706" height="262" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/xinput.png 706w, https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/xinput-300x111.png 300w" sizes="auto, (max-width: 706px) 100vw, 706px" /></p>
<pre lang="Bash">gsettings list-recursively org.gnome.desktop.peripherals.touchpad</pre>
<p><img loading="lazy" decoding="async" class="w100 hauto alignnone wp-image-1490 size-full" src="https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/gsettings.png" alt="" width="685" height="201" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/gsettings.png 685w, https://www.dondeguardomisideas.com/wp-content/uploads/2018/07/gsettings-300x88.png 300w" sizes="auto, (max-width: 685px) 100vw, 685px" /></p>
<p>Hasta aquí todo correcto, entonces no entendía por qué se comportaba así&#8230;</p>
<p>Buscando en internet descubrí que es un <strong>bug de Xorg</strong> y aún no está resulto U_U<br />
Aquí podéis seguir su estado: <a href="https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1686081" target="_blank" rel="noopener">https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1686081</a></p>
<p>La <strong>solución que proponen</strong> (y si no tienes pantalla táctil) es que<strong> elimine el paquete de Synaptics</strong></p>
<pre lang="Bash">sudo apt-get remove xserver-xorg-input-synaptics
</pre>
<p>Reinicia el portátil y <strong>solucionado</strong></p>
<p><strong>Mejora:</strong> podéis instalar la extensión de Ubuntu <a href="https://extensions.gnome.org/extension/131/touchpad-indicator/" target="_blank" rel="noopener">Touchpad Indicator</a> para tener más control sobre el.<br />
Esta extensión permite <strong>deshabilitar completamente el Touchpad</strong> cuando hay un ratón externo conectado.<br />
En mi caso, muy útil.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2018/arreglar-problemas-en-ubuntu-17-10-al-desactivar-el-touchpad/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Actualizar el kernel de linux manualmente</title>
		<link>https://www.dondeguardomisideas.com/2017/actualizar-el-kernel-de-linux-manualmente/</link>
					<comments>https://www.dondeguardomisideas.com/2017/actualizar-el-kernel-de-linux-manualmente/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Thu, 19 Oct 2017 19:16:51 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1407</guid>

					<description><![CDATA[Normalente las versiones de Debian y derivados quedan ancladas a las versiones del kernel de linux que estaban estables en el momento en que lanzaron la versión final. Con estos sencillos pasos podemos instalar las últimas versiones del kernel para poder beneficiarnos de las últimas correcciones y mejoras de rendimiento. Mientras escribo este artículo la última versión estable es: 4.13.8. Para descargar la última versión accedemos al listado completo de versiones<a href="https://www.dondeguardomisideas.com/2017/actualizar-el-kernel-de-linux-manualmente/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Normalente las versiones de Debian y derivados quedan ancladas a las versiones del <strong>kernel de linux</strong> que estaban estables en el momento en que lanzaron la versión final. Con estos sencillos pasos podemos instalar las últimas versiones del <strong>kernel</strong> para poder beneficiarnos de las últimas <strong>correcciones y mejoras de rendimiento</strong>.<span id="more-1407"></span></p>
<p>Mientras escribo este artículo la última versión estable es: <strong>4.13.8</strong>.</p>
<p>Para descargar la última versión accedemos al listado completo de versiones desde este enlace: <a href="http://kernel.ubuntu.com/~kernel-ppa/mainline/" target="_blank" rel="noopener">http://kernel.ubuntu.com/~kernel-ppa/mainline/</a>, en un terminal ejecutamos:</p>
<pre lang="bash">mkdir ~/linux-kernel
cd ~/linux-kernel
rm *.deb</pre>
<p>Una vez seleccionada la versión que queremos instalar descargamos los archivos <strong>.deb</strong> necesarios en la carpeta que hemos creado, los archivos que tenemos que descargar tienen el nombre:</p>
<ul>
<li><strong>linux-headers-4.13.8- &#8230;&#8230;.  _all.deb</strong></li>
<li><strong>linux-headers-4.13.8- &#8230;.. generic &#8230;.. _amd64.deb</strong></li>
<li><strong>linux-image-4.13.8- &#8230;&#8230;. generic_ &#8230;._amd64.deb</strong></li>
</ul>
<p><strong>Hay que excluir</strong> los que tienen el nombre «lowlatency»</p>
<p>Para instalarlos <strong>ejecutamos en un terminal</strong></p>
<pre lang="bash">cd ~/linux-kernel 
sudo dpkg -i *.deb</pre>
<p>Cuando termine <strong>reiniciamos</strong>. Arrancará automáticamente nuestro sistema con el <strong>nuevo kernel</strong>.</p>
<p><strong>Nota</strong>: Como el kernel que vamos a instalar estará muy por delante de los que provee nuestra distribución, tendremos que instalar las <strong>actualizaciones de kernel manualmente</strong> (reptitiendo este mismo proceso periódicamente), porque los que vendrán con nuestra distribución se seguirán actualizando pero muy por detrás de las últimas versiones que hay publicadas (las que nosotros instalaremos manualmente). Y como las instalaciones manuales son más actuales serán <strong>siempre</strong> la opción por defecto en el Grub.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2017/actualizar-el-kernel-de-linux-manualmente/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Haguichi: una interfaz gráfica para Hamachi en Linux</title>
		<link>https://www.dondeguardomisideas.com/2017/haguichi-una-interfaz-grafica-para-hamachi-en-linux/</link>
					<comments>https://www.dondeguardomisideas.com/2017/haguichi-una-interfaz-grafica-para-hamachi-en-linux/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sat, 02 Sep 2017 16:02:53 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[vpn]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1378</guid>

					<description><![CDATA[Para los que usamos linux y hamachi para crear redes VPN esta interzar gráfica nos viene muy bien. Tiene una interfaz limpia y de un vistazo tienes acceso a toda la info. Antes de nada, hay que tener instalado Hamachi en el equipo. Podéis descargarlo desde su página web vpn.net Desués, podéis instalar Haguichi así: sudo add-apt-repository -y ppa:webupd8team/haguichi sudo apt update sudo apt install -y haguichi O si preferís usar<a href="https://www.dondeguardomisideas.com/2017/haguichi-una-interfaz-grafica-para-hamachi-en-linux/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Para los que usamos linux y hamachi para crear redes VPN esta interzar gráfica nos viene muy bien.<span id="more-1378"></span></p>
<p><img decoding="async" class="w100" src="https://c1.staticflickr.com/5/4354/36378305050_6cae026f4e_o.jpg" /></p>
<p>Tiene una interfaz limpia y de un vistazo tienes acceso a toda la info.</p>
<p>Antes de nada, hay que tener instalado Hamachi en el equipo. Podéis descargarlo desde su página web <a href="http://vpn.net/" target="_blank" rel="noopener">vpn.net</a></p>
<p>Desués, podéis instalar Haguichi así:</p>
<pre>sudo add-apt-repository -y ppa:webupd8team/haguichi
sudo apt update 
sudo apt install -y haguichi</pre>
<p>O si preferís usar un instalador, podéis descargarlo directamente desde su repositorio: <a href="https://launchpad.net/~webupd8team/+archive/ubuntu/haguichi" target="_blank" rel="noopener">https://launchpad.net/~webupd8team/+archive/ubuntu/haguichi</a></p>
<p>Web: <a href="https://www.haguichi.net" target="_blank" rel="noopener">www.haguichi.net</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2017/haguichi-una-interfaz-grafica-para-hamachi-en-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Actualizar y compilar PHP desde los fuentes</title>
		<link>https://www.dondeguardomisideas.com/2017/actualizar-y-compilar-php-desde-los-fuentes/</link>
					<comments>https://www.dondeguardomisideas.com/2017/actualizar-y-compilar-php-desde-los-fuentes/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sat, 05 Aug 2017 23:09:49 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sin categoría]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[compilar]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1356</guid>

					<description><![CDATA[En este ejemplo explicaré como actualizar PHP 7.0 a 7.1 (también sirve para PHP 5.6). Para ello primero necesitaremos satisfacer las dependencias. NOTA: Yo lo explicaré para instalarlo todo dentro de /opt, así podremos probar nuestro proyecto con la nueva versión de PHP sin tener que modificar la configuración real del equipo. Y si todo va bien, veremos de dejarlo permanente. &#160; 1. Preparación y dependencias Creamos una carpeta donde estarán<a href="https://www.dondeguardomisideas.com/2017/actualizar-y-compilar-php-desde-los-fuentes/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>En este ejemplo explicaré como actualizar PHP 7.0 a 7.1 (también sirve para PHP 5.6).<span id="more-1356"></span></p>
<p>Para ello primero necesitaremos satisfacer las dependencias.</p>
<p>NOTA: Yo lo explicaré para instalarlo todo dentro de /opt, así podremos probar nuestro proyecto con la nueva versión de PHP sin tener que modificar la configuración real del equipo. Y si todo va bien, veremos de dejarlo permanente.</p>
<p>&nbsp;</p>
<h3>1. Preparación y dependencias</h3>
<p>Creamos una carpeta donde estarán todos los programas necesarios e instalamos en el equipo lo necesario para poder compilar.</p>
<pre lang="Bash" line="1">mkdir /opt/php
apt-get install build-essentials</pre>
<p>El orden de las dependencias son:</p>
<ul>
<li><strong>PHP</strong> depende de <strong>Apache</strong> para generar el archivo <strong>php_module</strong></li>
<li>Apache depende de <strong>APR</strong> y <strong>APR-Util</strong> (la primera se descarga y se extráe y la segunda hay que compilarla).</li>
</ul>
<p>Podemos descargarlas todas desde:</p>
<p>PHP: http://php.net/downloads.php<br />
Apache: http://httpd.apache.org/docs/2.4/install.html#download<br />
APR: http://apr.apache.org/<br />
APR-UTILS: https://apr.apache.org/download.cgi</p>
<p>Una vez descargadas y extraídas en sus carpetas, movemos los paquetes <strong>APR</strong> y <strong>APR-Util</strong> a: /opt/php/httpd-2.4.27/srclib/</p>
<p>A continuación compilamos el programa <strong>APR-Util</strong></p>
<pre lang="Bash" line="1">cd /opt/php/httpd-2.4.27/srclib/apr-util-xxxx
./configure --prefix=/opt/php/httpd-2.4.27/srclib/apr-util
make &amp;&amp; make install</pre>
<p>Con esto ya tenemos las dependencias de Apache satisfechas. Vamos a compilarlo.</p>
<pre lang="Bash" line="1">cd/opt/php/httpd-2.4.27
./configure --prefix=/opt/php/apache --enable-so --with-pcre=/opt/php/httpd-2.4.27/srclib/apr-util/build/bin/pcre-config
make &amp;&amp; make install</pre>
<p>Esto compila e instala esta versión de Apache en /opt/php/apache (no usaremos este apache, solo lo necesitamos para generar la extensión de PHP).</p>
<p>&nbsp;</p>
<h3>2. Compilar PHP</h3>
<p>Para compilar PHP seguiremos pasos parecidos a los casos anteriores:</p>
<pre lang="Bash" line="1">cd /opt/php/php-7.1.8
./configure --prefix=/opt/php/current --with-apxs2=/opt/php/apache/bin/apxs
make &amp;&amp; make install</pre>
<p>Para probar que funciona podéis lanzar:</p>
<pre lang="Bash" line="1">opt/php/current/bin/php -v</pre>
<p><img loading="lazy" decoding="async" class="w100 hauto aligncenter wp-image-1359 size-full" src="https://www.dondeguardomisideas.com/wp-content/uploads/2017/08/Screenshot_20170805_200023.png" alt="" width="601" height="65" srcset="https://www.dondeguardomisideas.com/wp-content/uploads/2017/08/Screenshot_20170805_200023.png 601w, https://www.dondeguardomisideas.com/wp-content/uploads/2017/08/Screenshot_20170805_200023-300x32.png 300w" sizes="auto, (max-width: 601px) 100vw, 601px" /></p>
<p>&nbsp;</p>
<h3>3. Configurar Apache</h3>
<p>Ahora que tenemos PHP compilado y funcionando vamos a usarlo en nuestro Apache actual que ya teníamos funcionando con la versión anterior de PHP.</p>
<p>Para ello creamos los archivos (los podemos duplicar de la configuración PHP anterior):</p>
<ul>
<li>/etc/apache2/mods-available/php7.1.conf</li>
<li>/etc/apache2/mods-available/php7.1.load</li>
</ul>
<p>En esté último archivo hay que cambiar la ruta de PHP a esta:</p>
<p><strong>LoadModule php7_module /opt/php/apache/modules/libphp7.so</strong></p>
<p>Activamos el módulo y reiniciamos el servidor de apache:</p>
<pre lang="Bash" line="1">a2dismod php7.0
a2enmod php7.1
service apache2 restart</pre>
<p>LISTO!!</p>
<p>Ya tenemos la nueva versión de PHP funcionando en nuestro servidor.</p>
<p>&nbsp;</p>
<h3>4. Instalar extensiones de PHP</h3>
<p>Esta instalación de PHP viene con lo básico. Para añadir nuevas extensiones tendremos que repetir el paso 2 con más opciones.</p>
<p><strong>MCript</strong> -&gt; https://sourceforge.net/projects/mcrypt/files/Libmcrypt/<br />
y sus dos dependencias: $ apt-get install libmcrypt-dev libmhash-dev</p>
<pre lang="Bash" line="1">cd /opt/php/libmcrypt-xxxxx
./configure --prefix=/opt/php/libmcrypt-2.5.8/dist
make &amp;&amp; make install</pre>
<p><strong>Curl</strong> -&gt; https://curl.haxx.se/download.html</p>
<pre lang="Bash" line="1">cd /opt/php/curl-xxxx
./configure --prefix=/opt/php/curl-xxxxx/dist
make &amp;&amp; make install</pre>
<p><strong>OpenSSL</strong> -&gt; https://github.com/openssl/openssl/tags</p>
<pre lang="Bash" line="1">cd /opt/php/openssl-OpenSSL_xxxxx
./configure --prefix=/opt/php/openssl-OpenSSL_xxxxx
make &amp;&amp; make install</pre>
<p>En este caso re-compilaremos la librería de PHP con las extensiones necesarias para un proyecto con Symfony.</p>
<pre lang="Bash" line="1">cd /opt/php/php-7.1.8
./configure --prefix=/opt/php/current --with-apxs2=/opt/php/apache/bin/apxs --with-mcrypt=/opt/php/li
 bmcrypt-2.5.8/dist  --with-pdo-mysql --with-xmlrpc --enable-mbstring --enable-zip --with-zlib --with-mysqli --with-curl=/opt/php/curl-7.54.1/dist --w
 ith-config-file-scan-dir=/etc/php/7.0/apache2/conf.d --enable-sockets --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-openssl=/opt/php/openssl-OpenSSL_1_0_2k/dist
make &amp;&amp; make install</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2017/actualizar-y-compilar-php-desde-los-fuentes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como crear un archivo SWAP en linux de varios tamaños.</title>
		<link>https://www.dondeguardomisideas.com/2017/como-crear-un-archivo-swap-en-linux-de-varios-tamanos/</link>
					<comments>https://www.dondeguardomisideas.com/2017/como-crear-un-archivo-swap-en-linux-de-varios-tamanos/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sun, 21 May 2017 20:13:11 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[memoria]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[swap]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1329</guid>

					<description><![CDATA[A veces en nuestro PC/Servidor no hay espácio suficiente en el disco duro como para crear un partición exclusiva para el SWAP. En la actualidad aparece un inconveniente: el tamaño «recomendado» siempre es el doble que la RAM y nuestros equipos cada vez tienen más (4, 8, 16GB) por lo que tener una partición de 8-30GB sin utilizar puede consumir gran cantidad de espacio en los discos pequeños, como los SSD. Para<a href="https://www.dondeguardomisideas.com/2017/como-crear-un-archivo-swap-en-linux-de-varios-tamanos/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>A veces en nuestro PC/Servidor no hay espácio suficiente en el disco duro como para crear un partición exclusiva para el SWAP.<span id="more-1329"></span></p>
<p>En la actualidad aparece un inconveniente: el tamaño «recomendado» siempre es el doble que la RAM y nuestros equipos cada vez tienen más (4, 8, 16GB) por lo que tener una partición de 8-30GB sin utilizar puede consumir gran cantidad de espacio en los discos pequeños, como los SSD.</p>
<p>Para ello la forma «fácil» de controlar este espacio es a través de un fichero que podemos hacer aumentar o disminuir según nuestra necesidad.</p>
<p>Para ello comenzamos creando un archivo del tamaño que necesitemos o dispongamos (el fichero ocupará el 100% del espacio que creemos).</p>
<pre>dd if=/dev/zero of=/<kbd>swap_1GB</kbd> bs=1024 count=1048576</pre>
<p>donde:</p>
<ol>
<li><strong><kbd>if=/dev/zero</kbd></strong> : Leé de /dev/zero . Es un fichero especial que genere caractéres a null.</li>
<li><strong><kbd>of=/swap_1GB</kbd></strong> : Nombre del ficher de nuestro SWAP</li>
<li><strong><kbd>bs=1024</kbd></strong> : Lee y escribe en paquetes de  1024 BYTES.</li>
<li><strong><kbd>count=1048576</kbd></strong> : Número de bloques a escribir (1024 x 1024MB)</li>
</ol>
<p>A continuación, añadimos un extra de seguridad al fichero para que nadie pueda leer en él.</p>
<pre lang="bash">chown root:root /swap_1GB
chmod 0600 /swap_1GB</pre>
<p>Y por último le damos el formato correcto:</p>
<pre lang="bash">mkswap /swap_1GB</pre>
<p>Ya tenemos listo nuestro espacio SWAP en un fichero, ya solo nos queda activarlo y añadirlo al fstab para que cada vez que se reinicie el equipo lo carge automáticamente:</p>
<pre lang="bash">swapon /swap_1GB
echo '/swap_1GB none swap sw 0 0' &gt;&gt; /etc/fstab</pre>
<p>Para comprobar que se ha activado correctamente lanzamos el comando <em>fee -m </em>para verificar que ya está en uso.</p>
<p>Podemos crear tantos ficheros SWAP como queramos: <strong><kbd>swap_2GB, <kbd>swap_8GB </kbd></kbd></strong>y activarlos con el comando <em>swapoff</em> y <em>swapon</em> para controlar el uso de la SWAP. Si vemos que el uso normal del equipo necesita de más memoria podemos ir creando de esta forma el espacio que necesitemos sin tener que estar creando o redimensionando las particiones del disco.</p>
<p>Espero que os sirva de ayuda.<br />
Y si alguien conoce algún método mejor me encantaría aprenderlo.</p>
<p>Fuente: <a href="https://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/" target="_blank" rel="noopener noreferrer">www.cyberciti.biz</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2017/como-crear-un-archivo-swap-en-linux-de-varios-tamanos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enviarte un zip desde un servidor por consola</title>
		<link>https://www.dondeguardomisideas.com/2016/enviarte-un-zip-desde-un-servidor-por-consola/</link>
					<comments>https://www.dondeguardomisideas.com/2016/enviarte-un-zip-desde-un-servidor-por-consola/#respond</comments>
		
		<dc:creator><![CDATA[Carlos Coronado]]></dc:creator>
		<pubDate>Sun, 20 Nov 2016 15:49:41 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[files]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[transfer]]></category>
		<guid isPermaLink="false">https://www.dondeguardomisideas.com/?p=1260</guid>

					<description><![CDATA[Por unas obras en la oficina, tuve que trabajar remotamente y por problemas con mi pc no podía conectarme a la VPN para poder acceder a la red de servidores. Ese día tuve la necesidad de obtener un dump de la BBDD para realizar unas pruebas y para poder acceder a ella tenía que hacer un tunel SSH a través de 3 servidores por lo que descargarme un fichero no<a href="https://www.dondeguardomisideas.com/2016/enviarte-un-zip-desde-un-servidor-por-consola/">&#160;&#160;[ Read More ]</a>]]></description>
										<content:encoded><![CDATA[<p>Por unas obras en la oficina, tuve que trabajar remotamente y por problemas con mi pc no podía conectarme a la VPN para poder acceder a la red de servidores. Ese día tuve la necesidad de obtener un dump de la BBDD para realizar unas pruebas<br />
y para poder acceder a ella tenía que hacer un tunel SSH a través de 3 servidores<span id="more-1260"></span> por lo que descargarme un fichero no era lo más cómodo del mundo.</p>
<p>Buscando un servicio de transferencia de ficheros me topé con <a href="http://transfer.sh" target="_blank">transfer.sh</a> y la esperiencia fué muy satisfactoria. El servicio es sencillo y muy rápido, ya que no requiere de un registro previo.</p>
<p>En mi caso, para agilizar y proteger los datos en el envío comprimí y cifré el fichero:</p>
<pre lang="bash">gzip carpeta_o_fichero_para_comprimir
gpg -ac -o- carpeta_comprimida.tar # e introduce la contraseña
curl -K -X PUT --upload-file "-" https://transfer.sh</pre>
<p>Una vez que envías el fichero, este te retorna el link para poder descargar el fichero</p>
<p lang="bash" style="padding-left: 30px;"><strong>curl link_to_transfer|gpg|gzip -d &gt; fichero_o_carpeta_descomprimida</strong></p>
<p>Disponen de una función que puedes añadir en tu .bashrc para facilitar su uso. Puedes descargarlo desde su <a href="https://gist.github.com/nl5887/a511f172d3fb3cd0e42d" target="_blank">Gist</a>.</p>
<p>Espero que os ayude.<br />
¿Habéis usado este servicio? Otra forma que se os ocurra?</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dondeguardomisideas.com/2016/enviarte-un-zip-desde-un-servidor-por-consola/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>