<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>~luk/</title>
    <link>https://wybcz.pl/</link>
    <description>Recent content on ~luk/</description>
    <generator>Hugo</generator>
    <language>pl-PL</language>
    <lastBuildDate>Wed, 15 Oct 2025 15:10:58 +0200</lastBuildDate>
    <atom:link href="https://wybcz.pl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>In-place PostgreSQL upgrade on Debian</title>
      <link>https://wybcz.pl/posts/2025-10-12-in-place-postgresql-upgrade-in-debian/</link>
      <pubDate>Sun, 12 Oct 2025 22:05:27 +0200</pubDate>
      <guid>https://wybcz.pl/posts/2025-10-12-in-place-postgresql-upgrade-in-debian/</guid>
      <description>&lt;h1 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h1&gt;&#xA;&lt;p&gt;Check the clusters and their ports with &lt;code&gt;pg_lsclusters&lt;/code&gt;. Make sure to create a&#xA;backup for &lt;em&gt;all databases&lt;/em&gt;! You can use &lt;code&gt;pg_dumpall -p &amp;lt;port&amp;gt;&lt;/code&gt; command for&#xA;that.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; sudo su &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt; postgres&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;export&lt;/span&gt; BACKUP_DIR&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/tmp/pgbackup&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; mkdir &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;p &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;${BACKUP_DIR}&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;$&lt;/span&gt; pg_lsclusters &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;j \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; jq &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;r &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.[]|[.config.cluster_name, .config.port] | @tsv&amp;#39;&lt;/span&gt; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; IFS&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;\t&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&lt;/span&gt; read &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;r cluster port; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      pg_dumpall &lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;p &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;${port}&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;${BACKUP_DIR}/dump_${cluster//\//_}_$( date +&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;Y&lt;span style=&#34;color:#f92672&#34;&gt;-%&lt;/span&gt;m&lt;span style=&#34;color:#f92672&#34;&gt;-%&lt;/span&gt;dT&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;H:&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;M:&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;S&lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt;z&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34; ).sql&amp;#34;&lt;/span&gt;; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    done&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;upgrading&#34;&gt;Upgrading&lt;/h1&gt;&#xA;&lt;p&gt;To upgrade a cluster to a newer PostgreSQL major version run the following&#xA;command - in the following example we&amp;rsquo;re upgrading from version 17 to 18.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to create an encrypted USB stick</title>
      <link>https://wybcz.pl/posts/2016-02-21-creating-encrypted-usb-stick/</link>
      <pubDate>Sun, 21 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2016-02-21-creating-encrypted-usb-stick/</guid>
      <description>&lt;p&gt;Creating an encrypted USB stick under GNU/Linux is fairly ease. First lets&#xA;install required packages and erase everything from the stick&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export USB_STICK&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/dev/sdb&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ apt-get install parted cryptsetup-bin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ shred -n &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; -v -z &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;USB_STICK&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This process can take some time depending on the stick&amp;rsquo;s size. After it&amp;rsquo;s&#xA;finished, we can create a partition table&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ parted -s -a optimal &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;USB_STICK&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -- mklabel msdos mkpart primary ext2 &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; -1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally we can create an AES encrypted partition&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debugging HTTP traffic like a boss</title>
      <link>https://wybcz.pl/posts/2015-05-23-debugging-http-traffic-like-a-boss/</link>
      <pubDate>Sat, 23 May 2015 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2015-05-23-debugging-http-traffic-like-a-boss/</guid>
      <description>&lt;p&gt;One can simply use &lt;a href=&#34;http://www.tcpdump.org/&#34;&gt;tcpdump&lt;/a&gt; (or&#xA;&lt;a href=&#34;https://www.wireshark.org/&#34;&gt;Wireshark&lt;/a&gt;):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ tcpdump -ttt -A -q -l &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;tcp port 80 or tcp port 443&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you are looking for more convenient way of viewing HTTP traffic you can use&#xA;following quick n&amp;rsquo; dirty python script, which requires only &lt;code&gt;python-flask&lt;/code&gt; and&#xA;&lt;code&gt;python-requests&lt;/code&gt; libraries&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/usr/bin/python&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# -*- coding: utf8 -*-&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; requests&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; flask &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; Flask&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; flask &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; Response&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; flask &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; request&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;app &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Flask(__name__)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@app.route&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/&amp;lt;path:url&amp;gt;&amp;#39;&lt;/span&gt;, methods&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;POST&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;GET&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;PUT&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;DELETE&amp;#39;&lt;/span&gt;])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;proxy&lt;/span&gt;(url):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;print_dict&lt;/span&gt;(direction, data):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; (key, val) &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; data&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;iteritems():&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{0}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{1}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;: &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{2}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;format(direction, key&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;title(), val))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;gt; &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{0}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{1}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;format(request&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;method, url))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print_dict(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;gt;&amp;#39;&lt;/span&gt;, request&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;form)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    req &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; requests&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;request(request&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;method, url, data&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;request&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;form)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt; Status code &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;{0}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;format(req&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;status_code))&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print_dict(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;&amp;lt;&amp;#39;&lt;/span&gt;, req&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;headers)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(req&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;content)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; Response(req&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;content), req&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;status_code&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; __name__ &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    app&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;run(debug&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It will forward all requests to URL specified as a path, e.g.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fun with kexec</title>
      <link>https://wybcz.pl/posts/2015-03-08-fun-with-kexec/</link>
      <pubDate>Sun, 08 Mar 2015 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2015-03-08-fun-with-kexec/</guid>
      <description>&lt;h1 id=&#34;what-is-kexec&#34;&gt;What is kexec?&lt;/h1&gt;&#xA;&lt;p&gt;Simply speaking &lt;code&gt;kexec&lt;/code&gt; is a mechanism in Linux kernel which allows you to&#xA;quickly boot to a new kernel from the currently running one. It&amp;rsquo;s like a reboot&#xA;but it skips the entire bootloader stage. There is no hardware initialization.&#xA;No system firmware. Basically we get extremely fast reboots! Believe me or not,&#xA;but booting up an enterprise-class machine can take a few minutes&amp;hellip;&lt;/p&gt;&#xA;&lt;h1 id=&#34;first-steps&#34;&gt;First steps&lt;/h1&gt;&#xA;&lt;p&gt;First make sure that you have kexec system call enabled in your running&#xA;kernel:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Artifactory - uploading 3rd party artifacts with Maven</title>
      <link>https://wybcz.pl/posts/2015-03-01-artifactory-uploading-3rd-party-artifacts-with-maven/</link>
      <pubDate>Sun, 01 Mar 2015 22:50:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2015-03-01-artifactory-uploading-3rd-party-artifacts-with-maven/</guid>
      <description>&lt;p&gt;Uploading artifacts to Artifactory via web interface is really clunky&amp;hellip;&#xA;Let&amp;rsquo;s script it!&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ARTIFACTORY_URL&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://artifactory.example.com/artifactory&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ARTIFACTORY_REPO&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ext-release-local&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MVN_USERNAME&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;maven&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;MVN_PASSWORD&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt; -z $DEBUG &lt;span style=&#34;color:#f92672&#34;&gt;]]&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; set -x&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;umask &lt;span style=&#34;color:#ae81ff&#34;&gt;0077&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; $# -lt &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;usage: &lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt; basename &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$0&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt; groupId artifactId version filename&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    exit &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GROUP_ID&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$1&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ARTIFACT_ID&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$2&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;VERSION&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$3&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;FILE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$4&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PACKAGING&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;5&lt;span style=&#34;color:#66d9ef&#34;&gt;:-&lt;/span&gt;jar&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TEMP_SETTINGS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt; mktemp --suffix&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;.xml &lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;trap &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;rm -rf ${TEMP_SETTINGS}; exit&amp;#39;&lt;/span&gt; EXIT INT TERM&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cat &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;EOF &amp;gt; &amp;#34;${TEMP_SETTINGS}&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;settings xmlns=&amp;#34;http://maven.apache.org/SETTINGS/1.0.0&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          xmlns:xsi=&amp;#34;http://www.w3.org/2001/XMLSchema-instance&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;          xsi:schemaLocation=&amp;#34;http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd&amp;#34;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    &amp;lt;servers&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        &amp;lt;server&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            &amp;lt;id&amp;gt;${ARTIFACTORY_REPO}&amp;lt;/id&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            &amp;lt;username&amp;gt;${MVN_USERNAME}&amp;lt;/username&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;            &amp;lt;password&amp;gt;${MVN_PASSWORD}&amp;lt;/password&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;        &amp;lt;/server&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;    &amp;lt;/servers&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;/settings&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mvn -e -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;TEMP_SETTINGS&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; deploy:deploy-file &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -Dpackaging&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;PACKAGING&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -DrepositoryId&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;ARTIFACTORY_REPO&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -Durl&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;ARTIFACTORY_URL&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;ARTIFACTORY_REPO&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -DgroupId&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;GROUP_ID&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -DartifactId&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;ARTIFACT_ID&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -Dversion&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;VERSION&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    -Dfile&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;FILE&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Oracle - LDAP over SSL without OAS</title>
      <link>https://wybcz.pl/posts/2013-11-06-oracle-ldap-over-ssl-without-oas/</link>
      <pubDate>Wed, 06 Nov 2013 16:00:43 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-11-06-oracle-ldap-over-ssl-without-oas/</guid>
      <description>&lt;p&gt;First, you need to install DBMS_LDAP package to use LDAP on Oracle database at all:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;CONNECT&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AS&lt;/span&gt; SYSDBA&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;@?/&lt;/span&gt;rdbms&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;admin&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;catldap.&lt;span style=&#34;color:#66d9ef&#34;&gt;sql&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;then install and configure &lt;a href=&#34;https://www.stunnel.org/&#34;&gt;stunnel&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ apt-get install stunnel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cat &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;EOF &amp;gt; /etc/stunnel/ldap.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;client = yes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;[LDAPS-client]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;accept  = 127.0.0.1:389&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;connect = ldap.example.com:636&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;EOF&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sed -i.bak &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/ENABLED=0/ENABLED=1/&amp;#39;&lt;/span&gt; /etc/default/stunnel4 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ invoke-rc.d stunnel4 restart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&amp;rsquo;s it! Let&amp;rsquo;s test our configuration:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SET&lt;/span&gt; SERVEROUTPUT &lt;span style=&#34;color:#66d9ef&#34;&gt;ON&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;DECLARE&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LDAPSession DBMS_LDAP.&lt;span style=&#34;color:#66d9ef&#34;&gt;session&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LDAPResult  PLS_INTEGER;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;BEGIN&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    DBMS_LDAP.use_exception :&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;TRUE&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LDAPSession :&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; DBMS_LDAP.init( &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        hostname &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt;, &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        portnum  &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;389&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    );&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LDAPResult  :&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; DBMS_LDAP.simple_bind_s(&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        ld     &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; LDAPSession, &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        dn     &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;cn=user,dc=example,dc=com&amp;#39;&lt;/span&gt;, &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        passwd &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;password&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    );&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    DBMS_Output.put_line(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;User authenticated!&amp;#39;&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    LDAPResult  :&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; DBMS_LDAP.unbind_s(LDAPSession);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;END&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hint: for testing purposes you can also use &lt;a href=&#34;http://www.dest-unreach.org/socat/&#34;&gt;socat&lt;/a&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian amd64 i Juniper VPN</title>
      <link>https://wybcz.pl/posts/2013-08-19-debian-amd64-i-juniper-vpn/</link>
      <pubDate>Mon, 19 Aug 2013 23:51:09 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-19-debian-amd64-i-juniper-vpn/</guid>
      <description>&lt;p&gt;Poniżej znajduję się instrukcja uruchomienia klienta VPN bez 32-bitowej Javy w&#xA;przeglądarce.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Na początek pobieramy JARa z klientem - po zalogowaniu się do interfejsu&#xA;www VPNa pobieramy plik &lt;code&gt;/dana-cached/nc/ncLinuxApp.jar&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Rozpokowujemy JARa i nadajemy odpowiednie uprawnienia plikom:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkdir -p ~/.juniper_networks&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ unzip -d ~/.juniper_networks/network_connect ncLinuxApp.jar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ chown root: ~/.juniper_networks/network_connect/ncsvc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ chmod &lt;span style=&#34;color:#ae81ff&#34;&gt;6711&lt;/span&gt; ~/.juniper_networks/network_connect/ncsvc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ chmod &lt;span style=&#34;color:#ae81ff&#34;&gt;744&lt;/span&gt; ~/.juniper_networks/network_connect/ncdiag&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Pobieramy certyfikat serwera:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export VPN_SERVER&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;vpn.example.net&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ export VPN_PORT&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;443&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ openssl x509 -in &amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;openssl s_client -connect &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;VPN_SERVER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;VPN_PORT&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -prexit 2&amp;gt;/dev/null&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;              -outform der -out ~/.juniper_networks/network_connect/&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;VPN_SERVER&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;.der&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Instalujemy niezbędne pakiety:&lt;/p&gt;</description>
    </item>
    <item>
      <title>The two basic principles of Windows system administration</title>
      <link>https://wybcz.pl/posts/2013-08-12-the-two-basic-principles-of-windows-system-administration/</link>
      <pubDate>Mon, 12 Aug 2013 20:07:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-the-two-basic-principles-of-windows-system-administration/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;For minor problems, reboot&lt;/li&gt;&#xA;&lt;li&gt;For major problems, reinstall&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Debian and PECL</title>
      <link>https://wybcz.pl/posts/2013-08-12-debian-and-pecl/</link>
      <pubDate>Mon, 12 Aug 2013 20:06:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-debian-and-pecl/</guid>
      <description>&lt;p&gt;Building PECL packages for Debian GNU/Linux is as easy as:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ apt-get install dh-make-php&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ dh-make-pecl --depends somelib --build-depends somelib-dev module&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cd php-module-1.0.0 &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; dpkg-buildpackage -rfakeroot&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Problemy z Subversion</title>
      <link>https://wybcz.pl/posts/2013-08-12-problemy-z-subversion/</link>
      <pubDate>Mon, 12 Aug 2013 20:05:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-problemy-z-subversion/</guid>
      <description>&lt;p&gt;W pewnym momencie, w dość dużym repozytorium (~300MB) wystawionym przez Apache&#xA;(mod_dav) pojawił się problem:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ svn up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;svn: Decompression of svndiff data failed&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Rzut oka w logi serwera:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[error] Provider encountered an error while streaming a REPORT response.  [500, #0]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[error] A failure occurred while driving the update report editor  [500, #104]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[error] Error writing base64 data: Connection reset by peer  [500, #104]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Po uruchomieniu &lt;code&gt;svnadmin verify&lt;/code&gt; okazało się, że coś jest nie tak z rewizją&#xA;&lt;code&gt;413&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Przypadkowy lvremove</title>
      <link>https://wybcz.pl/posts/2013-08-12-przypadkowy-lvremove/</link>
      <pubDate>Mon, 12 Aug 2013 20:04:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-przypadkowy-lvremove/</guid>
      <description>&lt;p&gt;Co zrobić gdy omsknie nam się palec na klawiaturze i usuniemy nie ten wolumin&#xA;co trzeba? Można go przywrócić z backupu:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ grep remove /etc/lvm/archive/*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/etc/lvm/archive/vgname_00005.vg:description &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Created *before* executing &amp;#39;lvremove /dev/vgname/lostone&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ cp /etc/lvm/backup/vgname ~/vgname_lvm_backup&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ vgcfgrestore --verbose  -n lostone vgname&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ lvchange  -ay  /dev/vgname/lostone&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Grub2 na patyku</title>
      <link>https://wybcz.pl/posts/2013-08-12-grub-na-patyku/</link>
      <pubDate>Mon, 12 Aug 2013 20:03:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-grub-na-patyku/</guid>
      <description>&lt;p&gt;Przygotowanie patyka (zakładam, że na urządzeniu /dev/sdx jest jedna partycja :)):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mkfs.vfat -n patyk /dev/sdx1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mount /dev/sdx1 /mnt/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ grub-install --no-floppy --root-directory&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/mnt /dev/sdx&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;Zawartość pliku &lt;kbd&gt;/mnt/boot/grub/grub.cfg&lt;/kbd&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set menu_color_normal=white/black&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;set menu_color_highlight=black/green&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# --&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menuentry &amp;#34;grml-medium 2011.05&amp;#34; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;# iso url: http://download.grml.org/grml-medium_2011.05.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;loopback loop /iso/grml-medium_2011.05.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading vmlinuz...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;linux (loop)/boot/grmlmedium/linux26 findiso=/iso/grml-medium_2011.05.iso apm=power-off boot=live nomce noeject noprompt ignore_bootid &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading initrd...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;initrd (loop)/boot/grmlmedium/initrd.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menuentry &amp;#34;grml64-medium 2011.05&amp;#34; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;# iso url: http://download.grml.org/grml64-medium_2011.05.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;loopback loop /iso/grml64-medium_2011.05.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading vmlinuz...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;linux (loop)/boot/grml64medium/linux26 findiso=/iso/grml64-medium_2011.05.iso apm=power-off boot=live nomce noeject noprompt ignore_bootid &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading initrd...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;initrd (loop)/boot/grml64medium/initrd.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# --&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menuentry &amp;#34;PLD Rescue x86&amp;#34; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;# iso url: http://rescuecd.pld-linux.org/download/2011-02-12/x86_and_x86_64/RCD_11_02.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading vmlinuz...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;linux /rcd/vmlinuz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading initrd...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;initrd /rcd/rescue.cpi /rcd/custom.cpi root=/dev/ram0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menuentry &amp;#34;PLD Rescue x86_64&amp;#34; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;# iso url: http://rescuecd.pld-linux.org/download/2011-02-12/x86_and_x86_64/RCD_11_02.iso&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading vmlinuz...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;linux /rcd/vmlinuz6&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;echo  &amp;#39;Loading initrd...&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;initrd /rcd/rescue6.cpi /rcd/custom.cpi root=/dev/ram0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# --&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;menuentry &amp;#34;Memory test (memtest86+)&amp;#34; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;linux16 /misc/memtest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# --&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Error opening terminal: rxvt-256color</title>
      <link>https://wybcz.pl/posts/2013-08-12-error-opening-terminal/</link>
      <pubDate>Mon, 12 Aug 2013 20:02:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-error-opening-terminal/</guid>
      <description>&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$  apt-cache show ncurses-term&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;...&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Description-pl: Dodatkowe definicje typów terminali&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Funkcje biblioteki ncurses to niezależna od terminalu metoda aktualizacji&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wyświetlania znaków na ekranie, z rozsądną optymalizacją.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Pakiet zawiera wszystkie definicje wielu terminali, które nie znalazły się w&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pakiecie ncurses-base.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;...&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ apt-get install ncurses-term &lt;span style=&#34;color:#75715e&#34;&gt;# :)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Mounting KVM disk image</title>
      <link>https://wybcz.pl/posts/2013-08-12-mounting-kvm-disk-image/</link>
      <pubDate>Mon, 12 Aug 2013 20:01:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-mounting-kvm-disk-image/</guid>
      <description>&lt;p&gt;Click click (zakładam, że urządzenie &lt;em&gt;/dev/loop0&lt;/em&gt; jest dostępne):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ losetup /dev/loop0 dysk.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kpartx -a /dev/loop0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ mount /dev/mapper/loop0p1 /mnt&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;p&gt;&amp;hellip;a po skończonej pracy:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ umount /mnt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ kpartx -d /dev/loop0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ losetup -d /dev/loop0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Dell Latitude XT BIOS upgrade</title>
      <link>https://wybcz.pl/posts/2013-08-12-dell-latitude-xt-bios-upgrade/</link>
      <pubDate>Mon, 12 Aug 2013 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/posts/2013-08-12-dell-latitude-xt-bios-upgrade/</guid>
      <description>&lt;p&gt;Przy próbie aktualizacji BIOSu w notebooku Dell Latitude XT, &lt;acronym&#xA;title=&#34;http://en.wikipedia.org/wiki/Windows_Preinstallation_Environment&#34;&gt;WinPE&lt;/acronym&gt;&#xA;usilnie zgłaszał brak zasialacza. Pociągało to za sobą niemożność aktualizacji&#xA;BIOS-u - wymagane są zarówno zasialacz jak i bateria. Po godzinie spędzonej na&#xA;przeszukiwaniu dokumentacji udało mi się znaleźć rozwiązanie!&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;DXT_A09.EXE /forceit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://wybcz.pl/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/about/</guid>
      <description>&lt;h2 id=&#34;contact&#34;&gt;Contact&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;IRC: &lt;a href=&#34;irc://irc.libera.chat/wybczu,isnick&#34;&gt;wybczu@Libera.Chat&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://tinfoil.social/@luk&#34;&gt;Mastodon&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.goodreads.com/user/show/13274883-ukasz&#34;&gt;Goodreads&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://keybase.io/wybczu&#34;&gt;Keybase&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;gpg-key&#34;&gt;GPG key&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://wybcz.pl/48AD1541.asc&#34;&gt;My GPG public key&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pub   4096R/48AD1541 2014-01-26&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      Key fingerprint = 5BEA 0D72 A27F ABB6 2F23  FF2A 2EB8 C2A2 48AD 1541&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Astronomy</title>
      <link>https://wybcz.pl/astronomy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/astronomy/</guid>
      <description>&lt;h2 id=&#34;astrosprzęt&#34;&gt;Astrosprzęt&lt;/h2&gt;&#xA;&lt;p&gt;WIP&lt;/p&gt;</description>
    </item>
    <item>
      <title>Talks</title>
      <link>https://wybcz.pl/talks/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wybcz.pl/talks/</guid>
      <description>&lt;h2&gt;2019&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2019-11-29 - Monitoring infrastructure with Prometheus - Jesień Linuksowa&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20191129-monitoring-infrastructure-with-prometheus.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2019-11-06 - M3 and Prometheus: Monitoring at planet scale for everyone (with Rob Skillington) - O&#39;Reilly Velocity Conference Berlin&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://conferences.oreilly.com/velocity/vl-eu/public/schedule/detail/78720&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://cdn.oreillystatic.com/en/assets/1/event/302/M3%20and%20Prometheus_%20Monitoring%20at%20planet%20scale%20for%20everyone%20Presentation.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2019-01-17 - Monitoring with Prometheus at Devskiller - Krakow Cloud Native Group&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/Krakow-Cloud-Native/events/257856276/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20190117-monitoring-with-prometheus-at-devskiller.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;2018&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2018-10-16 - Infrastructure as Code - Agile &amp; Automation Days&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20181016-infrastructure-as-code.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2018-09-13 - Introduction to monitoring with Prometheus - DevOps Warsaw&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/DevOps-Warsaw/events/252503594/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20180614-monitoring-with-prometheus.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2018-06-14 - Monitoring with Prometheus - Cloud Native &amp; Kubernetes Warsaw Meetup&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/Cloud-Native-Kubernetes-Warsaw/events/250404795/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20180614-monitoring-with-prometheus.pdf&#34;&gt;slides&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=22q1mJgYcD8&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2018-06-04 - Monitoring with Prometheus at Devskiller - Warsaw Cloud Native Meetup&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/Warsaw-Cloud-Native-Meetup/events/250545257/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20180604-monitoring-with-prometheus-at-devskiller.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2018-01-18 - Prometheus 101 - SysOps / DevOps Warszawa MeetUp&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/SysOpsPolska/events/245911513/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20180118-prometheus-101.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;2017&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2017-01-26 - Jenkins as Code - Prague Containers Meetup&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/Prague-Containers-Meetup/events/236667803/&#34;&gt;event&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;2016&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2016-11-16 - Jenkins as Code - TOPCONF Tallinn&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.youtube.com/watch?v=gjzyrizUlls&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2016-10-14 - Jenkins as Code - High Load Strategy Conference&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2016-06-24 - Jenkins as Code (with Marcin Zajączkowski) - Devoxx Poland&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.youtube.com/watch?v=898pnw72tzU&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2016-03-19 - Jenkins as Code - leveraging Groovy for infrastructure management (with Marcin Zajączkowski) - GR8 Day Warsaw&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.youtube.com/watch?v=zg5I1R1aHd4&amp;list=PLYCb1Sb8JFyu4mpHDqQwoIlUyrgAMpfwv&amp;index=5&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2016-01-30 - Jenkins as Code (with Marcin Zajączkowski) - FOSDEM&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://archive.fosdem.org/2016/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://archive.fosdem.org/2016/schedule/event/jenkins_as_code/attachments/slides/895/export/events/attachments/jenkins_as_code/slides/895/Jenkins_as_a_code___FOSDEM___Lukasz_Szczesny___Marcin_Zajaczkowski.pdf&#34;&gt;slides&lt;/a&gt;, &lt;a href=&#34;http://video.fosdem.org/2016/ua2220/jenkins-as-a-code.webm&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;2015&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2015-11-25 - JaC - Jenkins as Code - DevOpsDays Warsaw&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20151125-jenkins-as-a-code.pdf&#34;&gt;slides&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=-dofUuTIbAA&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2015-05-19 - Do you think you&#39;re doing microservice architecture? - Atmosphere&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20150519-microservice-architecture-atmosphere.pdf&#34;&gt;slides&lt;/a&gt;, &lt;a href=&#34;https://www.youtube.com/watch?v=rWz74iLSxZs&amp;index=30&amp;list=PLnKL6-WWWE_Wr7LLzRhCVxvNYBeRhwa6k&#34;&gt;video&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2015-04-20 - Do you think you&#39;re doing microservice architecture? - 4Developers&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20150420-microservice-architecture.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h2&gt;2014&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2014-10-28 - Warsjawa NFC Case Study - Warszawa Java User Group&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://wybcz.pl/assets/talks/20141028-warsjawa-ncf-case-study.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;  &lt;li&gt;&#xA;    2014-07-22 - Building CI system with Gerrit and Jenkins - DevOps Warsaw&#xA;    &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      &#xA;      (&lt;a href=&#34;https://www.meetup.com/DevOps-Warsaw/events/195245662/&#34;&gt;event&lt;/a&gt;, &lt;a href=&#34;https://wybcz.pl/assets/talks/20140722-gerrit-and-jenkins.pdf&#34;&gt;slides&lt;/a&gt;)&#xA;    &#xA;  &lt;/li&gt;&#xA;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
