<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Tom&#39;s Blog</title>
    <link>https://gagor.pro/</link>
    <description>Recent content on Tom&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>Content licensed under (CC BY-SA 4.0)</copyright>
    <lastBuildDate>Tue, 21 Apr 2026 19:34:09 +0200</lastBuildDate>
    <atom:link href="https://gagor.pro/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The Wall of Shame</title>
      <link>https://gagor.pro/2026/04/the-wall-of-shame/</link>
      <pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/04/the-wall-of-shame/</guid>
      <description>A story of how a team used &amp;ldquo;The Wall of Shame&amp;rdquo; to turn a bottlenecked PR review process into an engaging game.</description>
    </item>
    <item>
      <title>Ubuntu variant optimized with x86-64-v3</title>
      <link>https://gagor.pro/2026/04/ubuntu-variant-optimized-with-x86-64-v3/</link>
      <pubDate>Sat, 04 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/04/ubuntu-variant-optimized-with-x86-64-v3/</guid>
      <description>Explore how to enable and use the x86-64-v3 optimized Ubuntu variant for better performance on modern hardware without sacrificing stability.</description>
    </item>
    <item>
      <title>Prek, a pre-commit alternative</title>
      <link>https://gagor.pro/2026/02/prek-a-pre-commit-alternative/</link>
      <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/02/prek-a-pre-commit-alternative/</guid>
      <description>Prek is a Rust-based pre-commit alternative that maintains full config compatibility while delivering significantly faster hook execution.</description>
    </item>
    <item>
      <title>Bookmarks</title>
      <link>https://gagor.pro/bookmarks/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/bookmarks/</guid>
      <description>&lt;div class=&#34;bookmarks-container h-feed&#34;&gt;&lt;div class=&#34;bookmark-year&#34;&gt;
    &lt;h2 class=&#34;bookmark-year-header&#34; id=&#34;year-2026&#34;&gt;
        &lt;a class=&#34;archive-header-link&#34; href=&#34;#year-2026&#34;&gt;2026&lt;/a&gt;
        &lt;sup class=&#34;archive-count&#34;&gt;&amp;nbsp;42&lt;/sup&gt;
    &lt;/h2&gt;&lt;div class=&#34;bookmark-month&#34;&gt;
    &lt;h3 class=&#34;bookmark-month-header&#34; id=&#34;month-2026-04 2026-04-2026-04&#34;&gt;
        &lt;a class=&#34;archive-header-link&#34; href=&#34;#month-2026-04%202026-04-2026-04&#34;&gt;April&lt;/a&gt;
        &lt;sup class=&#34;archive-count&#34;&gt;&amp;nbsp;13&lt;/sup&gt;
    &lt;/h3&gt;
    &lt;div class=&#34;bookmark-entries&#34;&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://wazuh.com&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://wazuh.com&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Wazuh - Open Source XDR. Open Source SIEM.&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-22&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;security&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://isitagentready.com/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://isitagentready.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Is Your Site Agent-Ready?&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-19&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;AI&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://stevehanov.ca/blog/how-i-run-multiple-10k-mrr-companies-on-a-20month-tech-stack&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://stevehanov.ca/blog/how-i-run-multiple-10k-mrr-companies-on-a-20month-tech-stack&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;How I run multiple $10K MRR companies on a $20/month tech stack |
 Steve Hanov&amp;#39;s Blog&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-17&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://goodfirstissue.dev/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://goodfirstissue.dev/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Good First Issue curates easy pickings from popular open-source
 projects, and helps you make your first contribution to open-source&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-17&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;github&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;open-source&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://scottlawsonbc.com/post/shooting-down-ideas&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://scottlawsonbc.com/post/shooting-down-ideas&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Shooting Down Ideas Is Not a Skill&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;leadership&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;management&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://ai.georgeliu.com/p/running-google-gemma-4-locally-with&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://ai.georgeliu.com/p/running-google-gemma-4-locally-with&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Running Google Gemma 4 Locally With LM Studio’s New Headless CLI &amp;amp; Claude Code&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;AI&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://jai.scs.stanford.edu/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://jai.scs.stanford.edu/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;jai - easy containment for AI agents&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;AI&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;security&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.youtube.com/watch?v=jv8tt7ocKSI&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.youtube.com/watch?v=jv8tt7ocKSI&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;All Parents Should See This - Michael McIntyre Stand Up Comedy&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;leadership&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;parenting&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.youtube.com/watch?v=E0pufb_n0x0&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.youtube.com/watch?v=E0pufb_n0x0&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;How to Explain “Mental Load” to Your Partner? (Therapist Explains)&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;leadership&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;psychology&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://hbr.org/2022/05/38-smart-questions-to-ask-in-a-job-interview&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://hbr.org/2022/05/38-smart-questions-to-ask-in-a-job-interview&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;38 Smart Questions to Ask in a Job Interview as a candidate&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-16&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;hiring&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://web.devopstopologies.com/index.html&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://web.devopstopologies.com/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;DevOps Team Topologies explained&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-14&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;DevOps&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;Leadership&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://larm.dev/tools/response-time&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://larm.dev/tools/response-time&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Website Response Time Checker — Test From Multiple Global Locations&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-10&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;CDN&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://debian.griffo.io/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://debian.griffo.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Interesting Debian repo with: zig ghostty lazygit yazi eza uv fzf
 zoxide bun tigerbeetle deno&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-04-04&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;debian&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;apps&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;bookmark-month&#34;&gt;
    &lt;h3 class=&#34;bookmark-month-header&#34; id=&#34;month-2026-03 2026-03-2026-03&#34;&gt;
        &lt;a class=&#34;archive-header-link&#34; href=&#34;#month-2026-03%202026-03-2026-03&#34;&gt;March&lt;/a&gt;
        &lt;sup class=&#34;archive-count&#34;&gt;&amp;nbsp;9&lt;/sup&gt;
    &lt;/h3&gt;
    &lt;div class=&#34;bookmark-entries&#34;&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.bejarano.io/terraform-performance/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.bejarano.io/terraform-performance/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Advanced Terraform performance optimization&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-30&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;terraform&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;performance&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://blog.hofstede.it/shell-tricks-that-actually-make-life-easier-and-save-your-sanity/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Shell Tricks That Actually Make Life Easier (And Save Your Sanity) |
 Larvitz Blog&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-28&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;bash&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;zsh&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;shell&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://github.com/hectorvent/floci&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://github.com/hectorvent/floci&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;A free, open-source local AWS emulator&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-24&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;localstack&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://ssl-config.mozilla.org/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://ssl-config.mozilla.org/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;SSL Configuration Generator&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-19&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;ssl&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;security&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;nginx&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;apache&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://translate.kagi.com/?from=auto&amp;amp;to=linkedin&amp;amp;text=&amp;#43;nie&amp;#43;chce&amp;#43;mi&amp;#43;si%C4%99&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://translate.kagi.com/?from=auto&amp;amp;to=linkedin&amp;amp;text=&amp;#43;nie&amp;#43;chce&amp;#43;mi&amp;#43;si%C4%99&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Translage Kagi - everyone can use now the LinkedIn Speak&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-19&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.removepaywall.com/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.removepaywall.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;RemovePaywall&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-11&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://deweloperuch.pl&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://deweloperuch.pl&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Deweloperuch - Ceny Nieruchomości&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-09&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://bulldogjob.pl/readme/czym-jest-architecture-decision-record&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://bulldogjob.pl/readme/czym-jest-architecture-decision-record&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;What is Architecture Decision Record (ADR)&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-09&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;architecture&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;it&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://youglish.com/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://youglish.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;English words pronunciation search engine&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-03-06&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;english&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;learning&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class=&#34;bookmark-month&#34;&gt;
    &lt;h3 class=&#34;bookmark-month-header&#34; id=&#34;month-2026-02 2026-02-2026-02&#34;&gt;
        &lt;a class=&#34;archive-header-link&#34; href=&#34;#month-2026-02%202026-02-2026-02&#34;&gt;February&lt;/a&gt;
        &lt;sup class=&#34;archive-count&#34;&gt;&amp;nbsp;20&lt;/sup&gt;
    &lt;/h3&gt;
    &lt;div class=&#34;bookmark-entries&#34;&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://hawksley.org/2026/02/17/timeframe.html&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://hawksley.org/2026/02/17/timeframe.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;How I built Timeframe, our family e-paper dashboard - Joel Hawksley&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-27&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;frame&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://words.filippo.io/dependabot/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://words.filippo.io/dependabot/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Turn Dependabot Off&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-27&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;security&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;DevOps&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.justinmklam.com/posts/2026/02/beginners-guide-split-keyboards/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.justinmklam.com/posts/2026/02/beginners-guide-split-keyboards/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;A Beginner’s Guide to Split Keyboards | justinmklam | blog&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-27&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;keyboard&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;ergonomy&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.loggly.com/ultimate-guide/using-journalctl/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.loggly.com/ultimate-guide/using-journalctl/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Usign journalctl&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-26&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;systemd&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.bleepingcomputer.com/news/security/why-the-shift-left-dream-has-become-a-nightmare-for-security-and-developers/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.bleepingcomputer.com/news/security/why-the-shift-left-dream-has-become-a-nightmare-for-security-and-developers/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Why the shift left dream has become a nightmare for security and developers&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-23&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;docker&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;security&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
            &lt;blockquote&gt;Interesting reading - 7.3% of public Docker images are maliscious&lt;/blockquote&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://igorstechnoclub.com/sandbox-exec/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://igorstechnoclub.com/sandbox-exec/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;sandbox-exec: macOS&amp;#39;s Little-Known Command-Line Sandboxing Tool |
 Igor&amp;#39;s Techno Club&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-21&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;MacOS&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;Security&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://hackers-1995.vercel.app/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://hackers-1995.vercel.app/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Hackers Mainframe&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-07&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;hackers&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://craftinginterpreters.com/contents.html&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://craftinginterpreters.com/contents.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Crafting Interpreters Book by Robert Nystrom&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-03&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;book&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;coding&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://kopia.io/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://kopia.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Kopia - Fast and Secure Open-Source Backup Software&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-02&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;backup&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;linux&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
            &lt;blockquote&gt;Interesting backup solution, alternative to Rclone&lt;/blockquote&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://kiali.io/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://kiali.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Kiali - The Console for Istio Service Mesh&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-02&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;istio&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;k8s&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
            &lt;blockquote&gt;Allows checking how communication cross-services flows&lt;/blockquote&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://github.com/j178/prek&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://github.com/j178/prek&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Preak, a faster pre-commit replacement&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;Rust&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://blog.codeminer42.com/modern-terminals-alacritty-kitty-and-ghostty/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://blog.codeminer42.com/modern-terminals-alacritty-kitty-and-ghostty/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;The Modern Terminals Showdown: Alacritty, Kitty, and Ghostty&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://human.biodigital.com/login?returnUrl=/explore&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://human.biodigital.com/login?returnUrl=/explore&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Human Digital Body&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
            &lt;blockquote&gt;3D models of human bodies, geat for studying&lt;/blockquote&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://docs.docker.com/ai/sandboxes/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://docs.docker.com/ai/sandboxes/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Docker Sandboxes | Docker Docs&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://disconnect.blog/getting-off-us-tech-a-guide/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://disconnect.blog/getting-off-us-tech-a-guide/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Getting off US tech: a guide - by Paris Marx - Disconnect&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://pricepergig.com/amazon-pl?types=HDD&amp;amp;minCapacity=8000&amp;amp;brand=Western&amp;#43;Digital&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://pricepergig.com/amazon-pl?types=HDD&amp;amp;minCapacity=8000&amp;amp;brand=Western&amp;#43;Digital&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Disk Prices | PricePerGig.com&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://www.linuxfromscratch.org/lfs/view/stable/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://www.linuxfromscratch.org/lfs/view/stable/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Linux From Scratch Course&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;linux&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;training&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://natalie.sh/posts/bluesky-comments/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://natalie.sh/posts/bluesky-comments/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Building Bluesky Comments for My Blog&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
                &lt;div class=&#34;bookmark-tags&#34;&gt;
                    &lt;span class=&#34;p-category&#34;&gt;Bluesky&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;comments&lt;/span&gt;
                    &lt;span class=&#34;p-category&#34;&gt;static site&lt;/span&gt;&lt;/div&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://boz.com/articles/ownership-and-entitlement&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://boz.com/articles/ownership-and-entitlement&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Ownership and Entitlement&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;article class=&#34;bookmark-entry h-entry h-bookmark&#34;&gt;&lt;a class=&#34;u-url&#34; href=&#34;https://artlung.com/likes/&#34; hidden&gt;&lt;/a&gt;&lt;div class=&#34;bookmark-row&#34;&gt;
                &lt;span class=&#34;bookmark-title p-name&#34;&gt;
                    &lt;a class=&#34;u-bookmark-of&#34; href=&#34;https://artlung.com/likes/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Likes at ArtLung.com&lt;/a&gt;
                &lt;/span&gt;
            &lt;/div&gt;

            &lt;div class=&#34;bookmark-tags-row&#34;&gt;
                &lt;span class=&#34;bookmark-date-inline&#34;&gt;2026-02-01&lt;/span&gt;
            &lt;/div&gt;
        &lt;/article&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>My IndieWeb Journey: A Guide to POSSE on a Hugo Static Site</title>
      <link>https://gagor.pro/2026/01/my-indieweb-journey-a-guide-to-posse-on-a-hugo-static-site/</link>
      <pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/01/my-indieweb-journey-a-guide-to-posse-on-a-hugo-static-site/</guid>
      <description>My journey of integrating IndieWeb principles into my Hugo blog-from microformats to Brid.gy syndication and building a custom Webmention renderer.</description>
    </item>
    <item>
      <title>Radical Candor</title>
      <link>https://gagor.pro/book/2026/radical-candor/</link>
      <pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2026/radical-candor/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Radical Candor by Kim Scott&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Radical Candor&lt;/q&gt;&lt;p&gt;How to Get What You Want by Saying What You Mean&lt;/p&gt;&lt;p&gt;Author: Kim Scott&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The general idea of the book is that great leadership means &lt;em&gt;caring personally&lt;/em&gt; while &lt;em&gt;challenging directly&lt;/em&gt;. When I started reading the book, I figured out it&amp;rsquo;s not that radical at all. It&amp;rsquo;s about feedback, mostly constructive:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Radical Candor&amp;rdquo; is about giving feedback that is both kind and clear-helping people grow while building strong, trusting relationships.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Digital Gardening</title>
      <link>https://gagor.pro/2026/01/digital-gardening/</link>
      <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/01/digital-gardening/</guid>
      <description>Treating your personal website like a garden you tend continuously, not as a finished construction, but rather cultivated, authentic fragmented of web.</description>
    </item>
    <item>
      <title>Disable the pager for apt search</title>
      <link>https://gagor.pro/2026/01/disable-the-pager-for-apt-search/</link>
      <pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/01/disable-the-pager-for-apt-search/</guid>
      <description>Learn how to disable the annoying pager for apt search results on Debian-based systems, and find the best permanent solution.</description>
    </item>
    <item>
      <title>A Practical guide to building a parser in Go</title>
      <link>https://gagor.pro/2026/01/a-practical-guide-to-building-a-parser-in-go/</link>
      <pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2026/01/a-practical-guide-to-building-a-parser-in-go/</guid>
      <description>A developer&amp;rsquo;s journey of building a recursive descent parser in Go, from basic concepts to tackling left recursion with Packrat memoization.</description>
    </item>
    <item>
      <title>Transmission: Permission Denied to Downloads directory</title>
      <link>https://gagor.pro/2025/12/transmission-permission-denied-to-downloads-directory/</link>
      <pubDate>Fri, 26 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/12/transmission-permission-denied-to-downloads-directory/</guid>
      <description>Transmission on Ubuntu may be denied access to localized Downloads directories due to AppArmor profiles expecting English folder names. Here’s how to fix it.</description>
    </item>
    <item>
      <title>Do not respond in anger</title>
      <link>https://gagor.pro/2025/12/do-not-respond-in-anger/</link>
      <pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/12/do-not-respond-in-anger/</guid>
      <description>Responding in anger undermines leadership. Learn how managing emotions leads to better decisions and healthier team dynamics.</description>
    </item>
    <item>
      <title>Squashing Docker images with Buildx</title>
      <link>https://gagor.pro/2025/12/squashing-docker-images-with-buildx/</link>
      <pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/12/squashing-docker-images-with-buildx/</guid>
      <description>Learn how to squash Docker images using Buildx to create smaller, more efficient images by consolidating layers.</description>
    </item>
    <item>
      <title>Zsh &#39;illegal modifier&#39; with Git Conventional Commits</title>
      <link>https://gagor.pro/2025/12/zsh-illegal-modifier-with-git-conventional-commits/</link>
      <pubDate>Fri, 19 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/12/zsh-illegal-modifier-with-git-conventional-commits/</guid>
      <description>Fix ZSH &amp;lsquo;illegal modifier&amp;rsquo; errors with Git Conventional Commits by disabling the &lt;code&gt;NO_BANG_HIST&lt;/code&gt; option.</description>
    </item>
    <item>
      <title>I made Windows use UTC with Linux dual boot</title>
      <link>https://gagor.pro/2025/12/i-made-windows-use-utc-with-linux-dual-boot/</link>
      <pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/12/i-made-windows-use-utc-with-linux-dual-boot/</guid>
      <description>Configure Windows to use UTC for the hardware clock when dual-booting with Linux, avoiding time synchronization issues and maintaining Linux defaults.</description>
    </item>
    <item>
      <title>Snakes in Suits</title>
      <link>https://gagor.pro/book/2025/snakes-in-suits/</link>
      <pubDate>Tue, 09 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/snakes-in-suits/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover-en.webp&#34;
         alt=&#34;Cover of book Snakes in Suits by Paul Babiak, Robert D. Hare&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Snakes in Suits&lt;/q&gt;&lt;p&gt;Understanding and Surviving the Psychopaths in Your Office&lt;/p&gt;&lt;p&gt;Authors: Paul Babiak,  Robert D. Hare&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read the Polish translation titled &lt;em&gt;&amp;ldquo;Psychopaci w pracy: Jak ich rozpoznać i jak sobie z nimi radzić&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;


&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover-pl.webp&#34;
         alt=&#34;Cover of book Psychopaci w pracy by Paul Babiak, Robert D. Hare&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Psychopaci w pracy&lt;/q&gt;&lt;p&gt;Jak ich rozpoznać i jak sobie z nimi radzić&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shucking WD Elements 20TB</title>
      <link>https://gagor.pro/2025/11/shucking-wd-elements-20tb/</link>
      <pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/11/shucking-wd-elements-20tb/</guid>
      <description>A detailed guide on shucking WD Elements 20TB drives, including testing, performance benchmarks, and stress testing.</description>
    </item>
    <item>
      <title>Generating Miniatures for my Frameo Digital Photo Frame</title>
      <link>https://gagor.pro/2025/11/generating-miniatures-for-my-frameo-digital-photo-frame/</link>
      <pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/11/generating-miniatures-for-my-frameo-digital-photo-frame/</guid>
      <description>A story of how I bought a digital photo frame, and how I created a tool to generate miniatures of my photo collection to fit them all on the device.</description>
    </item>
    <item>
      <title>20 years of Getting Things Done</title>
      <link>https://gagor.pro/2025/11/20-years-of-getting-things-done/</link>
      <pubDate>Thu, 27 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/11/20-years-of-getting-things-done/</guid>
      <description>Reflections and practical tips from 20 years using Getting Things Done, plus a short workshop plan for leaders who want actionable routines.</description>
    </item>
    <item>
      <title>Create Markdown presentations with Marp</title>
      <link>https://gagor.pro/2025/11/create-markdown-presentations-with-marp/</link>
      <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/11/create-markdown-presentations-with-marp/</guid>
      <description>Learn how to create beautiful slide decks with Markdown and Marp, a simple and powerful tool for presentations.</description>
    </item>
    <item>
      <title>Running Gemini CLI in a Docker container</title>
      <link>https://gagor.pro/2025/10/running-gemini-cli-in-a-docker-container/</link>
      <pubDate>Fri, 31 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/10/running-gemini-cli-in-a-docker-container/</guid>
      <description>Learn how to run Google&amp;rsquo;s Gemini CLI in a Docker container to avoid installing Node.js and its dependencies directly on your system. This guide provides a simple setup, a recommended shell function for seamless integration, and usage examples.</description>
    </item>
    <item>
      <title>How to add llms.txt to a Hugo Blog</title>
      <link>https://gagor.pro/2025/10/how-to-add-llms.txt-to-a-hugo-blog/</link>
      <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/10/how-to-add-llms.txt-to-a-hugo-blog/</guid>
      <description>Learn how to add an &lt;code&gt;llms.txt&lt;/code&gt; file to your Hugo blog to make it more visible to AI agents and improve Generative Engine Optimization (GEO).</description>
    </item>
    <item>
      <title>UNSCRIPTED</title>
      <link>https://gagor.pro/book/2025/unscripted/</link>
      <pubDate>Mon, 06 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/unscripted/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book UNSCRIPTED by MJ DeMarco&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;UNSCRIPTED&lt;/q&gt;&lt;p&gt;Life, Liberty, and the Pursuit of Entrepreneurship&lt;/p&gt;&lt;p&gt;Author: MJ DeMarco&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This book felt so similar to &lt;a href=&#34;https://gagor.pro/book/2025/the-4-hour-work-week/&#34; &gt;&lt;em&gt;The 4-Hour Work Week&lt;/em&gt;&lt;/a&gt;
 that I experienced deja-vu several times while reading it. In the end, I didn’t finish it. The tone of &lt;em&gt;UNSCRIPTED&lt;/em&gt; is lighter than Tim Ferriss’s book (or maybe I’ve just grown used to the occasional swearing), but it was probably just bad timing to start this one so soon after finishing the other - the ideas and examples overlap quite a bit.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why You should not motivate people?</title>
      <link>https://gagor.pro/2025/09/why-you-should-not-motivate-people/</link>
      <pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/09/why-you-should-not-motivate-people/</guid>
      <description>Discover why traditional motivation techniques can backfire in tech teams and how leaders can foster intrinsic motivation through autonomy, mastery, and purpose. Learn actionable strategies to empower your team and boost engagement, based on insights from Daniel Pink&amp;rsquo;s &amp;ldquo;Drive.&amp;rdquo;</description>
    </item>
    <item>
      <title>Escaping the Build Trap</title>
      <link>https://gagor.pro/book/2025/escaping-the-build-trap/</link>
      <pubDate>Sat, 20 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/escaping-the-build-trap/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Escaping the Build Trap by Melissa Perri&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Escaping the Build Trap&lt;/q&gt;&lt;p&gt;How Effective Product Management Creates Real Value&lt;/p&gt;&lt;p&gt;Author: Melissa Perri&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This was the first book on Product Management I’ve ever read, and I’m glad I started with such a solid one.&lt;/p&gt;
&lt;p&gt;In my daily work, I collaborate closely with product owners, and I wanted to better understand their role: How do they work? What are their priorities? And how can our collaboration be more effective? What I appreciated most about this book is how clearly it structures the profession of Product Management and breaks down its many facets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crosspost Your Blog articles to Social Media</title>
      <link>https://gagor.pro/2025/09/crosspost-your-blog-articles-to-social-media/</link>
      <pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/09/crosspost-your-blog-articles-to-social-media/</guid>
      <description>Learn how to automatically share your latest blog posts to Mastodon, Twitter/X, and other social networks using GitHub Actions and the crosspost tool. A simple way to regain traffic lost to search engines and AI.</description>
    </item>
    <item>
      <title>How to split Git repository</title>
      <link>https://gagor.pro/2025/09/how-to-split-git-repository/</link>
      <pubDate>Tue, 02 Sep 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/09/how-to-split-git-repository/</guid>
      <description>This guide explains how to split a mono-repo into smaller repositories, keeping the git history for selected files.</description>
    </item>
    <item>
      <title>Benchmarking Docker image registries</title>
      <link>https://gagor.pro/2025/08/benchmarking-docker-image-registries/</link>
      <pubDate>Sun, 31 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/08/benchmarking-docker-image-registries/</guid>
      <description>Learn how to benchmark Docker registry performance using the Hyperfine CLI tool. A simple way to compare image pull speeds between registries like Artifactory, Harbor, Docker Hub, and Quay.</description>
    </item>
    <item>
      <title>Harvard Negotiation Model</title>
      <link>https://gagor.pro/2025/08/harvard-negotiation-model/</link>
      <pubDate>Sat, 30 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/08/harvard-negotiation-model/</guid>
      <description>Practical guide to the Harvard Negotiation Model - the four principles of principled negotiation, how to use BATNA, responses to common hard-ball tactics, and actionable tips for reaching win‑win agreements in leadership and teams.</description>
    </item>
    <item>
      <title>How to run a Personal User Manual exercise for Team Building</title>
      <link>https://gagor.pro/2025/08/how-to-run-a-personal-user-manual-exercise-for-team-building/</link>
      <pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/08/how-to-run-a-personal-user-manual-exercise-for-team-building/</guid>
      <description>Learn how to run a Personal User Manual exercise with your team to boost connection, improve communication, and foster a positive team culture. Includes a ready-to-use template and practical tips for success.</description>
    </item>
    <item>
      <title>Laws for Every Occasion</title>
      <link>https://gagor.pro/2025/08/laws-for-every-occasion/</link>
      <pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/08/laws-for-every-occasion/</guid>
      <description>Discover the most influential management and productivity &amp;ldquo;laws&amp;rdquo;-from Murphy&amp;rsquo;s Law to Conway&amp;rsquo;s Law-that shape decision-making, leadership, and organizational behavior. Learn practical applications and scientific backgrounds to boost your effectiveness at work.</description>
    </item>
    <item>
      <title>Purge old Cloudflare Pages deployments</title>
      <link>https://gagor.pro/2025/08/purge-old-cloudflare-pages-deployments/</link>
      <pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/08/purge-old-cloudflare-pages-deployments/</guid>
      <description>Learn how to automatically delete old Cloudflare Pages deployments using a Bash script and the Cloudflare API. Keep your account clean and reduce clutter by removing outdated deployments.</description>
    </item>
    <item>
      <title>The 4-hour work week</title>
      <link>https://gagor.pro/book/2025/the-4-hour-work-week/</link>
      <pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/the-4-hour-work-week/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The 4-hour work week by Timothy Ferriss&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The 4-hour work week&lt;/q&gt;&lt;p&gt;Escape 9-5, live anywhere and join the new rich&lt;/p&gt;&lt;p&gt;Author: Timothy Ferriss&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This book&amp;rsquo;s title feels like a joke at first, but once you start reading, you realize Ferriss is absolutely serious about it. He breaks things down step by step, challenging the default assumptions about work and life.&lt;/p&gt;
&lt;p&gt;He defines the &amp;ldquo;New Rich&amp;rdquo; as people who have rediscovered what being rich actually means. Most people grind away day after day, chasing the &amp;ldquo;holy&amp;rdquo; retirement, only to find that when it finally arrives, they&amp;rsquo;re already too old or too tired to enjoy it. They work longer, harder, and more, just to justify not trying a different life. The &amp;ldquo;NR&amp;rdquo; (the New Rich, as he calls them) understand that being rich isn&amp;rsquo;t about having more stuff, but about having the freedom to choose what you do and when you do it. Ferriss suggests using geographical arbitrage-moving to cheaper places where you can live like the rich, often for surprisingly little money. He encourages you not to wait for retirement, but to start taking &amp;ldquo;mini retirements&amp;rdquo; right now, throughout your life.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Antifragile Systems and Teams</title>
      <link>https://gagor.pro/book/2025/antifragile-systems-and-teams/</link>
      <pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/antifragile-systems-and-teams/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Antifragile Systems and Teams by Dave Zwieback&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Antifragile Systems and Teams&lt;/q&gt;&lt;p&gt;Author: Dave Zwieback&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This is a short read, but it does a solid job of capturing an important idea: that the healthiest systems and teams aren’t just resistant to change, they actually get stronger through it. Zwieback contrasts fragile organizations - those that try to lock things down and prevent every possible failure - with antifragile ones, which use volatility, mistakes, and small shocks as opportunities to learn and improve.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting to Yes</title>
      <link>https://gagor.pro/book/2025/getting-to-yes/</link>
      <pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/getting-to-yes/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Getting to Yes by Roger Fisher, William Ury, Bruce Patton&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Getting to Yes&lt;/q&gt;&lt;p&gt;Negotiating an agreement without giving in&lt;/p&gt;&lt;p&gt;Authors: Roger Fisher,  William Ury,  Bruce Patton&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I’ve often heard about the &amp;ldquo;Harvard Negotiation&amp;rdquo; method, but I hadn’t read Getting to Yes until recently. To my surprise, much of the content felt familiar - not because I had read it before, but because I had already been using many of its principles, unknowingly picked up from other sources.&lt;/p&gt;</description>
    </item>
    <item>
      <title>iTerm2 - Hotkeys unavailable - Another app has enabled secure keyboard input</title>
      <link>https://gagor.pro/2025/05/iterm2-hotkeys-unavailable-another-app-has-enabled-secure-keyboard-input/</link>
      <pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/05/iterm2-hotkeys-unavailable-another-app-has-enabled-secure-keyboard-input/</guid>
      <description>Learn how to resolve the &amp;ldquo;Hotkeys unavailable - Another app has enabled secure keyboard input&amp;rdquo; issue in iTerm2 on macOS Sequoia 15.5 by adjusting Input Monitoring settings.</description>
    </item>
    <item>
      <title>Asus TUF Gaming Z790-Plus WIFI - My UEFI/BIOS Settings</title>
      <link>https://gagor.pro/2025/04/asus-tuf-gaming-z790-plus-wifi-my-uefi-bios-settings/</link>
      <pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/04/asus-tuf-gaming-z790-plus-wifi-my-uefi-bios-settings/</guid>
      <description>Learn about the optimal UEFI BIOS settings for the Asus TUF Gaming Z790-Plus WIFI motherboard, including configurations for RAM, power management, virtualization, and more.</description>
    </item>
    <item>
      <title>Jak w kilku krokach Odnaleźć Zespół</title>
      <link>https://gagor.pro/book/2025/odnalezc-zespol/</link>
      <pubDate>Fri, 25 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/odnalezc-zespol/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Jak w kilku krokach Odnaleźć Zespół by Piotr Jankowski&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Jak w kilku krokach Odnaleźć Zespół&lt;/q&gt;&lt;p&gt;Trochę inna opowieść o przywództwie zespołowym&lt;/p&gt;&lt;p&gt;Author: Piotr Jankowski&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I really enjoyed this book, despite it&amp;rsquo;s not widely known or even available to buy, but I&amp;rsquo;ve been working with it&amp;rsquo;s author, Piotr. I was participating few sessions/trainings with Piotr and reading this book was for me like I&amp;rsquo;ve heard him again next to me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Backup from broken NVMe drive with ddrescue</title>
      <link>https://gagor.pro/2025/04/backup-from-broken-nvme-drive-with-ddrescue/</link>
      <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/04/backup-from-broken-nvme-drive-with-ddrescue/</guid>
      <description>Learn how to recover data from a failing NVMe drive using ddrescue on Linux. This guide covers step-by-step backup instructions, handling read errors, and restoring your files safely.</description>
    </item>
    <item>
      <title>Psychologia szefa</title>
      <link>https://gagor.pro/book/2025/psychologia-szefa/</link>
      <pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/psychologia-szefa/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Psychologia szefa by Wojciech Haman, Jerzy Gut&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Psychologia szefa&lt;/q&gt;&lt;p&gt;Szef to zawód&lt;/p&gt;&lt;p&gt;Authors: Wojciech Haman,  Jerzy Gut&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve read many books about leadership, but none quite like this one. The first two chapters followed a familiar pattern-a brief introduction to a manager&amp;rsquo;s responsibilities followed by guidance on planning your approach. Then came the third chapter: Punishment! I was surprised the authors began with this topic rather than motivation or engagement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The First Trading Manual</title>
      <link>https://gagor.pro/book/2025/the-first-trading-manual/</link>
      <pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/the-first-trading-manual/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The First Trading Manual by Tom Hougaard&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The First Trading Manual&lt;/q&gt;&lt;p&gt;Foundation Course and Strategies by Trader Tom&lt;/p&gt;&lt;p&gt;Author: Tom Hougaard&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read &lt;em&gt;The First Trading Manual&lt;/em&gt; by Tom Hougaard in just a couple of days. Lately, I&amp;rsquo;ve been diving into high-frequency trading and exploring algorithmic trading, and this book provides the essential knowledge needed to start trading these instruments. While much of the content was familiar to me, I found it valuable as a practical guide-helping to connect the dots, reinforce key principles, and, most importantly, remind me of &lt;em&gt;what to do and why&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Man Who Broke Capitalism</title>
      <link>https://gagor.pro/book/2025/the-man-who-broke-capitalism/</link>
      <pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/the-man-who-broke-capitalism/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Man Who Broke Capitalism by David Gelles&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Man Who Broke Capitalism&lt;/q&gt;&lt;p&gt;How Jack Welch Gutted the Heartland and Crushed the Soul of Corporate America and How to Undo His Legacy&lt;/p&gt;&lt;p&gt;Author: David Gelles&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;David Gelles’ &lt;em&gt;The Man Who Broke Capitalism&lt;/em&gt; resonated with me on multiple levels, as both an employee and an investor. Working in a company recently acquired by private equity funds, I see firsthand the same profit-maximizing tactics Jack Welch pioneered at General Electric. The relentless drive to squeeze margins, cut costs, and justify layoffs under the guise of efficiency feels eerily familiar. Having just survived my company’s first round of layoffs - an unprecedented event in our history - I can’t help but notice how our use of the &lt;strong&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Vitality_curve&#34;  target=&#34;_blank&#34;&gt;vitality curve&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/strong&gt; mirrors the logic Welch popularized. What once seemed like a system for rewarding performance now feels like a mechanism priming us for workforce reductions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ata1.00: failed command: READ FPDMA QUEUED</title>
      <link>https://gagor.pro/2025/02/ata1.00-failed-command-read-fpdma-queued/</link>
      <pubDate>Mon, 24 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/02/ata1.00-failed-command-read-fpdma-queued/</guid>
      <description>Learn how to resolve the &amp;ldquo;ata1.00: failed command: READ FPDMA QUEUED&amp;rdquo; error on Ubuntu by adjusting SATA power management settings.</description>
    </item>
    <item>
      <title>Getting Started in Chart Patterns</title>
      <link>https://gagor.pro/book/2025/getting-started-in-chart-patterns/</link>
      <pubDate>Mon, 27 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/getting-started-in-chart-patterns/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Getting Started in Chart Patterns by Thomas N. Bulkowski&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Getting Started in Chart Patterns&lt;/q&gt;&lt;p&gt;Author: Thomas N. Bulkowski&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Lately, I&amp;rsquo;ve been focused on improving my skills as an investor and trader. While the past year was one of my best, I still underperformed compared to the broader market-meaning I didn’t make the most of the opportunities available. Some of my biggest mistakes included failing to set stop losses after dividend payouts, only to watch those stocks drop and leave me with unnecessary losses. I also lacked a solid exit strategy, often holding onto trades far longer than I should have.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Best Loser Wins</title>
      <link>https://gagor.pro/book/2025/best-loser-wins/</link>
      <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2025/best-loser-wins/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Best Loser Wins by Tom Hougaard&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Best Loser Wins&lt;/q&gt;&lt;p&gt;Why Normal Thinking Never Wins the Trading Game - Written by a High-Stake Day Trader&lt;/p&gt;&lt;p&gt;Author: Tom Hougaard&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Tom Hougaard’s &amp;ldquo;Best Loser Wins&amp;rdquo; offers a refreshingly honest look at the realities of trading. It’s not a traditional &amp;ldquo;how-to&amp;rdquo; guide packed with technical analysis or a magic formula for success. Instead, it’s an introspective journey of a trader, highlighting the mindset and discipline required to navigate the often unforgiving world of financial markets.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Efficient Dockerfile templating for complex build scenarios</title>
      <link>https://gagor.pro/2025/01/efficient-dockerfile-templating-for-complex-build-scenarios/</link>
      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2025/01/efficient-dockerfile-templating-for-complex-build-scenarios/</guid>
      <description>&lt;h2 id=&#34;why-even-consider-templating-dockerfiles&#34;&gt;Why even consider templating Dockerfiles?&lt;/h2&gt;
&lt;p&gt;Dockerfiles revolutionized the industry with their simplicity. Each instruction creates a new layer in the image, which is automatically cached. This process integrates well with SCM, where you &amp;ldquo;commit&amp;rdquo; the results of one stage and move forward with other changes. The process can be easily parameterized with &lt;code&gt;ARG&lt;/code&gt; instructions, similar to &lt;code&gt;ENV&lt;/code&gt; but provided during the build. This allows for creating highly flexible builds. For most users, this is more than sufficient. However, there&amp;rsquo;s a notable exception: Docker base images.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Crowd</title>
      <link>https://gagor.pro/book/2024/the-crowd/</link>
      <pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/the-crowd/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Crowd by Gustave Le Bon&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Crowd&lt;/q&gt;&lt;p&gt;A Study of the Popular Mind&lt;/p&gt;&lt;p&gt;Author: Gustave Le Bon&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Gustave Le Bon’s &amp;ldquo;The Crowd - A Study of the Popular Mind&amp;rdquo; is often hailed as a classic exploration of crowd psychology, but for me, it fell short of expectations. While it does delve into the dynamics of how crowds think and act, it focuses more on describing their irrationality and susceptibility to influence rather than offering practical insights on managing or guiding them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Turn the Ship Around!</title>
      <link>https://gagor.pro/book/2024/turn-the-ship-around/</link>
      <pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/turn-the-ship-around/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Turn the Ship Around! by L. David Marquet&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Turn the Ship Around!&lt;/q&gt;&lt;p&gt;A True Story of Building Leaders by Breaking the Rules&lt;/p&gt;&lt;p&gt;Author: L. David Marquet&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;If you&amp;rsquo;re too lazy (or busy &amp;#x1f609;) to read the book, check video below:&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/IzJL8zX3EVk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;It provides the core information, that in depth is described in the book.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Should Anyone Be Led by You?</title>
      <link>https://gagor.pro/book/2024/why-should-anyone-be-led-by-you/</link>
      <pubDate>Mon, 16 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/why-should-anyone-be-led-by-you/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Why Should Anyone Be Led by You? by Rob Goffee, Gareth Jones&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Why Should Anyone Be Led by You?&lt;/q&gt;&lt;p&gt;What It Takes to Be an Authentic Leader&lt;/p&gt;&lt;p&gt;Authors: Rob Goffee,  Gareth Jones&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The book explores the concept of &amp;ldquo;authentic leadership&amp;rdquo; across different levels of personal and professional development. Unlike many leadership books that focus solely on top-level executives like CEOs or CTOs, this one avoids glorifying their paths, which often stem from unique circumstances or luck-factors that are difficult to replicate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix &#39;Cannot Rebase Onto Multiple Branches&#39; error once and for all</title>
      <link>https://gagor.pro/2024/05/fix-cannot-rebase-onto-multiple-branches-error-once-and-for-all/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/05/fix-cannot-rebase-onto-multiple-branches-error-once-and-for-all/</guid>
      <description>&lt;h2 id=&#34;a-guide-to-using-git-pull---rebase-effectively&#34;&gt;A Guide to using &lt;code&gt;git pull --rebase&lt;/code&gt; effectively&lt;/h2&gt;
&lt;p&gt;Using &lt;code&gt;git pull --rebase&lt;/code&gt; as your default merge strategy offers several benefits, particularly in maintaining a clean and linear commit history, which can simplify collaboration and code review. However, you may occasionally encounter the error &lt;em&gt;&amp;ldquo;Cannot rebase onto multiple branches&amp;rdquo;&lt;/em&gt;. This article explains why this happens and provides a solution to make &lt;code&gt;git pull --rebase&lt;/code&gt; work seamlessly.&lt;/p&gt;
&lt;h3 id=&#34;benefits-of-git-pull---rebase&#34;&gt;Benefits of &lt;code&gt;git pull --rebase&lt;/code&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Linear History&lt;/strong&gt;: Rebasing applies your local commits on top of the upstream changes, creating a straight line of commits without unnecessary merge commits. This makes the project history easier to read and understand.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Remove password from PDF documents</title>
      <link>https://gagor.pro/2024/05/remove-password-from-pdf-documents/</link>
      <pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/05/remove-password-from-pdf-documents/</guid>
      <description>Learn how to remove passwords from PDF documents using the qpdf tool on Linux, making it easier to read protected files on devices like the Pocketbook Touch HD.</description>
    </item>
    <item>
      <title>The Art of Being Right</title>
      <link>https://gagor.pro/book/2024/the-art-of-being-right/</link>
      <pubDate>Mon, 20 May 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/the-art-of-being-right/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Art of Being Right by Artur Schopenhauer&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Art of Being Right&lt;/q&gt;&lt;p&gt;38 Ways to Win an Argument&lt;/p&gt;&lt;p&gt;Author: Artur Schopenhauer&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&amp;ldquo;The Art of Being Right&amp;rdquo; by Arthur Schopenhauer is an interesting exploration of rhetoric and the art of winning arguments. In this work, Schopenhauer outlines 38 stratagems for convincing opponents and prevailing in debates, often irrespective of the truth. His analysis is rooted in the belief that people are more interested in winning arguments than seeking truth.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimizing Hugo Sitemaps to prioritize posts crawling over taxonomies</title>
      <link>https://gagor.pro/2024/05/optimizing-hugo-sitemaps-to-prioritize-posts-crawling-over-taxonomies/</link>
      <pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/05/optimizing-hugo-sitemaps-to-prioritize-posts-crawling-over-taxonomies/</guid>
      <description>Learn how to optimize your Hugo site&amp;rsquo;s sitemap by adjusting priority and change frequency settings to improve SEO and guide search engine crawlers effectively.</description>
    </item>
    <item>
      <title>Nostalgy for old RPG games</title>
      <link>https://gagor.pro/2024/04/nostalgy-for-old-rpg-games/</link>
      <pubDate>Mon, 29 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/04/nostalgy-for-old-rpg-games/</guid>
      <description>Reflect on the nostalgia of playing classic RPG games like Ice Wind Dale and Baldur&amp;rsquo;s Gate, and the immersive experiences they provided.</description>
    </item>
    <item>
      <title>Rising costs of running legacy Amazon RDS systems</title>
      <link>https://gagor.pro/2024/04/rising-costs-of-running-legacy-amazon-rds-systems/</link>
      <pubDate>Sat, 27 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/04/rising-costs-of-running-legacy-amazon-rds-systems/</guid>
      <description>Understand the rising costs of maintaining legacy Amazon RDS systems and explore the new RDS Extended Support option for MySQL and PostgreSQL.</description>
    </item>
    <item>
      <title>Create a Virtual Bookshelf with Hugo and PaperMod</title>
      <link>https://gagor.pro/2024/04/create-a-virtual-bookshelf-with-hugo-and-papermod/</link>
      <pubDate>Fri, 26 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/04/create-a-virtual-bookshelf-with-hugo-and-papermod/</guid>
      <description>Learn how to create a virtual bookshelf on your Hugo site using the PaperMod theme, allowing you to organize and share your reading list with ease.</description>
    </item>
    <item>
      <title>The Culture Map</title>
      <link>https://gagor.pro/book/2024/the-culture-map/</link>
      <pubDate>Wed, 24 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/the-culture-map/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Culture Map by Erin Meyer&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Culture Map&lt;/q&gt;&lt;p&gt;Breaking Through the Invisible Boundaries of Global Business&lt;/p&gt;&lt;p&gt;Author: Erin Meyer&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&amp;ldquo;The Culture Map: Breaking Through the Invisible Boundaries of Global Business&amp;rdquo; by Erin Meyer is a highly insightful guide that explores how cultural differences impact international business interactions. Meyer presents a framework for understanding and navigating cultural complexities by examining various dimensions of communication, leadership, and etiquette across different countries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rewired</title>
      <link>https://gagor.pro/book/2024/rewired/</link>
      <pubDate>Tue, 23 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/rewired/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Rewired by Eric Lamarre, Kate Smaje, Rodney Zemmel&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Rewired&lt;/q&gt;&lt;p&gt;The McKinsey Guide to Outcompeting in the Age of Digital and AI&lt;/p&gt;&lt;p&gt;Authors: Eric Lamarre,  Kate Smaje,  Rodney Zemmel&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve heard a lot of strange things about McKinsey, starting with this parody commercial:&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/4Cy0vYKI6_Y?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

&lt;p&gt;Then few more facts, but still provided in an amusing way by the John Oliver:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Oracle Instant Client on Ubuntu 24.04</title>
      <link>https://gagor.pro/2024/04/installing-oracle-instant-client-on-ubuntu-24.04/</link>
      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/04/installing-oracle-instant-client-on-ubuntu-24.04/</guid>
      <description>Learn how to install Oracle Instant Client on Ubuntu 24.04 using both recommended and alternative methods, with a focus on Docker images.</description>
    </item>
    <item>
      <title>Automatically setting &#39;lastmod&#39; in Hugo pages with Git modification date</title>
      <link>https://gagor.pro/2024/03/automatically-setting-lastmod-in-hugo-pages-with-git-modification-date/</link>
      <pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/automatically-setting-lastmod-in-hugo-pages-with-git-modification-date/</guid>
      <description>Learn how to automatically set the &amp;rsquo;lastmod&amp;rsquo; parameter in Hugo pages using Git modification dates to improve SEO and expedite search engine indexing.</description>
    </item>
    <item>
      <title>How old are Official Docker images? 2024 Edition</title>
      <link>https://gagor.pro/2024/03/how-old-are-official-docker-images-2024-edition/</link>
      <pubDate>Sun, 24 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/how-old-are-official-docker-images-2024-edition/</guid>
      <description>Discover the current age and update status of various official Docker images, including CentOS, Ubuntu, and Debian, in the 2024 edition of this analysis.</description>
    </item>
    <item>
      <title>Zed Code Editor as an Atom reincarnation</title>
      <link>https://gagor.pro/2024/03/zed-code-editor-as-an-atom-reincarnation/</link>
      <pubDate>Tue, 19 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/zed-code-editor-as-an-atom-reincarnation/</guid>
      <description>Discover how Zed, a fast and efficient code editor built in Rust, aims to recapture the essence of Atom, with a focus on speed and customization.</description>
    </item>
    <item>
      <title>Best practices for writing Dockerfiles - Follow &#34;Filesystem Hierarchy Standard&#34;</title>
      <link>https://gagor.pro/2024/03/best-practices-for-writing-dockerfiles-follow-filesystem-hierarchy-standard/</link>
      <pubDate>Mon, 11 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/best-practices-for-writing-dockerfiles-follow-filesystem-hierarchy-standard/</guid>
      <description>Learn best practices for writing Dockerfiles by following the Filesystem Hierarchy Standard (FHS) to enhance organization and maintainability of your Docker images.</description>
    </item>
    <item>
      <title>Monetize your blog with Ko-fi shortcodes for Hugo sites</title>
      <link>https://gagor.pro/2024/03/monetize-your-blog-with-ko-fi-shortcodes-for-hugo-sites/</link>
      <pubDate>Fri, 08 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/monetize-your-blog-with-ko-fi-shortcodes-for-hugo-sites/</guid>
      <description>Learn how to monetize your Hugo blog with custom Ko-fi shortcodes, allowing readers to support your work through voluntary contributions.</description>
    </item>
    <item>
      <title>The power of extensive command history in Bash and Zsh</title>
      <link>https://gagor.pro/2024/03/the-power-of-extensive-command-history-in-bash-and-zsh/</link>
      <pubDate>Tue, 05 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/the-power-of-extensive-command-history-in-bash-and-zsh/</guid>
      <description>Learn how to leverage extensive command history in Bash and Zsh to improve your efficiency and productivity in the terminal.</description>
    </item>
    <item>
      <title>Optimizing Hugo static site redirects with Cloudflare Pages</title>
      <link>https://gagor.pro/2024/03/optimizing-hugo-static-site-redirects-with-cloudflare-pages/</link>
      <pubDate>Mon, 04 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/optimizing-hugo-static-site-redirects-with-cloudflare-pages/</guid>
      <description>Learn how to optimize Hugo static site redirects using Cloudflare Pages, overcoming limitations of GitHub Pages and Cloudflare Free plan.</description>
    </item>
    <item>
      <title>SEO kicks my stats</title>
      <link>https://gagor.pro/2024/03/seo-kicks-my-stats/</link>
      <pubDate>Sun, 03 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/seo-kicks-my-stats/</guid>
      <description>Explore the impact of domain changes on SEO performance and traffic, and learn strategies to improve international visibility with multilingual content.</description>
    </item>
    <item>
      <title>Automatic updates of Docker images with Renovate Bot</title>
      <link>https://gagor.pro/2024/03/automatic-updates-of-docker-images-with-renovate-bot/</link>
      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/03/automatic-updates-of-docker-images-with-renovate-bot/</guid>
      <description>Learn how to automate Docker image updates using Renovate Bot, a versatile tool that supports various package managers and custom dependency links.</description>
    </item>
    <item>
      <title>Błękitna kropka</title>
      <link>https://gagor.pro/book/2024/blekitna-kropka/</link>
      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/blekitna-kropka/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Błękitna kropka by Carl Sagan&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Błękitna kropka&lt;/q&gt;&lt;p&gt;Człowiek i jego przyszłość w kosmosie&lt;/p&gt;&lt;p&gt;Author: Carl Sagan&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I love science and I&amp;rsquo;m passionate about cosmos since I was 5. One of my favourite books from the childhood was the one about Universe - with color pictures. This one is a sweet reminder of those ancient times and have even better pictures!&lt;/p&gt;
&lt;!-- Drop a picture here --&gt;
&lt;p&gt;There is an interesting reference to the deities and their relation to the planets. Their impact on humanities history, then a swift dive into the place of the God in &amp;ldquo;our&amp;rdquo; universe. Statistical considerations of human being &amp;ldquo;the choosen one&amp;rdquo; by God. I didn&amp;rsquo;t expect it in a book like that, but it resonated the strings inside me. I really enjoyed this part.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Blindsight</title>
      <link>https://gagor.pro/book/2024/blindsight/</link>
      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/blindsight/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Blindsight by Peter Watts&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Blindsight&lt;/q&gt;&lt;p&gt;Author: Peter Watts&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Still reading&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adding Mermaid diagrams to Hugo</title>
      <link>https://gagor.pro/2024/02/adding-mermaid-diagrams-to-hugo/</link>
      <pubDate>Sun, 25 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/02/adding-mermaid-diagrams-to-hugo/</guid>
      <description>Learn how to add and optimize Mermaid diagrams in Hugo, enhancing your static site with dynamic and interactive diagrams.</description>
    </item>
    <item>
      <title>How I stopped worrying and loved Makefiles</title>
      <link>https://gagor.pro/2024/02/how-i-stopped-worrying-and-loved-makefiles/</link>
      <pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/02/how-i-stopped-worrying-and-loved-makefiles/</guid>
      <description>Learn how to use Makefiles to streamline your Terraform and Hugo projects, making environment management and static site generation more efficient.</description>
    </item>
    <item>
      <title>Best practices for patching and deprecating Docker images</title>
      <link>https://gagor.pro/2024/02/best-practices-for-patching-and-deprecating-docker-images/</link>
      <pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/02/best-practices-for-patching-and-deprecating-docker-images/</guid>
      <description>Learn the best practices for patching and deprecating Docker images to maintain security and stability in your DevOps workflows.</description>
    </item>
    <item>
      <title>How to run x86-64 Docker images on Apple&#39;s MacBook with M1/M2/M3 CPU</title>
      <link>https://gagor.pro/2024/02/how-to-run-x86-64-docker-images-on-apples-macbook-with-m1/m2/m3-cpu/</link>
      <pubDate>Tue, 06 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/02/how-to-run-x86-64-docker-images-on-apples-macbook-with-m1/m2/m3-cpu/</guid>
      <description>Learn how to run x86-64 Docker images on Apple&amp;rsquo;s MacBook with M1/M2/M3 CPUs by setting the DOCKER_DEFAULT_PLATFORM environment variable.</description>
    </item>
    <item>
      <title>Extreme Ownership</title>
      <link>https://gagor.pro/book/2024/extreme-ownership/</link>
      <pubDate>Mon, 05 Feb 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/extreme-ownership/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Extreme Ownership by Jocko Willink, Leif Babin&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Extreme Ownership&lt;/q&gt;&lt;p&gt;How U.S. Navy SEALs Lead and Win&lt;/p&gt;&lt;p&gt;Authors: Jocko Willink,  Leif Babin&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The book is a compelling and practical leadership guide co-authored by Jocko Willink and Leif Babin, both former Navy SEAL officers. The book revolves around the central theme of taking absolute responsibility for every aspect of one&amp;rsquo;s life and leadership role. Through gripping combat stories from their SEAL experiences, the authors illustrate key principles such as accountability, decisiveness, and humility.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My pre-commit config for Hugo blog</title>
      <link>https://gagor.pro/2024/01/my-pre-commit-config-for-hugo-blog/</link>
      <pubDate>Mon, 29 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/my-pre-commit-config-for-hugo-blog/</guid>
      <description>Learn how to set up and use pre-commit hooks to automate tasks like linting, syntax checks, and optimizations for your Hugo blog.</description>
    </item>
    <item>
      <title>Tuning PipeWire for best audio quality on Ubuntu</title>
      <link>https://gagor.pro/2024/01/tuning-pipewire-for-best-audio-quality-on-ubuntu/</link>
      <pubDate>Sun, 28 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/tuning-pipewire-for-best-audio-quality-on-ubuntu/</guid>
      <description>Learn how to tune PipeWire for the best audio quality on Ubuntu, ensuring optimal sound performance for your Linux system.</description>
    </item>
    <item>
      <title>Git hacks - a set of my favorite git aliases</title>
      <link>https://gagor.pro/2024/01/git-hacks-a-set-of-my-favorite-git-aliases/</link>
      <pubDate>Sat, 27 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/git-hacks-a-set-of-my-favorite-git-aliases/</guid>
      <description>&lt;p&gt;I use Git a lot, even writing this article i will commit text few times. There&amp;rsquo;s a set of aliases I rely on daily and they&amp;rsquo;re first I add in new place.&lt;/p&gt;
&lt;p&gt;Some Git commands are unnecessarily verbose. You can make your life much easier with &lt;code&gt;bash-completions&lt;/code&gt;, but if you write it tens of times per day, it&amp;rsquo;s anyway a lot of typing&amp;hellip; and I&amp;rsquo;m a lazy man &amp;#x1f604;&lt;/p&gt;
&lt;h2 id=&#34;simple-statuslog-checks&#34;&gt;Simple status/log checks&lt;/h2&gt;
&lt;h3 id=&#34;git-s&#34;&gt;&lt;strong&gt;git s&lt;/strong&gt;&lt;/h3&gt;
&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;  s &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; status --short --branch --untracked-files
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Shows a short, branch-focused status with untracked files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking compressed size of Docker image</title>
      <link>https://gagor.pro/2024/01/checking-compressed-size-of-docker-image/</link>
      <pubDate>Wed, 24 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/checking-compressed-size-of-docker-image/</guid>
      <description>Learn how to check the compressed size of Docker images to optimize download and startup times, using a simple bash function for accurate measurements.</description>
    </item>
    <item>
      <title>How to interview DevOps candidates?</title>
      <link>https://gagor.pro/2024/01/how-to-interview-devops-candidates/</link>
      <pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/how-to-interview-devops-candidates/</guid>
      <description>Learn effective strategies for interviewing DevOps candidates, including practical exercises and review-based assessments to evaluate their skills and fit.</description>
    </item>
    <item>
      <title>Working Backwards</title>
      <link>https://gagor.pro/book/2024/working-backwards/</link>
      <pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2024/working-backwards/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Working Backwards by Colin Bryar&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Working Backwards&lt;/q&gt;&lt;p&gt;Insights, Stories, and Secrets from Inside Amazon&lt;/p&gt;&lt;p&gt;Author: Colin Bryar&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This book is all about the &lt;a href=&#34;https://www.amazon.jobs/content/en/our-workplace/leadership-principles&#34;  target=&#34;_blank&#34;&gt;&amp;ldquo;Amazon Leadership Principles&amp;rdquo;&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
. They are the core values that drive the behavior of leaders and, consequently, all employees in the organization.&lt;/p&gt;
&lt;p&gt;They were built when the company was scaling rapidly and it was no longer possible to rely on the CEO as the sole source of values and direction. Other leaders had to adopt the same behaviors and set the same expectations to keep the company cohesive.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to give Probation Period feedback?</title>
      <link>https://gagor.pro/2024/01/how-to-give-probation-period-feedback/</link>
      <pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/how-to-give-probation-period-feedback/</guid>
      <description>Learn effective strategies for giving probation period feedback to new hires, ensuring clear communication and alignment within the team.</description>
    </item>
    <item>
      <title>Ładne kwiatki</title>
      <link>https://gagor.pro/2024/01/ladne-kwiatki/</link>
      <pubDate>Sun, 14 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/ladne-kwiatki/</guid>
      <description>Dowiedz się, jak pielęgnować rośliny doniczkowe, takie jak storczyki, skrzydłokwiaty i fikusy, aby zapewnić im zdrowy wzrost i piękny wygląd.</description>
    </item>
    <item>
      <title>Maximizing page performance and security with Cloudflare tuning</title>
      <link>https://gagor.pro/2024/01/maximizing-page-performance-and-security-with-cloudflare-tuning/</link>
      <pubDate>Thu, 11 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/maximizing-page-performance-and-security-with-cloudflare-tuning/</guid>
      <description>Learn how to maximize page performance and security by tuning Cloudflare settings, specifically for a statically generated blog hosted on GitHub Pages.</description>
    </item>
    <item>
      <title>New Year&#39;s reflections and Leadership path</title>
      <link>https://gagor.pro/2024/01/new-years-reflections-and-leadership-path/</link>
      <pubDate>Wed, 10 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/new-years-reflections-and-leadership-path/</guid>
      <description>Reflect on the journey of becoming a Team Lead, balancing technical work with leadership responsibilities, and exploring new ways to solve problems.</description>
    </item>
    <item>
      <title>How to run Google Tasks in separate browser tab?</title>
      <link>https://gagor.pro/2024/01/how-to-run-google-tasks-in-separate-browser-tab/</link>
      <pubDate>Tue, 02 Jan 2024 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2024/01/how-to-run-google-tasks-in-separate-browser-tab/</guid>
      <description>Learn how to run Google Tasks in a separate browser tab for better task management and integration with Gmail and Calendar.</description>
    </item>
    <item>
      <title>How to run Zwift in full screen</title>
      <link>https://gagor.pro/2023/12/how-to-run-zwift-in-full-screen/</link>
      <pubDate>Thu, 28 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2023/12/how-to-run-zwift-in-full-screen/</guid>
      <description>Learn how to run Zwift in full screen mode on Windows, eliminating the windowed mode&amp;rsquo;s start menu and title bar for a more immersive experience.</description>
    </item>
    <item>
      <title>Changing comments provider for my blog</title>
      <link>https://gagor.pro/2023/12/changing-comments-provider-for-my-blog/</link>
      <pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2023/12/changing-comments-provider-for-my-blog/</guid>
      <description>Explore the process of switching comments provider for a Hugo blog, comparing Disqus, Utterances, and Giscus for better user engagement and ad-free experience.</description>
    </item>
    <item>
      <title>The 48 Laws of Power</title>
      <link>https://gagor.pro/book/2023/the-48-laws-of-power/</link>
      <pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/the-48-laws-of-power/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The 48 Laws of Power by Robert Greene&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The 48 Laws of Power&lt;/q&gt;&lt;p&gt;Author: Robert Greene&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;The 48 Laws of Power&lt;/em&gt; by Robert Greene is a controversial yet widely read book on strategy, influence, and manipulation. It presents historical examples to illustrate how power operates in different settings, from politics to business and beyond. While some readers treat it as a guide for personal success, others see it as a cautionary analysis of how power-hungry individuals operate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use Github with SSH on port 443</title>
      <link>https://gagor.pro/2023/12/use-github-with-ssh-on-port-443/</link>
      <pubDate>Tue, 26 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2023/12/use-github-with-ssh-on-port-443/</guid>
      <description>Learn how to use GitHub with SSH on port 443 to bypass firewall restrictions and ensure seamless repository access.</description>
    </item>
    <item>
      <title>How to Win Friends &amp; Influence People</title>
      <link>https://gagor.pro/book/2023/how-to-win-friends-and-influence-people/</link>
      <pubDate>Thu, 14 Dec 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/how-to-win-friends-and-influence-people/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book How to Win Friends &amp;amp; Influence People by Carnegie Dale&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;How to Win Friends &amp;amp; Influence People&lt;/q&gt;&lt;p&gt;Author: Carnegie Dale&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The book is written in a typical American style - &amp;ldquo;do this and that, and your life will change forever&amp;hellip;&amp;rdquo; &amp;#x1f604;&lt;/p&gt;
&lt;p&gt;Applying the book&amp;rsquo;s rules too bluntly may come off as manipulative, and our conversation partner will sense it. However, it&amp;rsquo;s worth considering certain mistakes that make it difficult for us to interact with people, such as when we talk too much and don&amp;rsquo;t let others get a word in.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lider w trampkach</title>
      <link>https://gagor.pro/book/2023/lider-w-trampkach/</link>
      <pubDate>Sun, 22 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/lider-w-trampkach/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Lider w trampkach by Małgorzata Jakubicz&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Lider w trampkach&lt;/q&gt;&lt;p&gt;Czyli jak być przywódcą w zgodzie ze sobą&lt;/p&gt;&lt;p&gt;Author: Małgorzata Jakubicz&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Taka praca nie ma sensu</title>
      <link>https://gagor.pro/book/2023/taka-praca-nie-ma-sensu/</link>
      <pubDate>Sat, 21 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/taka-praca-nie-ma-sensu/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Taka praca nie ma sensu by Tony Schwartz&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Taka praca nie ma sensu&lt;/q&gt;&lt;p&gt;Czyli jak zarządzać swoją energią&lt;/p&gt;&lt;p&gt;Author: Tony Schwartz&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;To ciekawa książka, którą o dziwo przeczytałem do końca. Miałem wrażenie, że trochę przeskakuje z tematu na temat, ale pasuje mi to. Czytałem wiele książek szczegółowo opisujących &amp;ldquo;ten jeden sposób&amp;rdquo; by rozwiązać wszystkie problemy świata. Ta kompletuje różne pomysły i idee, miksuje i całkiem przyjemnie uogólnia.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Collaborating with the Enemy</title>
      <link>https://gagor.pro/book/2023/collaborating-with-the-enemy/</link>
      <pubDate>Mon, 09 Oct 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/collaborating-with-the-enemy/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Collaborating with the Enemy by Adam Kahane&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Collaborating with the Enemy&lt;/q&gt;&lt;p&gt;How to Work with People You Don&amp;rsquo;t Agree with or Like or Trust&lt;/p&gt;&lt;p&gt;Author: Adam Kahane&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;In this book the author, Adam Kahane, presents several key concepts to help individuals navigate collaboration with people they may not agree with, like, or trust. Here are some of the main concepts from the book:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Embracing Discomfort:&lt;/strong&gt; Kahane emphasizes the importance of stepping outside one&amp;rsquo;s comfort zone when working with people with differing perspectives. Embracing discomfort allows individuals to open up to new ideas and find common ground.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Legendarna obsługa klienta</title>
      <link>https://gagor.pro/book/2023/legendarna-obsluga-klienta/</link>
      <pubDate>Fri, 15 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/legendarna-obsluga-klienta/</guid>
      <description>&lt;!-- &lt;figure class=&#34;align-center &#34;&gt;&lt;a href=&#34;https://www.empik.com/legendarna-obsluga-klienta-troska-jest-najwazniejsza-blanchard-ken-halsey-vicki-cuff-kathy,p1118921069,ksiazka-p&#34; target=&#34;_blank&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp#center&#34; height=&#34;270&#34;/&gt; &lt;/a&gt;&lt;figcaption&gt;
            &lt;p&gt;Source: empik.com&lt;/p&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;
 --&gt;


&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Legendarna obsługa klienta by Blanchard Ken, Halsey Vicki, Cuff Kathy&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Legendarna obsługa klienta&lt;/q&gt;&lt;p&gt;Troska jest najważniejsza&lt;/p&gt;&lt;p&gt;Authors: Blanchard Ken,  Halsey Vicki,  Cuff Kathy&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>The Effective Manager: Second Edition</title>
      <link>https://gagor.pro/book/2023/the-effective-manager-second-edition/</link>
      <pubDate>Thu, 17 Aug 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/the-effective-manager-second-edition/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Effective Manager: Second Edition by Mark Horstman, Kate Braun, Sarah Sentes&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Effective Manager: Second Edition&lt;/q&gt;&lt;p&gt;Completely Revised and Updated&lt;/p&gt;&lt;p&gt;Authors: Mark Horstman,  Kate Braun,  Sarah Sentes&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The Effective Manager by Mark Horstman is a practical guide to great management at every level. Based on the author&amp;rsquo;s experience and the world&amp;rsquo;s number-one business podcast, Manager Tools, the book teaches four critical behaviors and four major tools that every manager should use. Here are some of the main concepts presented in the book:&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Effective Manager</title>
      <link>https://gagor.pro/book/2023/the-effective-manager/</link>
      <pubDate>Tue, 23 May 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/the-effective-manager/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Effective Manager by Mark Horstman&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Effective Manager&lt;/q&gt;&lt;p&gt;Author: Mark Horstman&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve borrowed this one and I liked it so I bought &lt;a href=&#34;https://gagor.pro/book/2023/the-effective-manager-second-edition/&#34; &gt;Second Edition&lt;/a&gt;
. Look for summary there.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The best way to get NVM working in CI/CD systems</title>
      <link>https://gagor.pro/2023/04/the-best-way-to-get-nvm-working-in-ci-cd-systems/</link>
      <pubDate>Tue, 25 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2023/04/the-best-way-to-get-nvm-working-in-ci-cd-systems/</guid>
      <description>Learn the best way to get NVM (Node Version Manager) working in CI/CD systems, ensuring seamless Node.js version management in your DevOps workflows.</description>
    </item>
    <item>
      <title>Nowy jednominutowy menedżer</title>
      <link>https://gagor.pro/book/2023/nowy-jednominutowy-menedzer/</link>
      <pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/nowy-jednominutowy-menedzer/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Nowy jednominutowy menedżer by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Nowy jednominutowy menedżer&lt;/q&gt;&lt;p&gt;Authors: Blanchard Ken,  Spencer Johnson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>The Psychology of Money</title>
      <link>https://gagor.pro/book/2023/the-psychology-of-money/</link>
      <pubDate>Sun, 02 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/the-psychology-of-money/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover-en.webp&#34;
         alt=&#34;Cover of book The Psychology of Money by Morgan Housel&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Psychology of Money&lt;/q&gt;&lt;p&gt;Timeless lessons on wealth, greed, and happiness&lt;/p&gt;&lt;p&gt;Author: Morgan Housel&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I actually read a Polish version:&lt;/p&gt;


&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Psychologia pieniędzy by Morgan Housel&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Psychologia pieniędzy&lt;/q&gt;&lt;p&gt;Ponadczasowe lekcje o bogactwie, chciwości i szczęściu&lt;/p&gt;&lt;p&gt;Author: Morgan Housel&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;As an amateur investor for a few years now, I&amp;rsquo;ve had my share of ups and downs. It&amp;rsquo;s a journey of constant learning, and Morgan Housel&amp;rsquo;s &amp;ldquo;The Psychology of Money&amp;rdquo; is one of those books I wish I had read right at the start. It’s a fantastic guide for anyone beginning their investment journey because it sets realistic expectations and helps you understand that your mindset is just as important as your strategy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change configuration of Docker daemon in Rancher Desktop</title>
      <link>https://gagor.pro/2023/03/change-configuration-of-docker-daemon-in-rancher-desktop/</link>
      <pubDate>Thu, 23 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2023/03/change-configuration-of-docker-daemon-in-rancher-desktop/</guid>
      <description>Learn how to change the configuration of the Docker daemon in Rancher Desktop on MacOS, enabling experimental features and BuildKit for enhanced functionality.</description>
    </item>
    <item>
      <title>Who Moved My Cheese?</title>
      <link>https://gagor.pro/book/2023/who-moved-my-cheese/</link>
      <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/who-moved-my-cheese/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Who Moved My Cheese? by Spencer Johnson&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Who Moved My Cheese?&lt;/q&gt;&lt;p&gt;An Amazing Way to Deal With Change in Your Work and in Your Life&lt;/p&gt;&lt;p&gt;Author: Spencer Johnson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Rycerz nieistniejący</title>
      <link>https://gagor.pro/book/2023/rycerz-nieistniejacy/</link>
      <pubDate>Thu, 02 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/rycerz-nieistniejacy/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Rycerz nieistniejący by Calvino Italo&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Rycerz nieistniejący&lt;/q&gt;&lt;p&gt;Author: Calvino Italo&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Przywództwo i oszukiwanie samego siebie</title>
      <link>https://gagor.pro/book/2023/przywodztwo-i-oszukiwanie-samego-siebie/</link>
      <pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/przywodztwo-i-oszukiwanie-samego-siebie/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Przywództwo i oszukiwanie samego siebie by Praca zbiorowa&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Przywództwo i oszukiwanie samego siebie&lt;/q&gt;&lt;p&gt;Jak uwolnić się z pułapki uprzedzeń&lt;/p&gt;&lt;p&gt;Author: Praca zbiorowa&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Praca głęboka</title>
      <link>https://gagor.pro/book/2023/praca-gleboka/</link>
      <pubDate>Fri, 13 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2023/praca-gleboka/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Praca głęboka by Cal Newport&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Praca głęboka&lt;/q&gt;&lt;p&gt;Jak odnieść sukces w świecie, w którym ciągle coś nas rozprasza&lt;/p&gt;&lt;p&gt;Author: Cal Newport&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Deep Work is a book written by Cal Newport that explores the concept of deep work and how it can be leveraged to achieve professional success and lead a more fulfilling life. Newport argues that in an increasingly connected and fast-paced world, the ability to focus and produce high-quality work is becoming increasingly valuable and rare. He provides practical strategies and tools for developing the discipline of deep work, including minimizing distractions, optimizing your work environment, and training your mind to focus.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zaczynaj od DLACZEGO</title>
      <link>https://gagor.pro/book/2022/zaczynaj-od-dlaczego/</link>
      <pubDate>Thu, 01 Dec 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/zaczynaj-od-dlaczego/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Zaczynaj od DLACZEGO by Simon Sinek&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Zaczynaj od DLACZEGO&lt;/q&gt;&lt;p&gt;Jak wielcy liderzy inspirują innych do działania&lt;/p&gt;&lt;p&gt;Author: Simon Sinek&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Pięć dysfunkcji pracy zespołowej</title>
      <link>https://gagor.pro/book/2022/piec-dysfunkcji-pracy-zespolowej/</link>
      <pubDate>Tue, 22 Nov 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/piec-dysfunkcji-pracy-zespolowej/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Pięć dysfunkcji pracy zespołowej by Patrick M. Lencioni&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Pięć dysfunkcji pracy zespołowej&lt;/q&gt;&lt;p&gt;Opowieść o przywództwie&lt;/p&gt;&lt;p&gt;Author: Patrick M. Lencioni&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Starość aksolotla</title>
      <link>https://gagor.pro/book/2022/starosc-aksolotla/</link>
      <pubDate>Mon, 21 Nov 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/starosc-aksolotla/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Starość aksolotla by Jacek Dukaj&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Starość aksolotla&lt;/q&gt;&lt;p&gt;Hardware dreams&lt;/p&gt;&lt;p&gt;Author: Jacek Dukaj&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Starość Aksolotla is a book written by Polish author Jacek Dukaj that I recently had the pleasure of reading. The book is a science fiction novel that explores themes of longevity, immortality, and the meaning of life. The protagonist of the story is a centuries-old axolotl, a species of salamander that is capable of regenerating its limbs and organs, who embarks on a journey of self-discovery as he grapples with the consequences of his own immortality.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Błądzą wszyscy (ale nie ja)</title>
      <link>https://gagor.pro/book/2022/bladza-wszyscy-ale-nie-ja/</link>
      <pubDate>Thu, 03 Nov 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/bladza-wszyscy-ale-nie-ja/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Błądzą wszyscy (ale nie ja) by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Błądzą wszyscy (ale nie ja)&lt;/q&gt;&lt;p&gt;Dlaczego usprawiedliwiamy głupie poglądy, złe decyzje i szkodliwe działania?&lt;/p&gt;&lt;p&gt;Authors: Elliot Aronson,  Carol Tavris&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Ubuntu - Key is stored in legacy trusted.gpg keyring...</title>
      <link>https://gagor.pro/2022/10/ubuntu-key-is-stored-in-legacy-trusted.gpg-keyring.../</link>
      <pubDate>Fri, 21 Oct 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/10/ubuntu-key-is-stored-in-legacy-trusted.gpg-keyring.../</guid>
      <description>Learn how to resolve the &amp;ldquo;Key is stored in legacy trusted.gpg keyring&amp;rdquo; warning on Ubuntu 22.04 by properly managing GPG keys for repositories.</description>
    </item>
    <item>
      <title>Docker Best Practices - Use VOLUME for temporary and mutable files</title>
      <link>https://gagor.pro/2022/09/docker-best-practices-use-volume-for-temporary-and-mutable-files/</link>
      <pubDate>Mon, 12 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/09/docker-best-practices-use-volume-for-temporary-and-mutable-files/</guid>
      <description>Learn best practices for writing Dockerfiles by using VOLUME for all mutable, temporary file locations to enhance performance and maintain cleaner images.</description>
    </item>
    <item>
      <title>Docker Best Practices - Use .dockerignore</title>
      <link>https://gagor.pro/2022/09/docker-best-practices-use-.dockerignore/</link>
      <pubDate>Sun, 11 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/09/docker-best-practices-use-.dockerignore/</guid>
      <description>Learn best practices for writing Dockerfiles by using .dockerignore to optimize build times and exclude unnecessary files from the build context.</description>
    </item>
    <item>
      <title>Dockerfile writing best practices</title>
      <link>https://gagor.pro/2022/09/dockerfile-writing-best-practices/</link>
      <pubDate>Sat, 10 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/09/dockerfile-writing-best-practices/</guid>
      <description>Learn best practices for writing Dockerfiles to create efficient, secure, and maintainable Docker images, based on real-world experience and insights.</description>
    </item>
    <item>
      <title>Thinking, Fast and Slow</title>
      <link>https://gagor.pro/book/2022/thinking-fast-and-slow/</link>
      <pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/thinking-fast-and-slow/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Pułapki myślenia by Daniel Kahneman&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Pułapki myślenia&lt;/q&gt;&lt;p&gt;O myśleniu szybkim i wolnym&lt;/p&gt;&lt;p&gt;Author: Daniel Kahneman&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read the Polish translation of this book. It&amp;rsquo;s considered a classic in its field and might be an interesting read if you&amp;rsquo;re a psychology student or enthusiast. However, if you&amp;rsquo;re looking for a practical guide to improving your thinking skills, there are more concise books available.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the book about?&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>The three-body problem</title>
      <link>https://gagor.pro/book/2022/the-three-body-problem/</link>
      <pubDate>Tue, 06 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/the-three-body-problem/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The three-body problem by Cixin Liu&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The three-body problem&lt;/q&gt;&lt;p&gt;Author: Cixin Liu&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The novel is set in the future and follows the discovery of an alien civilization, the Trisolarans, and humanity&amp;rsquo;s attempts to make contact and defend against them. The book is known for its complex scientific concepts, philosophical ideas, and intricate storyline.&lt;/p&gt;
&lt;p&gt;Overall, &amp;ldquo;The Three-Body Problem&amp;rdquo; has been highly praised by readers and critics for its unique and thought-provoking approach to science fiction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ford S-MAX - kasowanie ostrzeżenia wymiany oleju</title>
      <link>https://gagor.pro/2022/09/ford-s-max-kasowanie-ostrzezenia-wymiany-oleju/</link>
      <pubDate>Sat, 03 Sep 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/09/ford-s-max-kasowanie-ostrzezenia-wymiany-oleju/</guid>
      <description>Dowiedz się, jak skasować ostrzeżenie wymiany oleju w samochodzie Ford S-MAX, wykonując kilka prostych kroków.</description>
    </item>
    <item>
      <title>Czy jesteś tym, który puka?</title>
      <link>https://gagor.pro/book/2022/czy-jestes-tym-ktory-puka/</link>
      <pubDate>Sat, 13 Aug 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/czy-jestes-tym-ktory-puka/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Czy jesteś tym, który puka? by Dariusz Użycki&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Czy jesteś tym, który puka?&lt;/q&gt;&lt;p&gt;Author: Dariusz Użycki&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A friend recommended this book to me during a casual coffee chat. He joked that I&amp;rsquo;m the living embodiment of Walter White, the main character of the TV series &lt;a href=&#34;https://en.wikipedia.org/wiki/Breaking_Bad&#34;  target=&#34;_blank&#34;&gt;&amp;ldquo;Breaking Bad&amp;rdquo;&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
. This is partly due to my background as a Chemical Technologist, but also because of how I approach problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes Operators</title>
      <link>https://gagor.pro/book/2022/kubernetes-operators/</link>
      <pubDate>Wed, 22 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/kubernetes-operators/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Kubernetes Operators by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Kubernetes Operators&lt;/q&gt;&lt;p&gt;Automating the Container Orchestration Platform&lt;/p&gt;&lt;p&gt;Authors: Jason Dobies,  Joshua Wood&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Back on the big stage!</title>
      <link>https://gagor.pro/2022/06/back-on-the-big-stage/</link>
      <pubDate>Mon, 13 Jun 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/06/back-on-the-big-stage/</guid>
      <description>Announcing my return to the big stage with a talk on managing Docker base images at scale, presented at the Devoxx 2022 conference in Kraków.</description>
    </item>
    <item>
      <title>Drive</title>
      <link>https://gagor.pro/book/2022/drive/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/drive/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Drive by Daniel H. Pink&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Drive&lt;/q&gt;&lt;p&gt;The Surprising Truth About What Motivates Us&lt;/p&gt;&lt;p&gt;Author: Daniel H. Pink&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Drive: The Surprising Truth About What Motivates Us is a book that I recently read and found to be highly insightful. The author, Daniel H. Pink, explores the science of motivation and argues that the traditional carrot-and-stick approach is outdated and ineffective. He claims that in today&amp;rsquo;s rapidly changing and complex world, autonomy, mastery, and purpose are the most important drivers of motivation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wewnętrzna gra</title>
      <link>https://gagor.pro/book/2022/wewnetrzna-gra/</link>
      <pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2022/wewnetrzna-gra/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Wewnętrzna gra by Robert Koppel, Howard Abell&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Wewnętrzna gra&lt;/q&gt;&lt;p&gt;Kształtowanie psychiki gracza giełdowego&lt;/p&gt;&lt;p&gt;Authors: Robert Koppel,  Howard Abell&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>On slow decline of streaming services</title>
      <link>https://gagor.pro/2022/01/on-slow-decline-of-streaming-services/</link>
      <pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2022/01/on-slow-decline-of-streaming-services/</guid>
      <description>Explore the slow decline of streaming services like Netflix and HBO, and how the fragmentation of content across multiple platforms affects user experience.</description>
    </item>
    <item>
      <title>I switched to Zsh</title>
      <link>https://gagor.pro/2021/12/i-switched-to-zsh/</link>
      <pubDate>Thu, 16 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/12/i-switched-to-zsh/</guid>
      <description>A guide to switching from bash to Zsh, with Oh My Zsh, Powerlevel10k, and useful plugins for a better terminal experience.</description>
    </item>
    <item>
      <title>The Unicorn Project</title>
      <link>https://gagor.pro/book/2021/the-unicorn-project/</link>
      <pubDate>Thu, 09 Dec 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/the-unicorn-project/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Projekt Jednorożec by Gene Kim&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Projekt Jednorożec&lt;/q&gt;&lt;p&gt;Powieść o szansie w epoce przewrotów cyfrowych&lt;/p&gt;&lt;p&gt;Author: Gene Kim&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read the Polish translation of this book, which serves as a modern sequel to &lt;a href=&#34;https://gagor.pro/book/2018/the-phoenix-project/&#34; &gt;The Phoenix Project&lt;/a&gt;
. While the core philosophy remains the same, this new volume updates the technical landscape-replacing references to palmtops with contemporary tools like Kubernetes and Docker. If you&amp;rsquo;ve already read the original, this feels like a timely refresh rather than a complete retread.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating fully encrypted ZFS pool</title>
      <link>https://gagor.pro/2021/11/creating-fully-encrypted-zfs-pool/</link>
      <pubDate>Mon, 22 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/11/creating-fully-encrypted-zfs-pool/</guid>
      <description>Learn how to create a fully encrypted ZFS pool on Linux, including steps for generating encryption keys and configuring ZFS for secure data storage.</description>
    </item>
    <item>
      <title>Shucking WD Elements 14TB</title>
      <link>https://gagor.pro/2021/11/shucking-wd-elements-14tb/</link>
      <pubDate>Fri, 12 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/11/shucking-wd-elements-14tb/</guid>
      <description>Learn how to shuck WD Elements 14TB drives for use in a RAID setup, including stress testing and performance considerations for ZFS.</description>
    </item>
    <item>
      <title>Automatically add ticket ID to every commit message in Git</title>
      <link>https://gagor.pro/2021/11/automatically-add-ticket-id-to-every-commit-message-in-git/</link>
      <pubDate>Tue, 09 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/11/automatically-add-ticket-id-to-every-commit-message-in-git/</guid>
      <description>Learn how to automatically add ticket IDs to every commit message in Git, ensuring consistent and informative commit history by using custom Git aliases.</description>
    </item>
    <item>
      <title>Resize images from command line on MacOS</title>
      <link>https://gagor.pro/2021/11/resize-images-from-command-line-on-macos/</link>
      <pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/11/resize-images-from-command-line-on-macos/</guid>
      <description>Learn how to resize images from the command line on MacOS using built-in tools like sips and third-party tools like ImageMagick for various use cases.</description>
    </item>
    <item>
      <title>Homebrew - uninstall formula with dependencies</title>
      <link>https://gagor.pro/2021/11/homebrew-uninstall-formula-with-dependencies/</link>
      <pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/11/homebrew-uninstall-formula-with-dependencies/</guid>
      <description>Learn how to uninstall a Homebrew formula along with its dependencies on MacOS, ensuring a clean removal and freeing up disk space.</description>
    </item>
    <item>
      <title>Asus ROG STRIX Z590-E GAMING WIFI - my UEFI BIOS settings</title>
      <link>https://gagor.pro/2021/10/asus-rog-strix-z590-e-gaming-wifi-my-uefi-bios-settings/</link>
      <pubDate>Sat, 30 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/10/asus-rog-strix-z590-e-gaming-wifi-my-uefi-bios-settings/</guid>
      <description>Learn about the optimal UEFI BIOS settings for the Asus ROG STRIX Z590-E GAMING WIFI motherboard, including configurations for RAM, power management, virtualization, and more.</description>
    </item>
    <item>
      <title>Od dobrego do wielkiego</title>
      <link>https://gagor.pro/book/2021/od-dobrego-do-wielkiego/</link>
      <pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/od-dobrego-do-wielkiego/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Od dobrego do wielkiego by Jim Collins&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Od dobrego do wielkiego&lt;/q&gt;&lt;p&gt;Czynniki trwałego rozwoju i zwycięstwa ﬁrm&lt;/p&gt;&lt;p&gt;Author: Jim Collins&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The book is a comprehensive analysis of what makes a good company great, and how organizations can achieve long-term success. Collins and his team conducted extensive research to identify common characteristics and practices among companies that have made the leap from good to great, and the book presents the results of their findings.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Miłość i matematyka</title>
      <link>https://gagor.pro/book/2021/milosc-i-matematyka/</link>
      <pubDate>Sun, 19 Sep 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/milosc-i-matematyka/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Miłość i matematyka by Edward Frenkel&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Miłość i matematyka&lt;/q&gt;&lt;p&gt;Istota ukrytej rzeczywistości&lt;/p&gt;&lt;p&gt;Author: Edward Frenkel&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Official CentOS 8 Stream Docker image finally available!</title>
      <link>https://gagor.pro/2021/07/official-centos-8-stream-docker-image-finally-available/</link>
      <pubDate>Sun, 25 Jul 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/07/official-centos-8-stream-docker-image-finally-available/</guid>
      <description>Discover the availability of the official CentOS 8 Stream Docker image on quay.io, and learn about the transition from Docker Hub and its implications.</description>
    </item>
    <item>
      <title>Inteligentny inwestor</title>
      <link>https://gagor.pro/book/2021/inteligentny-inwestor/</link>
      <pubDate>Wed, 12 May 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/inteligentny-inwestor/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Inteligentny inwestor by Benjamin Graham&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Inteligentny inwestor&lt;/q&gt;&lt;p&gt;Najlepsza książka o inwestowaniu wartościowym&lt;/p&gt;&lt;p&gt;Author: Benjamin Graham&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Building new Linux desktop</title>
      <link>https://gagor.pro/2021/04/building-new-linux-desktop/</link>
      <pubDate>Wed, 14 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/04/building-new-linux-desktop/</guid>
      <description>Learn about building a new Linux desktop with a focus on performance and stability, including hardware selection and considerations for Ubuntu.</description>
    </item>
    <item>
      <title>Bogaty albo biedny</title>
      <link>https://gagor.pro/book/2021/bogaty-albo-biedny/</link>
      <pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/bogaty-albo-biedny/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Bogaty albo biedny by T. Harv Eker&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Bogaty albo biedny&lt;/q&gt;&lt;p&gt;Po prostu różni mentalnie&lt;/p&gt;&lt;p&gt;Author: T. Harv Eker&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>My projects</title>
      <link>https://gagor.pro/projects/</link>
      <pubDate>Fri, 09 Apr 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/projects/</guid>
      <description>&lt;p&gt;

&lt;h2&gt;Github repositories&lt;/h2&gt;

&lt;ul class=&#34;shortcode-icons&#34; style=&#34;padding-left: 0; margin-left: 0;&#34;&gt;
    
      
      
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-gemini-cli&#34; target=&#34;_blank&#34;&gt;tgagor/docker-gemini-cli&lt;/a&gt;
             - Gemini CLI wrapped as a Docker image, so you don&amp;#39;t need to trash your OS with Node and it&amp;#39;s dependencies.
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-gemini-cli?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-gemini-cli?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-centos&#34; target=&#34;_blank&#34;&gt;tgagor/docker-centos&lt;/a&gt;
             - CentOS docker images, build weekly with latest security updates
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-centos?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-centos?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/hugo-PaperMod-bookshelf&#34; target=&#34;_blank&#34;&gt;tgagor/hugo-PaperMod-bookshelf&lt;/a&gt;
             - This is an extension, a set of shortcodes and templates to the original PaperMod theme, with a page dedicated to listing the books with responsive UI
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/hugo-PaperMod-bookshelf?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/hugo-PaperMod-bookshelf?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/template-dockerfiles&#34; target=&#34;_blank&#34;&gt;tgagor/template-dockerfiles&lt;/a&gt;
             - Dockerfile Templater, allowing to simplify building of Docker images at mass
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/template-dockerfiles?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/template-dockerfiles?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/hugo-shortcode-kofi&#34; target=&#34;_blank&#34;&gt;tgagor/hugo-shortcode-kofi&lt;/a&gt;
             - A collection of custom shortcodes tailored for Hugo static site generator, designed to seamlessly integrate Ko-fi buttons and widgets into any blog post
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/hugo-shortcode-kofi?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/hugo-shortcode-kofi?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/action-crosspost&#34; target=&#34;_blank&#34;&gt;tgagor/action-crosspost&lt;/a&gt;
             - Automatically submits recent posts from your Blog to variety of social networks like: Bluesky,  Mastodon, Twitter, LinedIn, Discord, Telgram, Dev.to.
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/action-crosspost?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/action-crosspost?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-chisel&#34; target=&#34;_blank&#34;&gt;tgagor/docker-chisel&lt;/a&gt;
             - Let play with Ubuntu&amp;#39;s Chisel tool for minimal Docker images
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-chisel?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-chisel?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-opencode-cli&#34; target=&#34;_blank&#34;&gt;tgagor/docker-opencode-cli&lt;/a&gt;
             - OpenCode wrapped as a Docker image, so you don&amp;#39;t need to trash your OS with Node and it&amp;#39;s dependencies. 
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-opencode-cli?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-opencode-cli?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/frameo-miniatures&#34; target=&#34;_blank&#34;&gt;tgagor/frameo-miniatures&lt;/a&gt;
             - A fast, efficient CLI tool to prepare and optimize photo collections for Frameo digital photo frames.
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/frameo-miniatures?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/frameo-miniatures?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/ansible-role-docker&#34; target=&#34;_blank&#34;&gt;tgagor/ansible-role-docker&lt;/a&gt;
             - Installs Docker service on Ubuntu/Debian/RHEL
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/ansible-role-docker?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/ansible-role-docker?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/ansible-role-docker-compose&#34; target=&#34;_blank&#34;&gt;tgagor/ansible-role-docker-compose&lt;/a&gt;
             - Simple Ansible role that will install Docker Compose
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/ansible-role-docker-compose?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/ansible-role-docker-compose?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/ansible-role-spotify&#34; target=&#34;_blank&#34;&gt;tgagor/ansible-role-spotify&lt;/a&gt;
            
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/ansible-role-spotify?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/ansible-role-spotify?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/ansible-role-template-with-molecule-tests&#34; target=&#34;_blank&#34;&gt;tgagor/ansible-role-template-with-molecule-tests&lt;/a&gt;
             - Template for Ansible role with Molecule and Testinfra for testing
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/ansible-role-template-with-molecule-tests?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/ansible-role-template-with-molecule-tests?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/conferences&#34; target=&#34;_blank&#34;&gt;tgagor/conferences&lt;/a&gt;
             - Presentations and materials from conferences where I attended as a speaker
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/conferences?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/conferences?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-chiseled-corretto&#34; target=&#34;_blank&#34;&gt;tgagor/docker-chiseled-corretto&lt;/a&gt;
             - Playing with Cannonicals Chisel tool, I was curious what benefits it could provide with Corretto
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-chiseled-corretto?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-chiseled-corretto?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/docker-nvm-example&#34; target=&#34;_blank&#34;&gt;tgagor/docker-nvm-example&lt;/a&gt;
             - Repo with example NVM in Docker image implementation for use in easy CI/CD
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/docker-nvm-example?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/docker-nvm-example?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/go-bnf&#34; target=&#34;_blank&#34;&gt;tgagor/go-bnf&lt;/a&gt;
             - Simple (E)BNF parser and analyzer
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/go-bnf?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/go-bnf?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/java-tuner&#34; target=&#34;_blank&#34;&gt;tgagor/java-tuner&lt;/a&gt;
             - A small, statically linked CLI tool that simplifies tuning of Java applications for containerized environments. It automatically detects available CPU and memory resources, then generates optimal JVM options to improve performance and reliability.
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/java-tuner?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/java-tuner?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
        
          &lt;li &gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://github.com/tgagor/marsennea-primes&#34; target=&#34;_blank&#34;&gt;tgagor/marsennea-primes&lt;/a&gt;
             - Playing with Marsennea primes
            &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
              &lt;img alt=&#34;GitHub Repo stars&#34; src=&#34;https://img.shields.io/github/stars/tgagor/marsennea-primes?style=flat-square&#34;&gt;
              &lt;img alt=&#34;GitHub Repo forks&#34; src=&#34;https://img.shields.io/github/forks/tgagor/marsennea-primes?style=flat-square&#34;&gt;
            &lt;/div&gt;
          &lt;/li&gt;
        
      
        
      
    
  
&lt;/ul&gt;



&lt;h2&gt;Ghists&lt;/h2&gt;

&lt;ul class=&#34;shortcode-icons&#34;  style=&#34;padding-left: 0; margin-left: 0;&#34;&gt;
    
      
      
        
          &lt;li&gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://gist.github.com/tgagor/fdd09a6938ceb3eefc56eeeaea30351f&#34; target=&#34;_blank&#34;&gt;How old official Docker images are?&lt;/a&gt;
          &lt;/li&gt;
        
      
        
          &lt;li&gt;
            &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34;
    stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
    &lt;path
        d=&#34;M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22&#34;&gt;
    &lt;/path&gt;
&lt;/svg&gt;
            &lt;a href=&#34;https://gist.github.com/tgagor/f904221d888c8daaad679cf99c407aef&#34; target=&#34;_blank&#34;&gt;Script that can be used to purge nexus v3 releases&lt;/a&gt;
          &lt;/li&gt;
        
      
    
  

&lt;/ul&gt;



&lt;h2&gt;Docker images&lt;/h2&gt;

&lt;ul class=&#34;shortcode-icons&#34; style=&#34;padding-left: 0; margin-left: 0;&#34;&gt;
  
  
    
      
      
      
      &lt;li&gt;
        &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 40 30&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
          &lt;path d=&#34;M37.413,12.315c-0.933,-0.627 -3.382,-0.896 -5.163,-0.415c-0.097,-1.774 -1.012,-3.27 -2.685,-4.573l-0.619,-0.416l-0.414,0.624c-0.811,1.232 -1.153,2.873 -1.032,4.366c0.095,0.92 0.415,1.953 1.032,2.703c-2.318,1.345 -4.455,1.039 -13.919,1.039l-14.61,0c-0.042,2.137 0.302,6.248 2.915,9.593c0.289,0.37 0.604,0.727 0.948,1.072c2.126,2.128 5.336,3.689 10.138,3.693c7.325,0.007 13.601,-3.953 17.419,-13.527c1.257,0.02 4.572,0.225 6.195,-2.911c0.039,-0.052 0.413,-0.831 0.413,-0.831l-0.618,-0.415l0,-0.002Zm-27.875,-1.953l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm-21.232,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,-5.19l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm0,-5.19l-4.108,0l-0,4.109l4.108,-0l0,-4.109Z&#34;/&gt;
        &lt;/svg&gt;
        &lt;a href=&#34;https://hub.docker.com/r/tgagor/centos&#34; target=&#34;_blank&#34;&gt;tgagor/centos&lt;/a&gt;
         - Pure, based on official CentOS images, upgraded every Monday
        &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/stars/tgagor/centos?style=flat-square&#34; alt=&#34;Docker Stars&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/tgagor/centos?style=flat-square&#34; alt=&#34;Docker Pulls&#34;&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      
      &lt;li&gt;
        &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 40 30&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
          &lt;path d=&#34;M37.413,12.315c-0.933,-0.627 -3.382,-0.896 -5.163,-0.415c-0.097,-1.774 -1.012,-3.27 -2.685,-4.573l-0.619,-0.416l-0.414,0.624c-0.811,1.232 -1.153,2.873 -1.032,4.366c0.095,0.92 0.415,1.953 1.032,2.703c-2.318,1.345 -4.455,1.039 -13.919,1.039l-14.61,0c-0.042,2.137 0.302,6.248 2.915,9.593c0.289,0.37 0.604,0.727 0.948,1.072c2.126,2.128 5.336,3.689 10.138,3.693c7.325,0.007 13.601,-3.953 17.419,-13.527c1.257,0.02 4.572,0.225 6.195,-2.911c0.039,-0.052 0.413,-0.831 0.413,-0.831l-0.618,-0.415l0,-0.002Zm-27.875,-1.953l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm-21.232,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,-5.19l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm0,-5.19l-4.108,0l-0,4.109l4.108,-0l0,-4.109Z&#34;/&gt;
        &lt;/svg&gt;
        &lt;a href=&#34;https://hub.docker.com/r/tgagor/chisel&#34; target=&#34;_blank&#34;&gt;tgagor/chisel&lt;/a&gt;
         - Cannonical&amp;#39;s Chisel tool &amp;#43; Releases
        &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/stars/tgagor/chisel?style=flat-square&#34; alt=&#34;Docker Stars&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/tgagor/chisel?style=flat-square&#34; alt=&#34;Docker Pulls&#34;&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      
      &lt;li&gt;
        &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 40 30&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
          &lt;path d=&#34;M37.413,12.315c-0.933,-0.627 -3.382,-0.896 -5.163,-0.415c-0.097,-1.774 -1.012,-3.27 -2.685,-4.573l-0.619,-0.416l-0.414,0.624c-0.811,1.232 -1.153,2.873 -1.032,4.366c0.095,0.92 0.415,1.953 1.032,2.703c-2.318,1.345 -4.455,1.039 -13.919,1.039l-14.61,0c-0.042,2.137 0.302,6.248 2.915,9.593c0.289,0.37 0.604,0.727 0.948,1.072c2.126,2.128 5.336,3.689 10.138,3.693c7.325,0.007 13.601,-3.953 17.419,-13.527c1.257,0.02 4.572,0.225 6.195,-2.911c0.039,-0.052 0.413,-0.831 0.413,-0.831l-0.618,-0.415l0,-0.002Zm-27.875,-1.953l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm-21.232,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,-5.19l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm0,-5.19l-4.108,0l-0,4.109l4.108,-0l0,-4.109Z&#34;/&gt;
        &lt;/svg&gt;
        &lt;a href=&#34;https://hub.docker.com/r/tgagor/corretto&#34; target=&#34;_blank&#34;&gt;tgagor/corretto&lt;/a&gt;
         - It&amp;#39;s a Proof of Concept of benefits of using &amp;#34;chisel&amp;#34; tool on Ubuntu in comparison to Alpine images.
        &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/stars/tgagor/corretto?style=flat-square&#34; alt=&#34;Docker Stars&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/tgagor/corretto?style=flat-square&#34; alt=&#34;Docker Pulls&#34;&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      
      &lt;li&gt;
        &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 40 30&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
          &lt;path d=&#34;M37.413,12.315c-0.933,-0.627 -3.382,-0.896 -5.163,-0.415c-0.097,-1.774 -1.012,-3.27 -2.685,-4.573l-0.619,-0.416l-0.414,0.624c-0.811,1.232 -1.153,2.873 -1.032,4.366c0.095,0.92 0.415,1.953 1.032,2.703c-2.318,1.345 -4.455,1.039 -13.919,1.039l-14.61,0c-0.042,2.137 0.302,6.248 2.915,9.593c0.289,0.37 0.604,0.727 0.948,1.072c2.126,2.128 5.336,3.689 10.138,3.693c7.325,0.007 13.601,-3.953 17.419,-13.527c1.257,0.02 4.572,0.225 6.195,-2.911c0.039,-0.052 0.413,-0.831 0.413,-0.831l-0.618,-0.415l0,-0.002Zm-27.875,-1.953l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm-21.232,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,-5.19l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm0,-5.19l-4.108,0l-0,4.109l4.108,-0l0,-4.109Z&#34;/&gt;
        &lt;/svg&gt;
        &lt;a href=&#34;https://hub.docker.com/r/tgagor/gemini-cli&#34; target=&#34;_blank&#34;&gt;tgagor/gemini-cli&lt;/a&gt;
         - Run the Gemini CLI without needing to install Node.js or its dependencies on your local system.
        &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/stars/tgagor/gemini-cli?style=flat-square&#34; alt=&#34;Docker Stars&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/tgagor/gemini-cli?style=flat-square&#34; alt=&#34;Docker Pulls&#34;&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      
      &lt;li&gt;
        &lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 40 30&#34; fill=&#34;none&#34; stroke=&#34;currentColor&#34; stroke-width=&#34;2&#34; stroke-linecap=&#34;round&#34; stroke-linejoin=&#34;round&#34;&gt;
          &lt;path d=&#34;M37.413,12.315c-0.933,-0.627 -3.382,-0.896 -5.163,-0.415c-0.097,-1.774 -1.012,-3.27 -2.685,-4.573l-0.619,-0.416l-0.414,0.624c-0.811,1.232 -1.153,2.873 -1.032,4.366c0.095,0.92 0.415,1.953 1.032,2.703c-2.318,1.345 -4.455,1.039 -13.919,1.039l-14.61,0c-0.042,2.137 0.302,6.248 2.915,9.593c0.289,0.37 0.604,0.727 0.948,1.072c2.126,2.128 5.336,3.689 10.138,3.693c7.325,0.007 13.601,-3.953 17.419,-13.527c1.257,0.02 4.572,0.225 6.195,-2.911c0.039,-0.052 0.413,-0.831 0.413,-0.831l-0.618,-0.415l0,-0.002Zm-27.875,-1.953l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm-21.232,0l-4.108,0l-0,4.108l4.108,0l0,-4.108Zm5.308,-5.19l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm5.308,-0l-4.108,-0l-0,4.108l4.108,0l0,-4.108Zm0,-5.19l-4.108,0l-0,4.109l4.108,-0l0,-4.109Z&#34;/&gt;
        &lt;/svg&gt;
        &lt;a href=&#34;https://hub.docker.com/r/tgagor/opencode-cli&#34; target=&#34;_blank&#34;&gt;tgagor/opencode-cli&lt;/a&gt;
         - Run the OpenCode without needing to install Node.js or its dependencies on your local system.
        &lt;div class=&#34;shortcode-icons-badges&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/stars/tgagor/opencode-cli?style=flat-square&#34; alt=&#34;Docker Stars&#34;&gt;
          &lt;img src=&#34;https://img.shields.io/docker/pulls/tgagor/opencode-cli?style=flat-square&#34; alt=&#34;Docker Pulls&#34;&gt;
        &lt;/div&gt;
      &lt;/li&gt;
      
    
  
&lt;/ul&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to remove geo-localization/EXIF data from photos</title>
      <link>https://gagor.pro/2021/03/how-to-remove-geo-localization/exif-data-from-photos/</link>
      <pubDate>Fri, 05 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/03/how-to-remove-geo-localization/exif-data-from-photos/</guid>
      <description>Learn how to remove geo-localization and EXIF data from photos using ImageMagick on Linux, ensuring privacy before sharing images publicly.</description>
    </item>
    <item>
      <title>Książę</title>
      <link>https://gagor.pro/book/2021/ksiaze/</link>
      <pubDate>Thu, 04 Mar 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/ksiaze/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Książę by Nicolo Machiavelli&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Książę&lt;/q&gt;&lt;p&gt;Author: Nicolo Machiavelli&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>How to run JMX monitoring in Docker image?</title>
      <link>https://gagor.pro/2021/02/how-to-run-jmx-monitoring-in-docker-image/</link>
      <pubDate>Fri, 19 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/02/how-to-run-jmx-monitoring-in-docker-image/</guid>
      <description>Learn how to run JMX monitoring in a Docker image, including the necessary Java parameters and configuration for connecting to JMX consoles like VisualVM or Jconsole.</description>
    </item>
    <item>
      <title>CentOS 8 Stream Docker image</title>
      <link>https://gagor.pro/2021/02/centos-8-stream-docker-image/</link>
      <pubDate>Thu, 11 Feb 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/02/centos-8-stream-docker-image/</guid>
      <description>Learn about the creation and optimization of a CentOS 8 Stream Docker image, including steps to squash the image and ensure it is suitable for production workloads.</description>
    </item>
    <item>
      <title>How old are Official Docker images?</title>
      <link>https://gagor.pro/2021/01/how-old-are-official-docker-images/</link>
      <pubDate>Thu, 28 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2021/01/how-old-are-official-docker-images/</guid>
      <description>Discover the age and update frequency of various official Docker images, and learn why it&amp;rsquo;s important to keep your base images up to date for security and performance.</description>
    </item>
    <item>
      <title>Eric</title>
      <link>https://gagor.pro/book/2021/eric/</link>
      <pubDate>Wed, 06 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/eric/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Eryk by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Eryk&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This felt shorter, almost like a fast-paced novella. It serves as a direct parody of the Faust legend. Eric, a young aspiring demonologist, tries to summon a demon to grant his wishes but ends up summoning the incompetent Rincewind instead. They are then dragged on a journey through time and space to fulfill Eric&amp;rsquo;s wishes: to be ruler of the world, to meet the most beautiful woman who ever lived, and to live forever.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sourcery</title>
      <link>https://gagor.pro/book/2021/sourcery/</link>
      <pubDate>Tue, 05 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/sourcery/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Czarodzicielstwo by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Czarodzicielstwo&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;We return to Rincewind, but the tone is slightly darker and more apocalyptic. A &amp;ldquo;Sourcerer&amp;rdquo; is born - a wizard who generates magic rather than just borrowing it from the background field. The book feels like a commentary on power and possibly weapons of mass destruction. Coin, the boy sourcerer, is terrifying not because he is evil, but because he has absolute power with the emotional maturity of a child (and is being manipulated by his dead father). Rincewind is again the reluctant hero, forced to save a world he doesn&amp;rsquo;t particularly like, armed only with a half-brick in a sock.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mort</title>
      <link>https://gagor.pro/book/2021/mort/</link>
      <pubDate>Mon, 04 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/mort/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Mort by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Mort&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This is a favorite. Death gets a protagonist role and a personality. He decides he needs an apprentice, Mort, partly to share the workload, but mostly to understand humans better. It&amp;rsquo;s hilarious watching reading about the anthropomorphic personification of Death trying to fry bacon, get drunk, or go fishing to feel &amp;ldquo;alive.&amp;rdquo; But the core story is about Mort messing up the timeline because he felt pity for a princess he was supposed to collect. It&amp;rsquo;s a brilliant balance of humor and very serious stakes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Równoumagicznienie</title>
      <link>https://gagor.pro/book/2021/rownoumagicznienie/</link>
      <pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/rownoumagicznienie/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Równoumagicznienie by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Równoumagicznienie&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This felt different from the &lt;a href=&#34;https://gagor.pro/book/2021/the-colour-of-magic/&#34; &gt;first&lt;/a&gt;
 &lt;a href=&#34;https://gagor.pro/book/2021/the-light-fantastic/&#34; &gt;two&lt;/a&gt;
. Pratchett shifts focus from the chaos of Rincewind to a more grounded story about gender roles. Eskarina Smith is born a wizard (the eighth child of an eighth son, but&amp;hellip; a girl), which seemingly breaks the universe&amp;rsquo;s rules, as women are supposed to be witches, not wizards. I liked Granny Weatherwax immediately. She&amp;rsquo;s the grounded, &amp;ldquo;headology&amp;rdquo; counterpart to the stuffy, ritualistic wizards of Unseen University. It is less slapstick and more of a satirical social commentary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Light Fantastic</title>
      <link>https://gagor.pro/book/2021/the-light-fantastic/</link>
      <pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/the-light-fantastic/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Blask fantastyczny by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Blask fantastyczny&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This direct sequel to &lt;a href=&#34;https://gagor.pro/book/2021/the-colour-of-magic/&#34; &gt;&amp;ldquo;The Colour of Magic&amp;rdquo;&lt;/a&gt;
 continues the chaotic journey of Rincewind and Twoflower. It felt more cohesive than the first one, driving towards a specific climax involving the ominous Red Star. The humor remains sharp, continually poking fun at the &amp;ldquo;chosen one&amp;rdquo; tropes that dominate the genre. Cohen the Barbarian was a standout for me - an eighty-something hero who still pillages and kills, but complains about his back and the temperature of his soup. It&amp;rsquo;s funny watching a legend age, but guys lives his best life.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Colour of Magic</title>
      <link>https://gagor.pro/book/2021/the-colour-of-magic/</link>
      <pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2021/the-colour-of-magic/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Kolor magii by Terry Pratchett&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Kolor magii&lt;/q&gt;&lt;p&gt;Author: Terry Pratchett&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read this as my first book by Terry Pratchett. A colleague recommended it to me, adding a precaution that if I were &amp;ldquo;a hardcore fantasy reader&amp;rdquo; - I would have to relax a bit, as this takes the whole fantasy genre to a new level. I quickly understood when I started reading - it felt like a joke! It was a satire of the entire fantasy genre, devoid of the usual heroism or pathos. The main character was a &amp;ldquo;lame duck&amp;rdquo;, pathetic at everything he touched. He didn&amp;rsquo;t even need to touch anything - his mere presence was enough to cause the world to collapse around him. It was hilarious, but a lot of fun to read &amp;#x1f604;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bye Bye Wordpress!</title>
      <link>https://gagor.pro/2020/10/bye-bye-wordpress/</link>
      <pubDate>Sat, 24 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2020/10/bye-bye-wordpress/</guid>
      <description>Learn about the transition from Wordpress to Hugo for managing a personal blog, including reasons for the switch and benefits of using a static site generator.</description>
    </item>
    <item>
      <title>W transie inwestowania</title>
      <link>https://gagor.pro/book/2020/w-transie-inwestowania/</link>
      <pubDate>Sun, 28 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/w-transie-inwestowania/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book W transie inwestowania by Mark Douglas&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;W transie inwestowania&lt;/q&gt;&lt;p&gt;Podbij rynek pewnością siebie, żelazną dyscypliną i postawą zwycięzcy&lt;/p&gt;&lt;p&gt;Author: Mark Douglas&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Teoretyczne minimum</title>
      <link>https://gagor.pro/book/2020/teoretyczne-minimum/</link>
      <pubDate>Tue, 23 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/teoretyczne-minimum/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Teoretyczne minimum by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Teoretyczne minimum&lt;/q&gt;&lt;p&gt;Co musisz wiedzieć, żeby zacząć zajmować się fizyką&lt;/p&gt;&lt;p&gt;Authors: Leonard Susskind,  George Hrabovsky&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Przeciw bogom</title>
      <link>https://gagor.pro/book/2020/przeciw-bogom/</link>
      <pubDate>Sat, 28 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/przeciw-bogom/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Przeciw bogom by Peter L. Bernstein&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Przeciw bogom&lt;/q&gt;&lt;p&gt;Niezwykłe dzieje ryzyka&lt;/p&gt;&lt;p&gt;Author: Peter L. Bernstein&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Książka bardzo mi się spodobała. Została napisana przez jednego z Bernsteinów i odnosi się także do wkładu, jaki ta rodzina wniosła do matematyki i innych nauk. Do tej pory myślałem, że był tylko jeden Bernstein, a okazało się, że to cała familia - w tym autor &lt;a href=&#34;https://cr.yp.to/qmail.html&#34;  target=&#34;_blank&#34;&gt;Qmaila&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 &amp;#x1f609;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Podróż ludzi Księgi</title>
      <link>https://gagor.pro/book/2020/podroz-ludzi-ksiegi/</link>
      <pubDate>Sat, 14 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/podroz-ludzi-ksiegi/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Podróż ludzi Księgi by Olga Tokarczuk&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Podróż ludzi Księgi&lt;/q&gt;&lt;p&gt;Author: Olga Tokarczuk&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I was really curious about this book. Olga Tokarczuk, a Polish writer, won the 2018 Nobel Prize in Literature, so I thought I should check out her work. &amp;ldquo;The Journey of the Book-People&amp;rdquo; is her debut novel, a historical fantasy set in 17th-century France.&lt;/p&gt;
&lt;p&gt;The story follows a motley crew - a mute boy, an abandoned courtesan, and a mysterious marquis - on a quest to find a legendary, all-powerful Book. Their journey through the Pyrenees mountains is filled with adventure and philosophical questions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java Performance Companion</title>
      <link>https://gagor.pro/book/2020/java-performance-companion/</link>
      <pubDate>Mon, 10 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/java-performance-companion/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Java Performance Companion by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Java Performance Companion&lt;/q&gt;&lt;p&gt;Authors: Charlie Hunt,  Monica Beckwith,  Poonam Parhar,  Bengt Rutisson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Java Performance</title>
      <link>https://gagor.pro/book/2020/troubleshooting-java-performance/</link>
      <pubDate>Mon, 10 Feb 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2020/troubleshooting-java-performance/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Troubleshooting Java Performance by Erik Ostermueller&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Troubleshooting Java Performance&lt;/q&gt;&lt;p&gt;Detecting Anti-Patterns with Open Source Tools 1st ed. Edition&lt;/p&gt;&lt;p&gt;Author: Erik Ostermueller&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Moving from Linux to MacOS – first steps</title>
      <link>https://gagor.pro/2020/01/moving-from-linux-to-macos-first-steps/</link>
      <pubDate>Sat, 04 Jan 2020 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2020/01/moving-from-linux-to-macos-first-steps/</guid>
      <description>Learn about the initial steps and adjustments needed when transitioning from a Linux desktop to MacOS for business purposes, including tips on keyboard shortcuts, application compatibility, and system settings.</description>
    </item>
    <item>
      <title>Teoria kwantowa nie gryzie</title>
      <link>https://gagor.pro/book/2019/teoria-kwantowa-nie-gryzie/</link>
      <pubDate>Mon, 02 Dec 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/teoria-kwantowa-nie-gryzie/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Teoria kwantowa nie gryzie by Marcus Chown&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Teoria kwantowa nie gryzie&lt;/q&gt;&lt;p&gt;Author: Marcus Chown&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>RUNY Spekulacyjne Rafała Zaorskiego</title>
      <link>https://gagor.pro/book/2019/runy-spekulacyjne-rafala-zaorskiego/</link>
      <pubDate>Tue, 26 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/runy-spekulacyjne-rafala-zaorskiego/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book RUNY Spekulacyjne Rafała Zaorskiego by Barbara Triss&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;RUNY Spekulacyjne Rafała Zaorskiego&lt;/q&gt;&lt;p&gt;Inny wymiar zarządzania kapitałem na rynku Forex&lt;/p&gt;&lt;p&gt;Author: Barbara Triss&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve read this book as a summary of Rafał&amp;rsquo;s way to trade. He&amp;rsquo;s a speculator, which aligns to my way of taking transactions. Book can be found in the internet.&lt;/p&gt;
&lt;p&gt;Book is chaotic and not that straightforward to follow, but there is some wisdom. There&amp;rsquo;s a good description of money management approach for speculation, to split your bank into 3~5% chunks that you manage separately - risking low, but with potential to grow. There are also things that I don&amp;rsquo;t like. He do not use Stop Losses, which IMO is a mistake. Of course Stop Loss could kick you out of the transaction in worst possible moment, but it helps to keep you to your assumption and plan.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Czas Spekulacji</title>
      <link>https://gagor.pro/book/2019/czas-spekulacji/</link>
      <pubDate>Mon, 18 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/czas-spekulacji/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Czas Spekulacji by Gregory J. Millman&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Czas Spekulacji&lt;/q&gt;&lt;p&gt;Author: Gregory J. Millman&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Jeszcze krótsza historia czasu</title>
      <link>https://gagor.pro/book/2019/jeszcze-krotsza-historia-czasu/</link>
      <pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/jeszcze-krotsza-historia-czasu/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Jeszcze krótsza historia czasu by Stephen Hawking&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Jeszcze krótsza historia czasu&lt;/q&gt;&lt;p&gt;Author: Stephen Hawking&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Teoria wszystkiego, czyli krótka historia wszechświata</title>
      <link>https://gagor.pro/book/2019/teoria-wszystkiego-czyli-krotka-historia-wszechswiata/</link>
      <pubDate>Tue, 29 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/teoria-wszystkiego-czyli-krotka-historia-wszechswiata/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Teoria wszystkiego, czyli krótka historia wszechświata by Stephen Hawking&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Teoria wszystkiego, czyli krótka historia wszechświata&lt;/q&gt;&lt;p&gt;Author: Stephen Hawking&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Bezpieczeństwo aplikacji webowych</title>
      <link>https://gagor.pro/book/2019/bezpieczenstwo-aplikacji-webowych/</link>
      <pubDate>Fri, 04 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/bezpieczenstwo-aplikacji-webowych/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Bezpieczeństwo aplikacji webowych by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Bezpieczeństwo aplikacji webowych&lt;/q&gt;&lt;p&gt;Authors: Michał Bentkowski,  Gynvael Coldwind,  Artur Czyż,  Rafał Janicki,  Jarosław Kamiński,  Adrian Michalczyk,  Mateusz Niezabitowski,  Marcin Piosek,  Michał Sajdak,  Grzegorz Trawiński,  Bohdan Widła&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>DevOps</title>
      <link>https://gagor.pro/book/2019/devops/</link>
      <pubDate>Fri, 04 Oct 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/devops/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book DevOps by Gene Kim, Patrick Debois, John Willis, Jez Humble, John Allspaw&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;DevOps&lt;/q&gt;&lt;p&gt;Światowej klasy zwinność, niezawodność i bezpieczeństwo w Twojej organizacji&lt;/p&gt;&lt;p&gt;Authors: Gene Kim,  Patrick Debois,  John Willis,  Jez Humble,  John Allspaw&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>DevOps Hiring</title>
      <link>https://gagor.pro/book/2019/devops-hiring/</link>
      <pubDate>Fri, 29 Mar 2019 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2019/devops-hiring/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book DevOps Hiring by Dave Zwieback&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;DevOps Hiring&lt;/q&gt;&lt;p&gt;Author: Dave Zwieback&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Book of Life</title>
      <link>https://gagor.pro/book/2018/book-of-life/</link>
      <pubDate>Sun, 30 Dec 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/book-of-life/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Book of Life by Deborah Harkness&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Book of Life&lt;/q&gt;&lt;p&gt;Author: Deborah Harkness&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;In &lt;em&gt;The Book of Life&lt;/em&gt;, all the threads from the previous parts finally start to come together. There’s an old legend about two powerful witches - and for a long time, you’re not sure whether it refers to Satu or Diana. As the story unfolds, secrets are revealed, alliances are formed, and everything begins to make sense.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shadow of Night</title>
      <link>https://gagor.pro/book/2018/shadow-of-night/</link>
      <pubDate>Fri, 30 Nov 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/shadow-of-night/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Shadow of Night by Deborah Harkness&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Shadow of Night&lt;/q&gt;&lt;p&gt;Author: Deborah Harkness&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;The second book in the &lt;em&gt;All Souls&lt;/em&gt; trilogy, &lt;em&gt;Shadow of Night&lt;/em&gt;, feels quite different from the first one. This time, the story leans more toward the “vampire” side - darker, slower, and full of secrets from the past.&lt;/p&gt;
&lt;p&gt;In this part, Diana and Matthew travel back in time, which adds a fascinating historical twist to the story. They meet some key figures from both their pasts (and futures), including Diana’s parents, and we start to uncover a bit more of what the entire saga is really about. There’s definitely more magic here - and yes, some of the special effects would look pretty funny on screen - but I actually found Diana’s witch training sequences quite visually striking and well imagined.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Discovery of Witches</title>
      <link>https://gagor.pro/book/2018/a-discovery-of-witches/</link>
      <pubDate>Wed, 24 Oct 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/a-discovery-of-witches/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book A Discovery of Witches by Deborah Harkness&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;A Discovery of Witches&lt;/q&gt;&lt;p&gt;Author: Deborah Harkness&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I think this book was probably written with women in mind 😄 - but I really enjoyed it! It all started with the first season of the TV series on HBO. I watched it with my wife, and we both liked it. The special effects were a bit funny at times, but overall, it was better than many romantic comedies. The mix of vampires, witches, and daemons appealed to me, while the romantic plotlines were more my wife’s thing - a bit of joy for both of us 🤣&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Phoenix Project</title>
      <link>https://gagor.pro/book/2018/the-phoenix-project/</link>
      <pubDate>Sat, 18 Aug 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/the-phoenix-project/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Projekt Feniks by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Projekt Feniks&lt;/q&gt;&lt;p&gt;Powieść o IT, modelu DevOps i o tym, jak pomóc firmie w odniesieniu sukcesu&lt;/p&gt;&lt;p&gt;Authors: Gene Kim,  Kevin Behr,  George Spafford&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This is the seminal work that introduced DevOps principles to a broader audience through narrative storytelling. The book follows an IT manager tasked with saving a failing software project by implementing DevOps practices and organizational change.&lt;/p&gt;
&lt;style type=&#34;text/css&#34;&gt;.notice{--root-color:#444;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#c33;--warning-content:#fee;--info-title:#fb7;--info-content:#fec;--note-title:#6be;--note-content:#e7f2fa;--tip-title:#5a5;--tip-content:#efe}@media (prefers-color-scheme:dark){.notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}}body.dark .notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:var(--root-color);background:var(--root-background)}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:var(--title-color);background:var(--title-background)}.notice.warning .notice-title{background:var(--warning-title)}.notice.warning{background:var(--warning-content)}.notice.info .notice-title{background:var(--info-title)}.notice.info{background:var(--info-content)}.notice.note .notice-title{background:var(--note-title)}.notice.note{background:var(--note-content)}.notice.tip .notice-title{background:var(--tip-title)}.notice.tip{background:var(--tip-content)}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:.125em;position:relative}&lt;/style&gt;
&lt;div&gt;&lt;svg width=&#34;0&#34; height=&#34;0&#34; display=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;symbol id=&#34;tip-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;note-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;warning-notice&#34; viewBox=&#34;0 0 576 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;info-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z&#34;/&gt;&lt;/symbol&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&#34;notice note&#34; &gt;
&lt;p class=&#34;first notice-title&#34;&gt;&lt;span class=&#34;icon-notice baseline&#34;&gt;&lt;svg&gt;&lt;use href=&#34;#note-notice&#34;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;Note&lt;/p&gt;</description>
    </item>
    <item>
      <title>Animal Farm</title>
      <link>https://gagor.pro/book/2018/animal-farm/</link>
      <pubDate>Sun, 17 Jun 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/animal-farm/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Animal Farm by George Orwell&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Animal Farm&lt;/q&gt;&lt;p&gt;A Fairy Story&lt;/p&gt;&lt;p&gt;Author: George Orwell&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&amp;ldquo;Animal Farm&amp;rdquo; by George Orwell is a satirical novella that uses a group of farm animals to allegorically critique the Russian Revolution and the rise of Soviet totalitarianism. The story begins with the animals on Mr. Jones&amp;rsquo;s farm overthrowing their human oppressor, inspired by the ideals of equality and freedom preached by Old Major, an elder pig. However, as the pigs take control, led by Napoleon and Snowball, the revolutionary ideals quickly become corrupted.&lt;/p&gt;</description>
    </item>
    <item>
      <title>1984</title>
      <link>https://gagor.pro/book/2018/1984/</link>
      <pubDate>Thu, 17 May 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/1984/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book 1984 by George Orwell&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;1984&lt;/q&gt;&lt;p&gt;Author: George Orwell&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&amp;ldquo;1984&amp;rdquo; by George Orwell is a dystopian novel that paints a chilling portrait of a totalitarian society under constant surveillance. The story is set in a future where the Party, led by the omnipresent Big Brother, exerts absolute control over every aspect of life. The protagonist, Winston Smith, works for the Ministry of Truth, where he alters historical records to fit the Party&amp;rsquo;s narrative. The novel explores themes of oppression, propaganda, and the erasure of individuality.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Broń matematycznej zagłady</title>
      <link>https://gagor.pro/book/2018/bron-matematycznej-zaglady/</link>
      <pubDate>Thu, 22 Mar 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/bron-matematycznej-zaglady/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Broń matematycznej zagłady by Cathy O&amp;rsquo;Neil&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Broń matematycznej zagłady&lt;/q&gt;&lt;p&gt;Jak algorytmy zwiększają nierówności i zagrażają demokracji&lt;/p&gt;&lt;p&gt;Author: Cathy O&amp;#39;Neil&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Children of Dune</title>
      <link>https://gagor.pro/book/2018/children-of-dune/</link>
      <pubDate>Wed, 28 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/children-of-dune/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Children of Dune by Frank Herbert&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Children of Dune&lt;/q&gt;&lt;p&gt;Author: Frank Herbert&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;Children of Dune&lt;/em&gt; is the third book in Frank Herbert&amp;rsquo;s epic Dune series. It continues the story of Paul Atreides&amp;rsquo; children, Leto II and Ghanima, as they navigate the complex political and ecological landscape of Arrakis. The novel delves deep into themes of power, destiny, and transformation, offering a rich and thought-provoking narrative. Herbert&amp;rsquo;s intricate world-building and philosophical insights make this a compelling read for fans of science fiction and fantasy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Catch 22</title>
      <link>https://gagor.pro/book/2018/catch-22/</link>
      <pubDate>Tue, 27 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/catch-22/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Catch 22 by Joseph Heller&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Catch 22&lt;/q&gt;&lt;p&gt;Author: Joseph Heller&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Reading &lt;em&gt;Catch-22&lt;/em&gt; reminded me of the absurd humor from the TV series &lt;em&gt;M*A*S*H&lt;/em&gt;. Not that the characters are the same, but the mood often felt similar-chaotic, funny, and tragic at the same time.&lt;/p&gt;
&lt;p&gt;What stood out most to me were the smugglers who turned the war into business opportunities. They acted like classical businessmen, caring little about the fighting as long as they could profit. Another strong theme is how far people will go to save themselves. Many pretend to be crazy-or maybe even become crazy-just to escape danger.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cisza w sieci</title>
      <link>https://gagor.pro/book/2018/cisza-w-sieci/</link>
      <pubDate>Fri, 23 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/cisza-w-sieci/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Cisza w sieci by Michał Zalewski&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Cisza w sieci&lt;/q&gt;&lt;p&gt;Author: Michał Zalewski&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Dune Messiah</title>
      <link>https://gagor.pro/book/2018/dune-messiah/</link>
      <pubDate>Wed, 14 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/dune-messiah/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Dune Messiah by Frank Herbert&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Dune Messiah&lt;/q&gt;&lt;p&gt;Author: Frank Herbert&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Dune</title>
      <link>https://gagor.pro/book/2018/dune/</link>
      <pubDate>Sun, 04 Feb 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/dune/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Dune by Frank Herbert&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Dune&lt;/q&gt;&lt;p&gt;Author: Frank Herbert&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;em&gt;Dune&lt;/em&gt;, the first book in the series, is a masterpiece of science fiction literature. It introduces readers to the desert planet of Arrakis, the valuable spice melange, and the intricate political and religious dynamics that shape its society. The story follows Paul Atreides as he rises to power and fulfills his destiny. Herbert&amp;rsquo;s detailed world-building, complex characters, and exploration of themes such as politics, religion, and ecology make &lt;em&gt;Dune&lt;/em&gt; a timeless classic that continues to captivate readers.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nowy dom</title>
      <link>https://gagor.pro/book/2018/nowy-dom/</link>
      <pubDate>Tue, 30 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/nowy-dom/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Nowy dom by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Nowy dom&lt;/q&gt;&lt;p&gt;Trylogia Mrocznego Elfa. Tom 3&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Wygnanie</title>
      <link>https://gagor.pro/book/2018/wygnanie/</link>
      <pubDate>Sat, 20 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/wygnanie/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Wygnanie by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Wygnanie&lt;/q&gt;&lt;p&gt;Trylogia Mrocznego Elfa. Tom 2&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Odliczając do dnia zero</title>
      <link>https://gagor.pro/book/2018/odliczajac-do-dnia-zero/</link>
      <pubDate>Wed, 17 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/odliczajac-do-dnia-zero/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Odliczając do dnia zero by Kim Zetter&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Odliczając do dnia zero&lt;/q&gt;&lt;p&gt;Stuxnet, czyli prawdziwa historia cyfrowej broni&lt;/p&gt;&lt;p&gt;Author: Kim Zetter&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Ojczyzna</title>
      <link>https://gagor.pro/book/2018/ojczyzna/</link>
      <pubDate>Wed, 10 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2018/ojczyzna/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Ojczyzna by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Ojczyzna&lt;/q&gt;&lt;p&gt;Trylogia Mrocznego Elfa. Tom 1&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Klejnot halflinga</title>
      <link>https://gagor.pro/book/2017/klejnot-halflinga/</link>
      <pubDate>Fri, 22 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/klejnot-halflinga/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Klejnot halflinga by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Klejnot halflinga&lt;/q&gt;&lt;p&gt;Trylogia Doliny Lodowego Wichru. Tom 3&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Strumienie srebra</title>
      <link>https://gagor.pro/book/2017/strumienie-srebra/</link>
      <pubDate>Tue, 12 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/strumienie-srebra/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Strumienie srebra by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Strumienie srebra&lt;/q&gt;&lt;p&gt;Trylogia Doliny Lodowego Wichru. Tom 2&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Kryształowy relikt</title>
      <link>https://gagor.pro/book/2017/krysztalowy-relikt/</link>
      <pubDate>Tue, 05 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/krysztalowy-relikt/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Kryształowy relikt by R. A. Salvatore&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Kryształowy relikt&lt;/q&gt;&lt;p&gt;Trylogia Doliny Lodowego Wichru. Tom 1&lt;/p&gt;&lt;p&gt;Author: R. A. Salvatore&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Czysty kod</title>
      <link>https://gagor.pro/book/2017/czysty-kod/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/czysty-kod/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Czysty kod by Robert C. Martin&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Czysty kod&lt;/q&gt;&lt;p&gt;Podręcznik dobrego programisty&lt;/p&gt;&lt;p&gt;Author: Robert C. Martin&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Java. Efektywne programowanie</title>
      <link>https://gagor.pro/book/2017/java.-efektywne-programowanie/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/java.-efektywne-programowanie/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Java. Efektywne programowanie by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Java. Efektywne programowanie&lt;/q&gt;&lt;p&gt;Wydanie II&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>The Pragmatic Programmer</title>
      <link>https://gagor.pro/book/2017/the-pragmatic-programmer/</link>
      <pubDate>Sun, 03 Dec 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/the-pragmatic-programmer/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Pragmatyczny programista by Andrew Hunt, David Thomas&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Pragmatyczny programista&lt;/q&gt;&lt;p&gt;Od czeladnika do mistrza&lt;/p&gt;&lt;p&gt;Authors: Andrew Hunt,  David Thomas&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I first read this book almost 10 years ago, but didn&amp;rsquo;t write a proper review at the time. Over the recent Christmas break, I revisited it and &lt;a href=&#34;https://gagor.pro/2026/01/a-practical-guide-to-building-a-parser-in-go/&#34; &gt;gave it a second read which resulted in bit of Go programming&lt;/a&gt;
 &amp;#x1f601;.&lt;/p&gt;
&lt;p&gt;Reading it in 2025, you can feel the book is dated. The authors are enthusiastic about Java and CORBA&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, and use Perl for daily tasks. Even though I did similar things around 2015, my workflow has changed since then. Newer tools and architectures have made things even simpler.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perfekcyjna niedoskonałość</title>
      <link>https://gagor.pro/book/2017/perfekcyjna-niedoskonalosc/</link>
      <pubDate>Wed, 15 Nov 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/perfekcyjna-niedoskonalosc/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Perfekcyjna niedoskonałość by Jacek Dukaj&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Perfekcyjna niedoskonałość&lt;/q&gt;&lt;p&gt;Perfect Imperfection&lt;/p&gt;&lt;p&gt;Author: Jacek Dukaj&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;A friend who knows my love for Sci-Fi recommended Jacek Dukaj to me, starting with &lt;a href=&#34;https://gagor.pro/book/2017/extensa/&#34; &gt;&amp;ldquo;Extensa&amp;rdquo;&lt;/a&gt;
. It was a slow burn; for the first half, I was completely lost. But just as everything clicked into place, the book ended, leaving me desperate for more. I immediately picked up another of his books, &lt;a href=&#34;https://gagor.pro/book/2017/inne-piesni/&#34; &gt;&amp;ldquo;Inne pieśni&amp;rdquo;&lt;/a&gt;
 (&lt;a href=&#34;https://en.wikipedia.org/wiki/Other_Songs_%28novel%29&#34;  target=&#34;_blank&#34;&gt;&amp;ldquo;Other Songs&amp;rdquo;&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
), and fell into the same pattern: a challenging start followed by total immersion. I recall how that book played with time in a way that stretched my imagination and tickled my inner physicist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trylogia ciągu</title>
      <link>https://gagor.pro/book/2017/trylogia-ciagu/</link>
      <pubDate>Fri, 11 Aug 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/trylogia-ciagu/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Trylogia ciągu by William Gibson&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Trylogia ciągu&lt;/q&gt;&lt;p&gt;Neuromancer / Graf Zero / Mona Liza Turbo&lt;/p&gt;&lt;p&gt;Author: William Gibson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Inne pieśni</title>
      <link>https://gagor.pro/book/2017/inne-piesni/</link>
      <pubDate>Sat, 27 May 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/inne-piesni/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Inne pieśni by Jacek Dukaj&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Inne pieśni&lt;/q&gt;&lt;p&gt;Other songs&lt;/p&gt;&lt;p&gt;Author: Jacek Dukaj&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This was the second book by Dukaj I&amp;rsquo;ve read, and in my opinion, it soared past his other work, &lt;a href=&#34;https://gagor.pro/book/2017/extensa/&#34; &gt;&amp;ldquo;Extensa&amp;rdquo;&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Dukaj has a talent for building entirely new universes from the ground up. This one isn&amp;rsquo;t our familiar, atom-based reality, but a world governed by the metaphysics of Aristotle. Here, everything is composed of five elements, and their unique blend-their &amp;ldquo;Form&amp;rdquo;-defines what they are. It&amp;rsquo;s a fascinating, mind-bending concept to grasp, offering a glimpse into how philosophers perceived the world centuries ago.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Black Hat Python</title>
      <link>https://gagor.pro/book/2017/black-hat-python/</link>
      <pubDate>Mon, 22 May 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/black-hat-python/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Black Hat Python by Justin Seitz&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Black Hat Python&lt;/q&gt;&lt;p&gt;Język Python dla hakerów i pentesterów&lt;/p&gt;&lt;p&gt;Author: Justin Seitz&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Szpieg</title>
      <link>https://gagor.pro/book/2017/szpieg/</link>
      <pubDate>Mon, 22 May 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/szpieg/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Szpieg by Wiktor Suworow&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Szpieg&lt;/q&gt;&lt;p&gt;Czyli podstawy szpiegowskiego fachu&lt;/p&gt;&lt;p&gt;Author: Wiktor Suworow&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Sztuka wojny</title>
      <link>https://gagor.pro/book/2017/sztuka-wojny/</link>
      <pubDate>Mon, 22 May 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/sztuka-wojny/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Sztuka wojny by Sun Tzu, Sun Pin&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Sztuka wojny&lt;/q&gt;&lt;p&gt;Wydanie 3&lt;/p&gt;&lt;p&gt;Authors: Sun Tzu,  Sun Pin&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Extensa</title>
      <link>https://gagor.pro/book/2017/extensa/</link>
      <pubDate>Mon, 13 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/extensa/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Extensa by Jacek Dukaj&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Extensa&lt;/q&gt;&lt;p&gt;Author: Jacek Dukaj&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This was my first book by Jacek Dukaj. I was talking about sci-fi with a friend, and he recommended I check Dukaj out. He owned a few of his books but handed me this one, being the thinnest, with the words: &amp;ldquo;This one is short, read it completely to understand. You will either love or hate the style, just don&amp;rsquo;t drop it in the middle, or you won&amp;rsquo;t get it.&amp;rdquo; That&amp;rsquo;s how it all started.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wydajność Javy</title>
      <link>https://gagor.pro/book/2017/wydajnosc-javy/</link>
      <pubDate>Fri, 10 Feb 2017 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2017/wydajnosc-javy/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Wydajność Javy by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Wydajność Javy&lt;/q&gt;&lt;p&gt;Poznaj i wykorzystaj optymalne sposoby na regulowanie wydajności oprogramowania Java!&lt;/p&gt;&lt;p&gt;Authors: Charlie Hunt,  Binu John&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Gra Endera</title>
      <link>https://gagor.pro/book/2016/gra-endera/</link>
      <pubDate>Mon, 10 Oct 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2016/gra-endera/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Gra Endera by Card Orson Scott&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Gra Endera&lt;/q&gt;&lt;p&gt;Saga Endera. Tom 1&lt;/p&gt;&lt;p&gt;Author: Card Orson Scott&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Debugging commands running on memcached</title>
      <link>https://gagor.pro/2016/07/debugging-commands-running-on-memcached/</link>
      <pubDate>Wed, 13 Jul 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/07/debugging-commands-running-on-memcached/</guid>
      <description>Learn how to debug memcached servers by sniffing network traffic to inspect commands, measure transfer rates, and analyze command frequencies using common Linux tools.</description>
    </item>
    <item>
      <title>How to stole ssh session when you’re root</title>
      <link>https://gagor.pro/2016/04/how-to-stole-ssh-session-when-youre-root/</link>
      <pubDate>Wed, 27 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/04/how-to-stole-ssh-session-when-youre-root/</guid>
      <description>&lt;p&gt;It happen to me all the time that one of developers notifies me about some kind of problem that I can&amp;rsquo;t confirm from my account. Sometimes it was because of bad ssh keys configuration, other times file permissions, mostly such stuff. It&amp;rsquo;s sometimes convenient to &amp;ldquo;enter into someone&amp;rsquo;s shoes&amp;rdquo; to see what&amp;rsquo;s going on there.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re &lt;code&gt;root&lt;/code&gt; on machine you may do that like this:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Switch to developer user&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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;su developer -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;p&gt;Easy one but that&amp;rsquo;s not enough for all cases. When you use bastion host (or similar solutions) sometimes users have connection problems and it&amp;rsquo;s harder to check. When such user have &lt;code&gt;ForwardAgent&lt;/code&gt; ssh option enabled you may stole this session to check login problems.&lt;/p&gt;</description>
    </item>
    <item>
      <title>pip - uninstall package with dependencies</title>
      <link>https://gagor.pro/2016/04/pip-uninstall-package-with-dependencies/</link>
      <pubDate>Tue, 26 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/04/pip-uninstall-package-with-dependencies/</guid>
      <description>&lt;p&gt;Virtualenvs in python are cheap but from time to time you will install something with pip on your system and when time comes removing all this crap could be difficult. I found this bash snippet&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; that will uninstall package with all dependencies:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Recursive pip uninstall&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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:#66d9ef&#34;&gt;for&lt;/span&gt; dep in &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;pip show python-neutronclient | grep Requires | sed &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s/Requires: //g; s/,//g&amp;#39;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt; ; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  pip uninstall -y $dep ;
&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;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pip uninstall -y python-neutronclient
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;p&gt;Depending how you installed it, you might need to use &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Daily MySQL backups with xtrabackup</title>
      <link>https://gagor.pro/2016/04/daily-mysql-backups-with-xtrabackup/</link>
      <pubDate>Sat, 23 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/04/daily-mysql-backups-with-xtrabackup/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using standard MySQL dumps as backup technique on my VPS for few years. It works fine and backups were usable few times when I needed them. But in other places I&amp;rsquo;m using &lt;code&gt;xtrabackup&lt;/code&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. It&amp;rsquo;s faster when crating backups and a lot faster when restoring them - they&amp;rsquo;re binary so there is no need to reevaluate all SQL create tables/inserts/etc. Backups also include my.cnf config file so restoring on other machine should be easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use bastion host with Ansible</title>
      <link>https://gagor.pro/2016/04/use-bastion-host-with-ansible/</link>
      <pubDate>Fri, 22 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/04/use-bastion-host-with-ansible/</guid>
      <description>Learn how to configure Ansible to connect to hosts behind a bastion or jump host by customizing your &lt;code&gt;ssh_config&lt;/code&gt; and &lt;code&gt;ansible.cfg&lt;/code&gt; files.</description>
    </item>
    <item>
      <title>Tweaking ASUS Zenbook UX305CA on Linux</title>
      <link>https://gagor.pro/2016/04/tweaking-asus-zenbook-ux305ca-on-linux/</link>
      <pubDate>Thu, 21 Apr 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/04/tweaking-asus-zenbook-ux305ca-on-linux/</guid>
      <description>&lt;p&gt;Lately I was searching for mobile notebook that I could use for remote work. I checked f ThinkPad series but they were huge bricks that have nothing in common with &amp;lsquo;mobile&amp;rsquo; word. Then I saw ASUS Zenbook that I didn&amp;rsquo;t take into account before and it was exactly what I was searching for.&lt;/p&gt;
&lt;p&gt;Configuration of Skylake based notebook right now is not straightforward - there are still glitches and small bugs that are waiting to be fixed. I want to sum up what I&amp;rsquo;ve done after installation. I started with fresh Ubuntu 16.04 to get Debian based distro with possibly latest kernel and patches.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prefer IPv4 over IPv6</title>
      <link>https://gagor.pro/2016/03/prefer-ipv4-over-ipv6/</link>
      <pubDate>Tue, 29 Mar 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/03/prefer-ipv4-over-ipv6/</guid>
      <description>A quick tip for forcing IPv4 connections in Linux when IPv6 causes issues with package managers or other services.</description>
    </item>
    <item>
      <title>List octal file permissions in bash</title>
      <link>https://gagor.pro/2016/02/list-octal-file-permissions-in-bash/</link>
      <pubDate>Wed, 24 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/list-octal-file-permissions-in-bash/</guid>
      <description>A quick tip on how to list files with their octal permissions in bash using the &lt;code&gt;stat&lt;/code&gt; command.</description>
    </item>
    <item>
      <title>WordPress with HyperDB on PHP 7.0</title>
      <link>https://gagor.pro/2016/02/wordpress-with-hyperdb-on-php-7-0/</link>
      <pubDate>Wed, 24 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/wordpress-with-hyperdb-on-php-7-0/</guid>
      <description>&lt;p&gt;I was configuring WordPress with &lt;a href=&#34;https://pl.wordpress.org/plugins/hyperdb/&#34;  target=&#34;_blank&#34;&gt;HyperDB&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 plugin on PHP 7.0 but the only I get were constant 500 errors. As I found &lt;a href=&#34;https://wordpress.org/support/topic/constant-500-server-errors&#34;  target=&#34;_blank&#34;&gt;here&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 PHP 7.0 is not supported by HyperDB for now - it&amp;rsquo;s rely on &lt;code&gt;mysql&lt;/code&gt; php extension but in PHP 7.0 there is only &lt;code&gt;mysqli&lt;/code&gt; extension. But few folks fixed it and it&amp;rsquo;s possible to use it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically build after file change</title>
      <link>https://gagor.pro/2016/02/automatically-build-after-file-change/</link>
      <pubDate>Tue, 23 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/automatically-build-after-file-change/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m playing a lot with Docker lately. Building images, and then rebuilding, and then building again&amp;hellip; It&amp;rsquo;s pretty boring. To automate this task a little I used &lt;code&gt;inotify&lt;/code&gt; to build automatically after I changed any file. This trick could be used in many different situations.&lt;/p&gt;
&lt;h2 id=&#34;on-linux&#34;&gt;On Linux&lt;/h2&gt;
&lt;p&gt;You will need &lt;code&gt;inotify-tools&lt;/code&gt; package:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Install inotify-tools on Linux&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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;sudo apt-get install -y inotify-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;p&gt;Then run something like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install WordPress from command-line</title>
      <link>https://gagor.pro/2016/02/install-wordpress-from-command-line/</link>
      <pubDate>Mon, 15 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/install-wordpress-from-command-line/</guid>
      <description>&lt;p&gt;I never tried it before but today I needed to install WordPress&amp;hellip; From command line only. And there is a way to do this with &lt;a href=&#34;http://wp-cli.org&#34;  target=&#34;_blank&#34;&gt;&lt;code&gt;wp-cli&lt;/code&gt;&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;wp-cli-installation&#34;&gt;WP-CLI installation&lt;/h2&gt;
&lt;p&gt;First some requirements (as root):&lt;/p&gt;
&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 php5-cli php5-mysql mysql-client curl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And now installation of &lt;code&gt;wp-cli&lt;/code&gt; (as root too):&lt;/p&gt;
&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;curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod +x wp-cli.phar
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv wp-cli.phar /usr/local/bin/wp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check if it&amp;rsquo;s working:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to install and use Docker Compose</title>
      <link>https://gagor.pro/2016/02/how-to-install-and-use-docker-compose/</link>
      <pubDate>Fri, 12 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/how-to-install-and-use-docker-compose/</guid>
      <description>A quick guide to installing and using Docker Compose for automating multi-container Docker applications, including command examples and a sample configuration file.</description>
    </item>
    <item>
      <title>Manual installation of Docker on Debian/Ubuntu</title>
      <link>https://gagor.pro/2016/02/manual-installation-of-docker-on-debian-ubuntu/</link>
      <pubDate>Thu, 11 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/manual-installation-of-docker-on-debian-ubuntu/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve played with Docker a little in it early days but didn&amp;rsquo;t stick for longer with it. It&amp;rsquo;s stable now so I wanted to check how it&amp;rsquo;s running now.&lt;/p&gt;
&lt;p&gt;I really can&amp;rsquo;t accept this method of installation:&lt;/p&gt;
&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;curl -fsSL https://get.docker.com/ | sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I think that world is going to it&amp;rsquo;s end when I see such scritps&amp;hellip; I prefer to do this manually, knowing exactly what I have to do.&lt;/p&gt;
&lt;p&gt;Install prerequisites:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Some useful commands in Docker</title>
      <link>https://gagor.pro/2016/02/some-useful-commands-in-docker/</link>
      <pubDate>Thu, 11 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/some-useful-commands-in-docker/</guid>
      <description>&lt;p&gt;I started playing with Docker and here I will write some commands that where not so obvious at beginning &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;List running containers:&lt;/p&gt;
&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;docker ps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;List also not running containers:&lt;/p&gt;
&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;docker ps -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remove all containers (be careful with that):&lt;/p&gt;
&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;docker rm &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;docker ps -a -q&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remove all images:&lt;/p&gt;
&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;docker rmi &lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;docker images -q&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Docker won&amp;rsquo;t remove any old volumes used by containers, so after some time you may be interested in deleting them all:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Design Patterns in Ruby</title>
      <link>https://gagor.pro/book/2016/design-patterns-in-ruby/</link>
      <pubDate>Wed, 10 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2016/design-patterns-in-ruby/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Ruby by Russ Olsen&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Ruby&lt;/q&gt;&lt;p&gt;Wzorce projektowe&lt;/p&gt;&lt;p&gt;Author: Russ Olsen&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;My adventure with Ruby books started with &lt;a href=&#34;https://gagor.pro/book/2015/the-ruby-programming-language/&#34; &gt;&amp;ldquo;The Ruby Programming Language&amp;rdquo;&lt;/a&gt;
. To be honest, it wasn&amp;rsquo;t quite what I was looking for at the time. But &amp;ldquo;Design Patterns in Ruby&amp;rdquo; filled that gap perfectly.&lt;/p&gt;
&lt;p&gt;It provides a quick and effective introduction to the language, which is perfect if you&amp;rsquo;re already familiar with another programming language and don&amp;rsquo;t need a primer on the basics. The book then iteratively explores various programming problems and presents idiomatic Ruby solutions. I particularly enjoyed the section on composition versus inheritance, which clarified why building deep object hierarchies isn&amp;rsquo;t always the best approach. That was a lightbulb moment for me; I finally grasped the benefits of interfaces and felt like I&amp;rsquo;d become a more capable developer after reading it. The examples were clear and the exercises were engaging.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sztuka podstępu</title>
      <link>https://gagor.pro/book/2016/sztuka-podstepu/</link>
      <pubDate>Wed, 10 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2016/sztuka-podstepu/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Sztuka podstępu by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Sztuka podstępu&lt;/q&gt;&lt;p&gt;Łamałem ludzi, nie hasła&lt;/p&gt;&lt;p&gt;Authors: Kevin Mitnick,  William L. Simon&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Mass replace in WordPress posts via MySQL query</title>
      <link>https://gagor.pro/2016/02/mass-replace-in-wordpress-posts-via-mysql-query/</link>
      <pubDate>Tue, 09 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/mass-replace-in-wordpress-posts-via-mysql-query/</guid>
      <description>&lt;p&gt;I was doing a lot of changes to my old posts, switched to HTTPS, etc. Sometimes it was useful to change some particular text in all my old posts at a time, but there is no such feature in WordPress. But WordPress runs on MySQL and I could use SQL query to update such posts.&lt;/p&gt;
&lt;p&gt;Make backup - it&amp;rsquo;s not required but strongly advised &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;Now use this query as template to replace in place whatever you need:&lt;/p&gt;
&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;UPDATE&lt;/span&gt; wp_posts &lt;span style=&#34;color:#66d9ef&#34;&gt;SET&lt;/span&gt; post_content &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;REPLACE&lt;/span&gt;(post_content, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;
&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;
&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;
&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;
&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;#34;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You should see something like:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Use www.horizon.tv with Pipelight/Silverlight on Linux/Ubuntu</title>
      <link>https://gagor.pro/2016/02/use-www-horizon-tv-with-pipelight-silverlight-on-linux-ubuntu/</link>
      <pubDate>Tue, 09 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/use-www-horizon-tv-with-pipelight-silverlight-on-linux-ubuntu/</guid>
      <description>&lt;p&gt;From few days I have access to UPC&amp;rsquo;s &lt;a href=&#34;http://www.horizon.tv&#34;  target=&#34;_blank&#34;&gt;www.horizon.tv&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 platform - until now it was useless on Linux. But there is Pipelight that will use Wine to emulate Silverlight on Linux and it&amp;rsquo;s working pretty well - you&amp;rsquo;re just few commands away from achieving that:&lt;/p&gt;
&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;# stop browser&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;killall firefox
&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;# remove old version if you have it&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get remove pipelight
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now configure repos and install packages:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Intel Dual Band Wireless-AC 7260 for Desktop on Linux</title>
      <link>https://gagor.pro/2016/02/intel-dual-band-wireless-ac-7260-for-desktop-on-linux/</link>
      <pubDate>Sat, 06 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/intel-dual-band-wireless-ac-7260-for-desktop-on-linux/</guid>
      <description>&lt;p&gt;I just bought new wifi card for my desktop computer. Like in topic, it&amp;rsquo;s &lt;a href=&#34;http://www.intel.com/content/www/us/en/wireless-products/dual-band-wireless-ac-7260-bluetooth-desktop.html&#34;  target=&#34;_blank&#34;&gt;Intel Dual Band Wireless-AC 7260 for Desktop&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;I was searching for card that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;support AC standard&lt;/li&gt;
&lt;li&gt;have 5GHz network support (2,4GHz channels are cluttered heavily in my neighborhood&lt;/li&gt;
&lt;li&gt;have PCI/PCIx or USB3 connector&lt;/li&gt;
&lt;li&gt;is Linux friendly (no modules compilation by hand, support for &lt;code&gt;aircrack-ng&lt;/code&gt;, &lt;code&gt;kismet&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This one is the only I found that comply my expectations.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prepare for DoS like Cloudflare do</title>
      <link>https://gagor.pro/2016/02/prepare-for-dos-like-cloudflare-do/</link>
      <pubDate>Fri, 05 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/prepare-for-dos-like-cloudflare-do/</guid>
      <description>&lt;p&gt;I watched nice presentation about how Cloudflare protects itself against DoS. Most of us are not able to do that exactly like them but some of tips were general enough to be used on typical web front server.&lt;/p&gt;
&lt;p&gt;I took notes from this presentation and presented here. Thanks to Marek agreement I also reposted all examples (in easier to copy paste way).&lt;/p&gt;
&lt;h2 id=&#34;howto-prepare-against-ackfinrstx-mas-flood&#34;&gt;Howto prepare against ACK/FIN/RST/X-mas flood&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;conntrack&lt;/code&gt; rule:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zeitgeist activity.sqlite-wal getting huge</title>
      <link>https://gagor.pro/2016/02/zeitgeist-activity-sqlite-wal-getting-huge/</link>
      <pubDate>Thu, 04 Feb 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/02/zeitgeist-activity-sqlite-wal-getting-huge/</guid>
      <description>&lt;p&gt;I was looking at backup task running on my desk and saw that it&amp;rsquo;s spending a lot of time on &lt;code&gt;~/.local/share/zeitgeist&lt;/code&gt; directory. I checked and it had 4.6GB:&lt;/p&gt;
&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;du -sh ~/.local/share/zeitgeist/*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;118M    activity.sqlite
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;44M     activity.sqlite.bck
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;32K     activity.sqlite-shm
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;4,4G    activity.sqlite-wal
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;311M    fts.index
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;WTF? Fortunately I found &lt;a href=&#34;https://plus.google.com/&amp;#43;AlanPope/posts/BS2KWz78XoC&#34;  target=&#34;_blank&#34;&gt;here&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 that I could easily delete some of this:&lt;/p&gt;
&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;zeitgeist-daemon --quit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now check that it&amp;rsquo;s not running:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimize Nginx for performance</title>
      <link>https://gagor.pro/2016/01/optimize-nginx-for-performance/</link>
      <pubDate>Thu, 14 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/optimize-nginx-for-performance/</guid>
      <description>&lt;p&gt;There are many possible real life cases and not all optimization technics will be suitable for you but I hope it will be a good starting place.&lt;/p&gt;
&lt;p&gt;Also you shouldn&amp;rsquo;t copy paste examples with faith that they will make your server fly &amp;#x1f603; You have to support your decisions with excessive tests and help of monitoring system (ex. &lt;a href=&#34;https://gagor.pro/2016/01/grafana-installation-and-configuraton-with-influxdb-and-collectd-on-debian-ubuntu/&#34; &gt;Grafana&lt;/a&gt;
).&lt;/p&gt;
&lt;h2 id=&#34;cache-static-and-dynamic-content&#34;&gt;Cache static and dynamic content&lt;/h2&gt;
&lt;p&gt;Setting caching static and dynamic content strategy may offload your server from additional load from repetitive downloads of same, rarely updated files. This will make your site to load faster for frequent visitors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>XenServer - export VM to file</title>
      <link>https://gagor.pro/2016/01/xenserver-export-vm-to-file/</link>
      <pubDate>Tue, 12 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/xenserver-export-vm-to-file/</guid>
      <description>&lt;p&gt;Sometime you need to make quick and dirty image backup of VM running on XenServer and this post is about such case &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;List machines:&lt;/p&gt;
&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;xl list
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Name                    ID   Mem VCPUs    State    Time&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Domain-0                 &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;4066&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;     r-----  3526567.3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;webfront1.example.com    &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;4096&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;     r-----  3186487.2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;webfront2.example.com    &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;2048&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;     -b----  920408.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you may export one:&lt;/p&gt;
&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;xe vm-export vm&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;webfront1.example.com filename&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/srv/backup/webfront.xva
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Export succeeded
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You may also use &lt;code&gt;uuid&lt;/code&gt; for that - list machines with &lt;code&gt;xe vm-list&lt;/code&gt; (best with &lt;code&gt;less&lt;/code&gt;) and then:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nagios - downtime on host/service from command line with curl</title>
      <link>https://gagor.pro/2016/01/nagios-downtime-on-hostservice-from-command-line-with-curl/</link>
      <pubDate>Mon, 11 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/nagios-downtime-on-hostservice-from-command-line-with-curl/</guid>
      <description>&lt;p&gt;Sometimes deployment process or other heavy task may cause some Nagios checks to rise below normal levels and bother admin&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. If this is expected and you want to add downtime on host/service during this task you may use this script:&lt;/p&gt;
&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
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;function&lt;/span&gt; die &lt;span style=&#34;color:#f92672&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  echo $1;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  exit 1;
&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&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt; $# -eq &lt;span style=&#34;color:#ae81ff&#34;&gt;0&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;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    die &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Give hostname and time in minutes as parameter!&amp;#34;&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:#66d9ef&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[[&lt;/span&gt; $# -eq &lt;span style=&#34;color:#ae81ff&#34;&gt;1&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;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    MINUTES&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;15&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:#66d9ef&#34;&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    MINUTES&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$2
&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;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;HOST&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NAGURL&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;http://nagios.example.com/nagios/cgi-bin/cmd.cgi
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;USER&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;nagiosuser
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;PASS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;nagiospassword
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SERVICENAME&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;someservice
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;COMMENT&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Deploying new code&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export MINUTES
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&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;Scheduling downtime on &lt;/span&gt;$HOST&lt;span style=&#34;color:#e6db74&#34;&gt; for &lt;/span&gt;$MINUTES&lt;span style=&#34;color:#e6db74&#34;&gt; minutes...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# The following is urlencoded already&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STARTDATE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;date &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;+%d-%m-%Y %H:%M:%S&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&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:#75715e&#34;&gt;# This gives us the date/time X minutes from now&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ENDDATE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;date &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;+%d-%m-%Y %H:%M:%S&amp;#34;&lt;/span&gt; -d &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$MINUTES&lt;span style=&#34;color:#e6db74&#34;&gt; min&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl --silent --show-error &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data cmd_typ&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;56&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data cmd_mod&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data host&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;$HOST &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data-urlencode &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;service=&lt;/span&gt;$SERVICENAME&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data-urlencode &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;com_data=&lt;/span&gt;$COMMENT&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data trigger&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data-urlencode &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;start_time=&lt;/span&gt;$STARTDATE&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data-urlencode &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;end_time=&lt;/span&gt;$ENDDATE&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data fixed&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data hours&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data minutes&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --data btnSubmit&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;Commit &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    --insecure &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    $NAGURL -u &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$USER&lt;span style=&#34;color:#e6db74&#34;&gt;:&lt;/span&gt;$PASS&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;| grep -q &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Your command request was successfully submitted to Nagios for processing.&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt; die &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Failed to con
&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;tact nagios&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo Scheduled downtime on nagios from $STARTDATE to $ENDDATE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Threat this script as template with some tips:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Grafana - installation and configuraton with InfluxDB and CollectD on Debian/Ubuntu</title>
      <link>https://gagor.pro/2016/01/grafana-installation-and-configuraton-with-influxdb-and-collectd-on-debian-ubuntu/</link>
      <pubDate>Sun, 10 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/grafana-installation-and-configuraton-with-influxdb-and-collectd-on-debian-ubuntu/</guid>
      <description>&lt;p&gt;Now when you have &lt;a href=&#34;https://gagor.pro/2016/01/collectd-installation-and-configuration-with-influxdb-on-debianubuntu/&#34; &gt;CollectD&lt;/a&gt;
 and &lt;a href=&#34;https://gagor.pro/2016/01/influxdb-installation-and-configuration-on-debianubuntu/&#34; &gt;InfluxDB&lt;/a&gt;
 installed you may configure Grafana &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;First configure repo with current Grafana version (select your distro):&lt;/p&gt;
&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;curl https://packagecloud.io/gpg.key | sudo apt-key add -
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;deb https://packagecloud.io/grafana/testing/debian/ wheezy main
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now install package (on wheezy I needed to install &lt;code&gt;apt-transport-https&lt;/code&gt; to allow installation of packages from repo via HTTPS):&lt;/p&gt;
&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 update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install -y apt-transport-https
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install -y grafana
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By default Grafana will use &lt;code&gt;sqlite&lt;/code&gt; database to keep information about users, etc:&lt;/p&gt;</description>
    </item>
    <item>
      <title>InfluxDB - installation and configuration on Debian/Ubuntu</title>
      <link>https://gagor.pro/2016/01/influxdb-installation-and-configuration-on-debianubuntu/</link>
      <pubDate>Sat, 09 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/influxdb-installation-and-configuration-on-debianubuntu/</guid>
      <description>&lt;p&gt;I wanted/needed some statistics on few my machines. I saw earlier grafana and was impressed so this was starting point. Then I started reading about graphite, carbon and whisper, and then… I found InfluxDB. Project is young but looks promising.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start! On project page there is no info about repo but it&amp;rsquo;s available, configure it:&lt;/p&gt;
&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;curl -sL https://repos.influxdata.com/influxdb.key | apt-key add -
&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;deb https://repos.influxdata.com/debian wheezy stable&amp;#34;&lt;/span&gt; &amp;gt; /etc/apt.sources.list.d/influxdb.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;for Ubuntu use url like (of course selecting your version):&lt;/p&gt;</description>
    </item>
    <item>
      <title>CollectD - installation and configuration with InfluxDB on Debian/Ubuntu</title>
      <link>https://gagor.pro/2016/01/collectd-installation-and-configuration-with-influxdb-on-debianubuntu/</link>
      <pubDate>Fri, 08 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/collectd-installation-and-configuration-with-influxdb-on-debianubuntu/</guid>
      <description>&lt;p&gt;I wanted/needed some statistics on few my machines. I saw earlier grafana and was impressed so this was starting point. Then I started reading about graphite, carbon and whisper, and then&amp;hellip; I found InfluxDB. Project is young but looks promising&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Installation of &lt;code&gt;collectd&lt;/code&gt; is easy on Debian because packages are in default repo. One problem is that packages may be old, ex. on &lt;code&gt;wheezy&lt;/code&gt; it version 5.1. But in backports/backports-sloppy&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; you may find current 5.5, so enable backports first:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Let’s Encrypt - without auto configuration</title>
      <link>https://gagor.pro/2016/01/lets-encrypt-without-auto-configuration/</link>
      <pubDate>Mon, 04 Jan 2016 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2016/01/lets-encrypt-without-auto-configuration/</guid>
      <description>&lt;p&gt;From the first moment I heard about &lt;strong&gt;Let&amp;rsquo;s Encrypt&lt;/strong&gt; I liked it and wanted to use it as fast as possible. But the more I read how they want to implement it, the more I dislike it.&lt;br /&gt; Current project with automatic configuration is not what I want to use at all. I have many very complicated configs and I do not trust such tools enough to use them. I like UNIX&amp;rsquo;s single purpose principle, tools should do one thing and do it well - nothing more.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fail2ban - block wp-login.php brute force attacks</title>
      <link>https://gagor.pro/2015/12/fail2ban-block-wp-login-php-brute-force-attacks/</link>
      <pubDate>Thu, 31 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/fail2ban-block-wp-login-php-brute-force-attacks/</guid>
      <description>&lt;p&gt;Lately I had a lot of brute force attacks on my WordPress blog. I used basic auth to &lt;code&gt;/wp-admin&lt;/code&gt; part in nginx configuration to block this and as a better solution I wan&amp;rsquo;t to block source IPs at all on firewall.&lt;/p&gt;
&lt;p&gt;To do this, place this filter code in &lt;code&gt;/etc/fail2ban/filter.d/wp-login.conf&lt;/code&gt;:&lt;/p&gt;
&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;# WordPress brute force wp-login.php filter:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Block IPs trying to authenticate in WordPress blog
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# Matches e.g.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 178.218.54.109 - - [31/Dec/2015:10:39:34 +0100] &amp;#34;POST /wp-login.php HTTP/1.1&amp;#34; 401 188 &amp;#34;-&amp;#34; &amp;#34;Mozilla/5.0 (Windows NT 6.0; rv:34.0) Gecko/20100101 Firefox/34.0&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;#
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Definition]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;failregex = ^&amp;lt;HOST&amp;gt; .* &amp;#34;POST /wp-login.php
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreregex =
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then edit your &lt;code&gt;/etc/fail2ban/jail.local&lt;/code&gt; and add:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible on Vagrant - skipping: no hosts matched</title>
      <link>https://gagor.pro/2015/12/ansible-on-vagrant-skipping-no-hosts-matched/</link>
      <pubDate>Tue, 29 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/ansible-on-vagrant-skipping-no-hosts-matched/</guid>
      <description>&lt;p&gt;I have some Ansible roles to configure my vps, Raspberry Pi, etc. I like to test them before I broke something on my real, not clustered machines - I use Vagrant for that.&lt;br /&gt; But with it I had one problem - in playbooks I define &lt;code&gt;hosts&lt;/code&gt; as groups of severs ex. &lt;code&gt;web&lt;/code&gt; for my vps:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Example Ansible playbook&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;- &lt;span style=&#34;color:#f92672&#34;&gt;hosts&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;web&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:#f92672&#34;&gt;gather_facts&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;True&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:#f92672&#34;&gt;sudo&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;True&lt;/span&gt;
&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;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;p&gt;But testing machine wasn&amp;rsquo;t in this group and when I run vagrant I could only see:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache - Force caching dynamic PHP content with mod_headers</title>
      <link>https://gagor.pro/2015/12/apache-force-caching-dynamic-php-content-with-mod_headers/</link>
      <pubDate>Tue, 29 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/apache-force-caching-dynamic-php-content-with-mod_headers/</guid>
      <description>&lt;p&gt;Normally you want dynamic content to be fresh and not cacheable. But sometimes it may be useful to cache it, like when you have website behind reverse proxy&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. To do this try something like this:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Add new Apache conf file&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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;&amp;lt;filesmatch &amp;#34;\.(php|cgi|pl)$&amp;#34;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Header unset Pragma
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Header unset Expires
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Header set Cache-Control &amp;#34;max-age=3600, public&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/filesmatch&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html&#34;  target=&#34;_blank&#34;&gt;http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL - reset root password</title>
      <link>https://gagor.pro/2015/12/mysql-reset-root-password/</link>
      <pubDate>Mon, 28 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/mysql-reset-root-password/</guid>
      <description>&lt;p&gt;It will happen from time to time, that you&amp;rsquo;re on alien machine and have to brutally update things in db without knowing credentials. Example is for root (quite secure candidate to change because it shouldn&amp;rsquo;t be used in app &amp;#x1f603; ) but will work for any user.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;shutdown db&lt;/li&gt;
&lt;/ul&gt;
&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;service mysql stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;create text file with command like this (update user accordingly) ex. in /tmp/pwchange.txt&lt;/li&gt;
&lt;/ul&gt;
&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; PASSWORD &lt;span style=&#34;color:#66d9ef&#34;&gt;FOR&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;root&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;@&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;localhost&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; PASSWORD(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;HereYourNewPassword&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;start &lt;code&gt;mysqld&lt;/code&gt; with &lt;code&gt;--init-file&lt;/code&gt; param&lt;/li&gt;
&lt;/ul&gt;
&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;mysqld_safe --init-file&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;/tmp/pwchange.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;sometimes you may require to point configuration file ex. &lt;code&gt;--defaults-file=/etc/mysql/my.cnf&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rotate movies</title>
      <link>https://gagor.pro/2015/12/rotate-movies/</link>
      <pubDate>Mon, 28 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/rotate-movies/</guid>
      <description>&lt;p&gt;I hate movies recorded on phone in vertical position. This just short tip how I dealt with with it last time:&lt;/p&gt;
&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:#66d9ef&#34;&gt;for&lt;/span&gt; m in *.mp4
&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;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    avconv -i $m -vf &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;transpose=1&amp;#34;&lt;/span&gt; -codec:a copy -codec:v libx264 -preset slow -crf &lt;span style=&#34;color:#ae81ff&#34;&gt;23&lt;/span&gt; rotated-$m
&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;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Other examples:&lt;br /&gt;
&lt;a href=&#34;http://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg&#34;  target=&#34;_blank&#34;&gt;http://stackoverflow.com/questions/3937387/rotating-videos-with-ffmpeg&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;br /&gt;
&lt;a href=&#34;http://superuser.com/questions/578321/how-to-flip-a-video-180&#34;  target=&#34;_blank&#34;&gt;http://superuser.com/questions/578321/how-to-flip-a-video-180&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
°-vertical-upside-down-with-ffmpeg&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extract password saved in Remmina</title>
      <link>https://gagor.pro/2015/12/extract-password-saved-in-remmina/</link>
      <pubDate>Fri, 25 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/extract-password-saved-in-remmina/</guid>
      <description>&lt;p&gt;I had some passwords saved in remmina but like it always happen, I wasn&amp;rsquo;t been able to remember them when needed. Trying to restore them I found that they&amp;rsquo;re encrypted in &lt;em&gt;.remmina&lt;/em&gt; directory.&lt;/p&gt;
&lt;p&gt;Then I used this script to decrypt them &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;


&lt;div class=&#34;terminal space shadow&#34;&gt;
    &lt;div class=&#34;top&#34;&gt;
        &lt;div class=&#34;btns&#34;&gt;
            &lt;span class=&#34;circle red&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle yellow&#34;&gt;&lt;/span&gt;
            &lt;span class=&#34;circle green&#34;&gt;&lt;/span&gt;
        &lt;/div&gt;
        &lt;div class=&#34;title&#34;&gt;Extract script&lt;/div&gt;
    &lt;/div&gt;
    &lt;div class=&#34;terminalbody&#34;&gt;
        &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:#f92672&#34;&gt;import&lt;/span&gt; base64
&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; Crypto.Cipher &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; DES3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;secret &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; base64&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decodestring(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;STRING FROM remmina.prefs&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;password &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; base64&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decodestring(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;lt;STRING FROM XXXXXXX.remmina&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print DES3&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;new(secret[:&lt;span style=&#34;color:#ae81ff&#34;&gt;24&lt;/span&gt;], DES3&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;MODE_CBC, secret[&lt;span style=&#34;color:#ae81ff&#34;&gt;24&lt;/span&gt;:])&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;decrypt(password)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;&lt;br&gt;

&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;http://askubuntu.com/questions/290824/how-to-extract-saved-password-from-remmina&#34;  target=&#34;_blank&#34;&gt;http://askubuntu.com/questions/290824/how-to-extract-saved-password-from-remmina&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>I’m back</title>
      <link>https://gagor.pro/2015/12/im-back/</link>
      <pubDate>Fri, 25 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/im-back/</guid>
      <description>&lt;p&gt;After long break I&amp;rsquo;m thinking about writing more on my blog. I was reviewing my favorites/bookmarks and half of them was broken, so I can&amp;rsquo;t rely on them in case of knowledge management.&lt;/p&gt;
&lt;p&gt;I think I will write shorter, less descriptive articles just to be pointers to useful solutions from past.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache AuthBasic but excluding IP</title>
      <link>https://gagor.pro/2015/12/apache-authbasic-but-excluding-ip/</link>
      <pubDate>Wed, 23 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2015/12/apache-authbasic-but-excluding-ip/</guid>
      <description>&lt;p&gt;Allow from IP without password prompt, and also allow from any address with password prompt&lt;/p&gt;
&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;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Order deny,allow
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Deny from all
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;AuthName &amp;#34;htaccess password prompt&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;AuthUserFile /web/askapache.com/.htpasswd
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;AuthType Basic
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Require valid-user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Allow from 172.17.10.1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Satisfy Any
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;sources&#34;&gt;Sources&lt;/h5&gt;
&lt;p&gt;&lt;a href=&#34;http://www.askapache.com/htaccess/apache-authentication-in-htaccess.html&#34;  target=&#34;_blank&#34;&gt;http://www.askapache.com/htaccess/apache-authentication-in-htaccess.html&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Girl Who Kicked the Hornets&#39; Nest</title>
      <link>https://gagor.pro/book/2015/the-girl-who-kicked-the-hornets-nest/</link>
      <pubDate>Sat, 12 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/the-girl-who-kicked-the-hornets-nest/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Girl Who Kicked the Hornets&amp;rsquo; Nest by Stieg Larsson&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Girl Who Kicked the Hornets&amp;#39; Nest&lt;/q&gt;&lt;p&gt;Millenium&lt;/p&gt;&lt;p&gt;Author: Stieg Larsson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;By the time I got to &lt;em&gt;The Girl Who Kicked the Hornet’s Nest&lt;/em&gt;, I remember feeling like I’d been through a full storm of conspiracies and violence. It’s more political and slower in pace - less crime thriller, more about consequences and justice. I remember the satisfaction of closure, even if the story got a bit dense toward the end. Not an easy read, but it tied things together nicely.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Splątana sieć</title>
      <link>https://gagor.pro/book/2015/splatana-siec/</link>
      <pubDate>Thu, 10 Dec 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/splatana-siec/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Splątana sieć by Michał Zalewski&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Splątana sieć&lt;/q&gt;&lt;p&gt;Przewodnik po bezpieczeństwie nowoczesnych aplikacji WWW&lt;/p&gt;&lt;p&gt;Author: Michał Zalewski&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>The Girl Who Played with Fire</title>
      <link>https://gagor.pro/book/2015/the-girl-who-played-with-fire/</link>
      <pubDate>Thu, 12 Nov 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/the-girl-who-played-with-fire/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Girl Who Played with Fire by Stieg Larsson&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Girl Who Played with Fire&lt;/q&gt;&lt;p&gt;Millenium&lt;/p&gt;&lt;p&gt;Author: Stieg Larsson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I remember &lt;em&gt;The Girl Who Played with Fire&lt;/em&gt; as the most &amp;ldquo;thriller-like&amp;rdquo; of the trilogy. It dives deep into Lisbeth’s past and gives her even more of the spotlight, which I liked. The plot moved quickly - maybe even too quickly at times - and the whole hacking/outcast vibe was still strong. I can’t say I remember every detail, but I remember enjoying the momentum. It felt more cinematic than the first one.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Girl with the Dragon Tattoo</title>
      <link>https://gagor.pro/book/2015/the-girl-with-the-dragon-tattoo/</link>
      <pubDate>Mon, 12 Oct 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/the-girl-with-the-dragon-tattoo/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Girl with the Dragon Tattoo by Stieg Larsson&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Girl with the Dragon Tattoo&lt;/q&gt;&lt;p&gt;Millennium&lt;/p&gt;&lt;p&gt;Author: Stieg Larsson&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I read The Girl with the Dragon Tattoo quite a while ago, back when everyone seemed to be talking about it. The hype was real - and I could see why. It’s a solid crime story with a dark edge, and I especially enjoyed the touches of hacking and cyber intrigue. Sure, the tech parts weren’t always realistic, but they still hit a certain vibe that I appreciated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Ruby Programming Language</title>
      <link>https://gagor.pro/book/2015/the-ruby-programming-language/</link>
      <pubDate>Thu, 13 Aug 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/the-ruby-programming-language/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Ruby by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Ruby&lt;/q&gt;&lt;p&gt;Programowanie&lt;/p&gt;&lt;p&gt;Authors: David Flanagan,  Yukihiro Matsumoto&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I picked up this book, co-authored by Ruby creator Yukihiro &amp;ldquo;Matz&amp;rdquo; Matsumoto, to learn Ruby for my work with Chef. As a deep dive into the language&amp;rsquo;s internals, it brilliantly explains why Ruby is a top choice for creating Domain-Specific Languages (DSLs) like those used in Vagrant and Chef. The book meticulously covers the language&amp;rsquo;s core, which gave me a solid understanding of its architecture.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GIT</title>
      <link>https://gagor.pro/book/2015/git/</link>
      <pubDate>Tue, 10 Feb 2015 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2015/git/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book GIT by Włodzimierz Gajda&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;GIT&lt;/q&gt;&lt;p&gt;Rozproszony system kontroli wersji&lt;/p&gt;&lt;p&gt;Author: Włodzimierz Gajda&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Copy GTP partiotion table between disks</title>
      <link>https://gagor.pro/2014/07/copy-gtp-partiotion-table-between-disks/</link>
      <pubDate>Mon, 28 Jul 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/07/copy-gtp-partiotion-table-between-disks/</guid>
      <description>&lt;p&gt;When configuring RAID it&amp;rsquo;s quite important to have the same partition tables on every disk. I&amp;rsquo;v done this many times on msdos partition tables like this:&lt;/p&gt;
&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;sfdisk -d /dev/sda | sfdisk /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;but it&amp;rsquo;s not working any more on GPT partition tables. Hopefully it still can be done but with different toolstack &amp;#x1f604;&lt;/p&gt;
&lt;p&gt;Install &lt;code&gt;gdisk&lt;/code&gt;:&lt;/p&gt;
&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 -y gdisk
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then use sgdisk like this:&lt;/p&gt;
&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;sgdisk -R /dev/sd_dest /dev/sd_src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sgdisk -G /dev/sd_dest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;First command will copy partition from &lt;code&gt;/dev/sd_src&lt;/code&gt; to &lt;code&gt;/dev/sd_dest&lt;/code&gt;. Second will randomize partition UUID&amp;rsquo;s - needed only if you want to use disks in same machine (this is my case).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quickly setup SQL query logging on console in Django</title>
      <link>https://gagor.pro/2014/05/quickly-setup-sql-query-logging-on-console-in-django/</link>
      <pubDate>Wed, 28 May 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/05/quickly-setup-sql-query-logging-on-console-in-django/</guid>
      <description>&lt;p&gt;There is need plugin for Django, named django-debug-toolbar but it needs some time to configure. So when I need simple way to debug SQL queries I use small hack. Add to your settings.py:&lt;/p&gt;
&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;LOGGING &lt;span style=&#34;color:#f92672&#34;&gt;=&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;#39;version&amp;#39;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&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;#39;disable_existing_loggers&amp;#39;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;False&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;#39;handlers&amp;#39;&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;#39;console&amp;#39;&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;#39;level&amp;#39;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;DEBUG&amp;#39;&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;#39;class&amp;#39;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;logging.StreamHandler&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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;#39;loggers&amp;#39;&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;#39;django.db.backends&amp;#39;&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;#39;handlers&amp;#39;&lt;/span&gt;: [&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;console&amp;#39;&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;#39;level&amp;#39;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;DEBUG&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        },
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&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;&lt;p&gt;To get this working &lt;strong&gt;DEBUG&lt;/strong&gt; option have to be set to &lt;strong&gt;True&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing default php.ini file for PHP-CLI on CentOS</title>
      <link>https://gagor.pro/2014/05/changing-default-php-ini-file-for-php-cli-on-centos/</link>
      <pubDate>Thu, 08 May 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/05/changing-default-php-ini-file-for-php-cli-on-centos/</guid>
      <description>&lt;p&gt;On Debian in default installation you have different configuration files for PHP in Apache, FPM, CLI, etc. But on CentOS you have only one php.ini for all of them. In case I have, I need to have different configuration file for scripts running in CLI mode (more memory, etc). I could run it like this:&lt;/p&gt;
&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;php -c /etc/php-cli.ini script.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But this a little burdensome. So I do it like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Command to change root password</title>
      <link>https://gagor.pro/2014/05/command-to-change-root-password/</link>
      <pubDate>Thu, 08 May 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/05/command-to-change-root-password/</guid>
      <description>&lt;p&gt;Everybody knows &lt;code&gt;passwd&lt;/code&gt; command but it&amp;rsquo;s useless when you need to change ex. root password from command line without waiting for input. In such case oneliner below could help:&lt;/p&gt;
&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;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;root:new_password&amp;#34;&lt;/span&gt; | chpasswd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Install Steam on Debian/Ubuntu</title>
      <link>https://gagor.pro/2014/04/install-steam-on-debian-ubuntu/</link>
      <pubDate>Tue, 22 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/04/install-steam-on-debian-ubuntu/</guid>
      <description>&lt;p&gt;These are few steps to get Steam running on Ubuntu:&lt;/p&gt;
&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;wget -c media.steampowered.com/client/installer/steam.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;dpkg -i steam.deb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get install -f
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;solutions-for-some-issues&#34;&gt;Solutions for some issues&lt;/h2&gt;
&lt;p&gt;Some time ago I needed 32 bit flash even on 64 bit system - I don&amp;rsquo;t need it currently but I&amp;rsquo;m living this as a tip.&lt;/p&gt;
&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 adobe-flashplugin:i386
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After Ubuntu upgrade I was unable to run Steam anymore - It shouted on me with strange &amp;ldquo;networking problem&amp;rdquo;. I have to clean Steam configuration with:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rebuild yum/rpm database</title>
      <link>https://gagor.pro/2014/04/rebuild-yum-rpm-database/</link>
      <pubDate>Fri, 04 Apr 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/04/rebuild-yum-rpm-database/</guid>
      <description>&lt;p&gt;When I was trying to update packages on one host I&amp;rsquo;ve stuck with yum hung on update. I run strace and see:&lt;/p&gt;
&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;strace -p &lt;span style=&#34;color:#ae81ff&#34;&gt;43734&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Process &lt;span style=&#34;color:#ae81ff&#34;&gt;43734&lt;/span&gt; attached - interrupt to quit
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;futex&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;0x807c938, FUTEX_WAIT, 1, NULL &amp;lt;unfinished ...&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Process &lt;span style=&#34;color:#ae81ff&#34;&gt;43734&lt;/span&gt; detached
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It looks like yum database was corrupted, to repair this run:&lt;/p&gt;
&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;rm -f /var/lib/rpm/__db*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rpm --rebuilddb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yum clean all
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yum update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Instead &lt;code&gt;rm&lt;/code&gt; on db-files you could use &lt;code&gt;gzip&lt;/code&gt; to have backup of these files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nagios - run checks as root with NRPE</title>
      <link>https://gagor.pro/2014/03/nagios-run-checks-as-root-with-nrpe/</link>
      <pubDate>Sat, 29 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/nagios-run-checks-as-root-with-nrpe/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve few Nagios checks that require root privileges but running nrpe as root user is not acceptable. I prefer to use sudo for only these few commands.&lt;/p&gt;
&lt;p&gt;Run &lt;code&gt;visudo&lt;/code&gt; and coment out this line:&lt;/p&gt;
&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;#Defaults    requiretty
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This change is crucial to get scripts working.&lt;/p&gt;
&lt;p&gt;Then add at the end of file:&lt;/p&gt;
&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;%nrpe ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;ve used &lt;code&gt;nrpe&lt;/code&gt; group, but you have to add exactly group that your nrpe process uses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress - add meta tags: author, description, keywords, etc</title>
      <link>https://gagor.pro/2014/03/wordpress-add-meta-tags-author-description-keywords-etc/</link>
      <pubDate>Thu, 27 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/wordpress-add-meta-tags-author-description-keywords-etc/</guid>
      <description>&lt;p&gt;After reading some SEO stuff I wanted to add some meta tags to my WordPress blog. I found this site: &lt;a href=&#34;https://codex.wordpress.org/Meta_Tags_in_WordPress&#34;  target=&#34;_blank&#34;&gt;codex.wordpress.org/Meta_Tags_in_WordPress&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;So WordPress thinks that it&amp;rsquo;s not necessary to have this meta tags any more&amp;hellip; But I want it! &amp;#x1f603; Next funny thing is how they suggest to add meta tags: copy &lt;code&gt;header.php&lt;/code&gt; - what about theme updates?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mediawiki - recover admin rights</title>
      <link>https://gagor.pro/2014/03/mediawiki-recover-admin-rights/</link>
      <pubDate>Tue, 25 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/mediawiki-recover-admin-rights/</guid>
      <description>&lt;p&gt;Let say you have MediaWiki installation but you lost admin credentials. If you have other account or if you could create one without any rights we&amp;rsquo;re in home 😉&lt;br /&gt; We have few options to do this.&lt;/p&gt;
&lt;h2 id=&#34;reset-admin-password&#34;&gt;Reset admin password&lt;/h2&gt;
&lt;p&gt;We have to connect to database and use this SQL:&lt;/p&gt;
&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;UPDATE&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;user&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;`&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:#66d9ef&#34;&gt;SET&lt;/span&gt; user_password &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; CONCAT(
&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;SUBSTRING&lt;/span&gt;(user_password, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;3&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:#66d9ef&#34;&gt;SUBSTRING&lt;/span&gt;(MD5(user_name), &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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;#39;:&amp;#39;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   MD5(CONCAT(&lt;span style=&#34;color:#66d9ef&#34;&gt;SUBSTRING&lt;/span&gt;(MD5(user_name), &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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;#39;-&amp;#39;&lt;/span&gt;, MD5(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;new password&amp;#39;&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:#66d9ef&#34;&gt;WHERE&lt;/span&gt; user_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Admin&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Just replace &lt;em&gt;Admin&lt;/em&gt; with your username and &lt;em&gt;new password&lt;/em&gt; with your password.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking memcached status</title>
      <link>https://gagor.pro/2014/03/checking-memcached-status/</link>
      <pubDate>Fri, 21 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/checking-memcached-status/</guid>
      <description>&lt;p&gt;I need to check memory usage of memcached server so I used:&lt;/p&gt;
&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;echo stats | nc 127.0.0.1 &lt;span style=&#34;color:#ae81ff&#34;&gt;11211&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT pid &lt;span style=&#34;color:#ae81ff&#34;&gt;2743&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT uptime &lt;span style=&#34;color:#ae81ff&#34;&gt;263&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT time &lt;span style=&#34;color:#ae81ff&#34;&gt;1395438951&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT version 1.4.13
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT pointer_size &lt;span style=&#34;color:#ae81ff&#34;&gt;64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT rusage_user 0.482926
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT rusage_system 2.675593
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT curr_items &lt;span style=&#34;color:#ae81ff&#34;&gt;8667&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT total_items &lt;span style=&#34;color:#ae81ff&#34;&gt;10742&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT bytes &lt;span style=&#34;color:#ae81ff&#34;&gt;23802513&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT curr_connections &lt;span style=&#34;color:#ae81ff&#34;&gt;296&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT total_connections &lt;span style=&#34;color:#ae81ff&#34;&gt;399&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT connection_structures &lt;span style=&#34;color:#ae81ff&#34;&gt;297&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT cmd_flush &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT cmd_get &lt;span style=&#34;color:#ae81ff&#34;&gt;52578&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT cmd_set &lt;span style=&#34;color:#ae81ff&#34;&gt;10792&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT get_hits &lt;span style=&#34;color:#ae81ff&#34;&gt;28692&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT get_misses &lt;span style=&#34;color:#ae81ff&#34;&gt;23886&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT evictions &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT bytes_read &lt;span style=&#34;color:#ae81ff&#34;&gt;35984361&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT bytes_written &lt;span style=&#34;color:#ae81ff&#34;&gt;192647437&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT limit_maxbytes &lt;span style=&#34;color:#ae81ff&#34;&gt;536870912&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT threads &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT accepting_conns &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT listen_disabled_num &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT replication MASTER
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT repcached_qi_free &lt;span style=&#34;color:#ae81ff&#34;&gt;8189&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT repcached_wdata &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;STAT repcached_wsize &lt;span style=&#34;color:#ae81ff&#34;&gt;1026048&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;END
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For me, bytes value was important but you could find more about all statistics &lt;a href=&#34;https://github.com/memcached/memcached/blob/master/doc/protocol.txt#L424&#34;  target=&#34;_blank&#34;&gt;here&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Postfix - automatically drop outbound mail</title>
      <link>https://gagor.pro/2014/03/postfix-automatically-drop-outbound-mail/</link>
      <pubDate>Tue, 18 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/postfix-automatically-drop-outbound-mail/</guid>
      <description>&lt;p&gt;I have development server with postfix - I wanted to allow outbound traffic to one domain but cut off all the rest. I definitely do not want that test mail or any debug info goes to service users.&lt;/p&gt;
&lt;p&gt;I have to add something like that to &lt;code&gt;/etc/postfix/transport&lt;/code&gt;:&lt;/p&gt;
&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;allowed.domain.com :
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;* discard:
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then run:&lt;/p&gt;
&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;postmap /etc/postfix/transport
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;At end, add these to &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt;:&lt;/p&gt;
&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;transport_maps = hash:/etc/postfix/transport
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Reload postfix:&lt;/p&gt;
&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;postfix reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Test if it works:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible - ssh pipelining</title>
      <link>https://gagor.pro/2014/03/ansible-ssh-pipelining/</link>
      <pubDate>Tue, 04 Mar 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/03/ansible-ssh-pipelining/</guid>
      <description>&lt;p&gt;In recent Ansible update to 1.5 version there is really nice feature &lt;em&gt;ssh pipelining&lt;/em&gt;. This option is serious alternative to &lt;em&gt;accelerated mode&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Just add to you config file (ex. &lt;code&gt;~/.ansible.cfg&lt;/code&gt;):&lt;/p&gt;
&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;[ssh_connection]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pipelining=True
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now run any playbook - you will see the difference &amp;#x1f604;&lt;/p&gt;
&lt;p&gt;Source (and extended info about):&lt;br /&gt;
&lt;a href=&#34;http://blog.ansibleworks.com/2014/01/15/ssh-connection-upgrades-coming-in-ansible-1-5/&#34;  target=&#34;_blank&#34;&gt;http://blog.ansibleworks.com/2014/01/15/ssh-connection-upgrades-coming-in-ansible-1-5/&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chrusty, faworki</title>
      <link>https://gagor.pro/2014/02/chrusty-faworki/</link>
      <pubDate>Wed, 26 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/02/chrusty-faworki/</guid>
      <description>&lt;p&gt;To najlepszy przepis na chrusty jaki znam - wychodzą bardzo kruche i
delikatne.&lt;/p&gt;
&lt;h2 id=&#34;składniki&#34;&gt;Składniki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;4 zółtka,&lt;/li&gt;
&lt;li&gt;4 łyżki wina białego lub czerwonego,&lt;/li&gt;
&lt;li&gt;4 łyżki mąki.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sposób-przygotowania&#34;&gt;Sposób przygotowania&lt;/h2&gt;
&lt;p&gt;Wszystkie składniki wymieszać i wyrobić. Ciasto powinno być mniej wiecej
takie jak na pierogi. Bić pałką/wałkiem, składać na pół i tak kilka razy
przez ok 5 minut. Potem ciasto rozwałkować bardzo cieniutko i wykrawać
chrusty, małe bo mocno rosną. Następnie wrzucać na rozgrzany
olej/smalec.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comparing two lists in bash</title>
      <link>https://gagor.pro/2014/02/comparing-two-lists-in-bash/</link>
      <pubDate>Tue, 18 Feb 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/02/comparing-two-lists-in-bash/</guid>
      <description>&lt;p&gt;I had quite simple task - compare two lists of hosts and check if hosts from first one are also on the second one. I started with &lt;code&gt;diff&lt;/code&gt;:&lt;/p&gt;
&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;diff -u biglist.txt hosts_to_check.txt | grep -E &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;^\+&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It was fine but output needs some filtering to get what I want.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve found another example with &lt;code&gt;grep&lt;/code&gt;:&lt;/p&gt;
&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 -Fxv -f biglist.txt hosts_to_check.txt | sort -n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will search for all lines in &lt;em&gt;hosts_to_check.txt&lt;/em&gt; which don&amp;rsquo;t match any line in &lt;em&gt;biglist.txt&lt;/em&gt;. So after this I&amp;rsquo;ve got list of hosts that I have to check. That&amp;rsquo;s exactly what I need &amp;#x1f604;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Change default WSUS port from 8530 to 80 on Windows Server 2012</title>
      <link>https://gagor.pro/2014/01/change-default-wsus-port-from-8530-to-80-on-windows-server-2012/</link>
      <pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/change-default-wsus-port-from-8530-to-80-on-windows-server-2012/</guid>
      <description>Learn how to change the default WSUS port from 8530 to 80 on Windows Server 2012, ensuring compatibility with older configurations and resolving IPv6-only issues.</description>
    </item>
    <item>
      <title>Debian - Upgrade MySQL to MariaDB</title>
      <link>https://gagor.pro/2014/01/debian-upgrade-mysql-to-mariadb/</link>
      <pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/debian-upgrade-mysql-to-mariadb/</guid>
      <description>&lt;p&gt;After reading some good opinions about MariaDB I wanted to give it a try. Upgrade looks quite straight forward but I found some issues a little tricky.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Add repo and key:&lt;/p&gt;
&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;cat &amp;gt; /etc/apt/sources.list &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;SRC
&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;deb http://mirrors.supportex.net/mariadb/repo/5.5/debian wheezy main
&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;deb-src http://mirrors.supportex.net/mariadb/repo/5.5/debian wheezy main
&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;SRC&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(&lt;a href=&#34;https://downloads.mariadb.org/mariadb/repositories/#mirror=tweedo&amp;amp;#038;distro=Debian&amp;amp;#038;distro_release=wheezy&amp;amp;#038;version=5.5&#34;  target=&#34;_blank&#34;&gt;find more repositories here&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
)&lt;/p&gt;
&lt;p&gt;Now install MariaDB:&lt;/p&gt;
&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;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt-get install mariadb-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It could be better to install &lt;code&gt;mariadb-server-5.5&lt;/code&gt; and &lt;code&gt;mariadb-client-5.5&lt;/code&gt; package instead, because of &lt;a href=&#34;https://mariadb.com/kb/en/installing-mariadb-deb-files/#upgrading-mariadb-server-and-mariadb-client-packages&#34;  target=&#34;_blank&#34;&gt;this error&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - enabling SPDY with freeware certificate</title>
      <link>https://gagor.pro/2014/01/nginx-enabling-spdy-with-freeware-certificate/</link>
      <pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/nginx-enabling-spdy-with-freeware-certificate/</guid>
      <description>&lt;p&gt;I was thinking about allowing access to my website using SPDY protocol for better performance and security (and for fun of course &amp;#x1f603; ). But SPDY have one disadvantage - you need SSL certificate signed by known authority that will verfiy in common browsers. So you can&amp;rsquo;t use self signed certificates because everyone will see a warning entering your site. Certs are quite expensive so I started searching for free one and to my surprise I found such!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Searching for better code editor</title>
      <link>https://gagor.pro/2014/01/searching-for-better-code-editor/</link>
      <pubDate>Fri, 24 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/searching-for-better-code-editor/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using different code editors for different purposes. Gedit was fine for small scripts but not for bigger projects. It lacks intelligent code completion (function/class names, etc.). I was searching for convenient editor for Python, Perl, Ruby with support for frameworks like Django, Rails, etc. I know &lt;a href=&#34;https://www.sublimetext.com/3&#34;  target=&#34;_blank&#34;&gt;Sublime Text - but it&amp;rsquo;s paid&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
. &lt;del&gt;There is &lt;a href=&#34;https://limetext.org/&#34;  target=&#34;_blank&#34;&gt;LimeText&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 - open source clone, but it&amp;rsquo;s not ready to be used on daily basics.&lt;/del&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Manage Windows 8.1 and Windows Server 2012 R2 in WSUS 3.0</title>
      <link>https://gagor.pro/2014/01/manage-windows-8-1-and-windows-server-2012-r2-in-wsus-3-0/</link>
      <pubDate>Thu, 16 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/manage-windows-8-1-and-windows-server-2012-r2-in-wsus-3-0/</guid>
      <description>&lt;p&gt;After connecting few computers with Windows 8.1 to domain we found that these computers are not recognized or recognized as Windows 6.3 (which is true) on WSUS 3.0 running on Windows Server 2008. The bad thing was that they can&amp;rsquo;t properly report to WSUS and get updates from it.&lt;/p&gt;
&lt;p&gt;I found that there are two updates that have to be installed (but they&amp;rsquo;re not working without additional steps):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://support.microsoft.com/kb/2720211&#34;  target=&#34;_blank&#34;&gt;http://support.microsoft.com/kb/2720211&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://support.microsoft.com/kb/2734608&#34;  target=&#34;_blank&#34;&gt;http://support.microsoft.com/kb/2734608&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After installation of second update there are two additional steps that have to be performed to get WSUS working:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Regenerate thumbnails in Shotwell 0.15 (for last month)</title>
      <link>https://gagor.pro/2014/01/regenerate-thumbnails-in-shotwell-for-last-month/</link>
      <pubDate>Wed, 08 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/regenerate-thumbnails-in-shotwell-for-last-month/</guid>
      <description>&lt;p&gt;I love &lt;a href=&#34;http://www.yorba.org/projects/shotwell/&#34;  target=&#34;_blank&#34;&gt;Shotwell&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 for it&amp;rsquo;s simplicity and easy export to &lt;a href=&#34;http://piwigo.org/&#34;  target=&#34;_blank&#34;&gt;Piwigo&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
. After Christmas I added new photos to my library but after that I made some modifications to them (red eye reduction, etc&amp;hellip;). Because Shotwell generate thumbnails only on import, all my modifications were not visible on preview.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Loop unlooping in Javascript</title>
      <link>https://gagor.pro/2014/01/loop-unlooping-in-javascript/</link>
      <pubDate>Tue, 07 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/loop-unlooping-in-javascript/</guid>
      <description>&lt;p&gt;Few days ago I&amp;rsquo;ve read a book ‘&lt;a href=&#34;http://shop.oreilly.com/product/9780596522315.do&#34; title=&#34;Even Faster Web Sites&#34; target=&#34;_blank&#34;&gt;Even Faster Web Sites&lt;/a&gt;‘ about websites optimisation and I found one thing usefuluseful, not only on websites. There was a small tip about looploop unlooping. I want to quote them for later use.&lt;/p&gt;
&lt;h2 id=&#34;first---with-switch-statement&#34;&gt;First - with switch statement&lt;/h2&gt;
&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-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;iterations&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;ceil&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;startAt&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;do&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:#66d9ef&#34;&gt;switch&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;startAt&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;7&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;6&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;case&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#a6e22e&#34;&gt;startAt&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&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:#66d9ef&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;iterations&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;second---without-switch&#34;&gt;Second - without switch&lt;/h2&gt;
&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-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;iterations&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Math.&lt;span style=&#34;color:#a6e22e&#34;&gt;floor&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;leftover&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;%&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;if&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;leftover&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&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:#66d9ef&#34;&gt;do&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;while&lt;/span&gt;(&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;leftover&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;do&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;process&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;values&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#66d9ef&#34;&gt;while&lt;/span&gt; (&lt;span style=&#34;color:#f92672&#34;&gt;--&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;iterations&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I found second example more readable and I prefer it.&lt;br /&gt; These examples after translation could be easily used in other scripting languages.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracking users by nickname on WordPress using Google Analytics</title>
      <link>https://gagor.pro/2014/01/tracking-users-by-nickname-on-wordpress-using-google-analytics/</link>
      <pubDate>Tue, 07 Jan 2014 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2014/01/tracking-users-by-nickname-on-wordpress-using-google-analytics/</guid>
      <description>&lt;p&gt;Some time ago I write article about &lt;a href=&#34;https://gagor.pro/2012/12/piwik-sledzenie-asynchroniczne-logowanie-ksywy-komentujacego-w-wordpressie/&#34; &gt;tracking nicknames of users (from comments) on a WordPress blog with Piwik&lt;/a&gt;
. This time I&amp;rsquo;m doing same but for Google Analytics.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m using &lt;a href=&#34;http://wordpress.org/plugins/googleanalytics/&#34;  target=&#34;_blank&#34;&gt;Google Analytics&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 plugin for WordPress so I&amp;rsquo;ve edited &lt;code&gt;googleanalytics.php&lt;/code&gt; file to add some additional code for user tracking:&lt;/p&gt;
&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-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&amp;gt;
&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;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;document.&lt;span style=&#34;color:#a6e22e&#34;&gt;cookie&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;split&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;;&amp;#34;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;comment_author&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&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:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt;;&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;x&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;=&amp;#34;&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:#a6e22e&#34;&gt;y&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;=&amp;#34;&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;x&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/^\s+|\s+$/g&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&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:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author_email&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author_url&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;comment_author&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;unescape&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;_gaq&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;_gaq&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&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:#a6e22e&#34;&gt;_gaq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_setAccount&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;UA-YOUR-UNIQ-NUMBER&amp;#39;&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:#a6e22e&#34;&gt;_gaq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_setCustomVar&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Nickname&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;comment_author&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;_gaq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;_trackPageview&amp;#39;&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;function&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;ga&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;createElement&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;script&amp;#39;&lt;/span&gt;); &lt;span style=&#34;color:#a6e22e&#34;&gt;ga&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;text/javascript&amp;#39;&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;ga&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;async&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;true&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:#a6e22e&#34;&gt;ga&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https:&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;location&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;protocol&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://ssl&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;http://www&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.google-analytics.com/ga.js&amp;#39;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;getElementsByTagName&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;script&amp;#39;&lt;/span&gt;)[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]; &lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;parentNode&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;insertBefore&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;ga&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;})();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;source&#34;&gt;Source&lt;/h5&gt;
&lt;p&gt;&lt;a href=&#34;https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables?hl=pl&#34;  target=&#34;_blank&#34;&gt;https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables?hl=pl&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache - precompressing static files with gzip</title>
      <link>https://gagor.pro/2013/12/apache-precompressing-static-files-with-gzip/</link>
      <pubDate>Fri, 27 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/apache-precompressing-static-files-with-gzip/</guid>
      <description>&lt;p&gt;Some time ago I&amp;rsquo;ve show &lt;a href=&#34;https://gagor.pl/2012/12/nginx-kompresowanie-plikow-dla-gzip_static/&#34; title=&#34;Nginx - kompresowanie plików dla gzip_static&#34;&gt;how to precompress &lt;em&gt;js&lt;/em&gt; and &lt;em&gt;css&lt;/em&gt; file with gzip to be available for Nginx&amp;rsquo;s mod_gzip&lt;/a&gt;. In default configuration Apache don&amp;rsquo;t have such module but similar functionality could be achieved with few custom rewirtes.&lt;/p&gt;
&lt;p&gt;Basically we will start with these rewrites to serve gzipped CSS/JS files if they exist and the client accepts gzip compression:&lt;/p&gt;
&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;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RewriteEngine on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RewriteCond %{HTTP:Accept-encoding} gzip
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RewriteCond %{REQUEST_FILENAME}\.gz -s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;RewriteRule ^(.*)\.(js|css)$ $1\.$2\.gz [QSA]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then we need to setup proper content types for such compressed files - I know how to do this in two ways:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Android: Xposed &#43; AppOps - reclaim control over installed applications permissions</title>
      <link>https://gagor.pro/2013/12/android-xposed-appops-reclaim-control-over-installed-applications-permissions/</link>
      <pubDate>Tue, 17 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/android-xposed-appops-reclaim-control-over-installed-applications-permissions/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m happy owner of Galaxy Nexus 7 and lately I updated my tablet to
Android 4.4 Kitkat. One of features I most expected was ability to block
some permissions of some applications. Such setting was available in 4.4
version but was removed in latest 4.4.2 - Google didn&amp;rsquo;t explain it
exactly why. I don&amp;rsquo;t like when for ex. game need: camera or GPS access -
for what I asked?&lt;/p&gt;
&lt;p&gt;But there is new app so called App Ops that unhides build-in interface
allowing edit of application permissions. I strongly suggest to install
it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generate ECDSA key with OpenSSL</title>
      <link>https://gagor.pro/2013/12/generate-ecdsa-key-with-openssl/</link>
      <pubDate>Tue, 17 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/generate-ecdsa-key-with-openssl/</guid>
      <description>&lt;p&gt;After the last NSA scandal I&amp;rsquo;ve found some time to read some texts about PFS and &lt;a href=&#34;http://en.wikipedia.org/wiki/Elliptic_Curve_DSA&#34; title=&#34;Elliptic Curve DSA on Wikipedia&#34; target=&#34;_blank&#34;&gt;ECDSA&lt;/a&gt; keys lately. I always used RSA keys but wanted to give a try to &lt;a href=&#34;http://en.wikipedia.org/wiki/Elliptic_Curve_DSA&#34; title=&#34;Elliptic Curve DSA on Wikipedia&#34; target=&#34;_blank&#34;&gt;ECDSA&lt;/a&gt; so I wanted to give it a try (test performance, etc). Here is how I&amp;rsquo;ve done it.&lt;/p&gt;
&lt;p&gt;Firstly find your favorite curve. A short tip about bit length and complexity could be found &lt;a href=&#34;http://www.keylength.com/en/3/&#34; title=&#34;ECRYPT II Recommendations&#34; target=&#34;_blank&#34;&gt;here&lt;/a&gt;. From it you will now that using 256 bit ECDSA key should be enough for next 10-20 years.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Delete audio track from mkv file</title>
      <link>https://gagor.pro/2013/12/delete-audio-track-from-mkv-file/</link>
      <pubDate>Mon, 16 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/delete-audio-track-from-mkv-file/</guid>
      <description>&lt;p&gt;Lately I tried to remove some streams from MKV file - I wanted: video, audio in my language and no subtitles. I achieved it with mkvtoolnix utils.&lt;/p&gt;
&lt;p&gt;Firstly I have to identify streams in file:&lt;/p&gt;
&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;$ mkvmerge -i input_file.mkv
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;test.mkv&amp;#39;&lt;/span&gt;: container: Matroska
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 0: video &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;V_MPEG4/ISO/AVC&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 1: audio &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A_DTS&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 2: audio &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A_AC3&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 3: audio &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A_DTS&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 4: audio &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;A_AC3&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 5: subtitles &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;S_TEXT/UTF8&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Track ID 6: subtitles &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;S_TEXT/UTF8&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Chapters: &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; entries
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You could use more verbose tool &lt;em&gt;mkvinfo&lt;/em&gt; for that purpose too.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Preparing video files for streaming on website in MP4 and WEBM format</title>
      <link>https://gagor.pro/2013/12/preparing-video-files-for-streaming-on-website-in-mp4-and-webm-format/</link>
      <pubDate>Mon, 16 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/preparing-video-files-for-streaming-on-website-in-mp4-and-webm-format/</guid>
      <description>&lt;p&gt;Some time ago I prepared a PC that was responsible for batch encoding of movies to formats suitable for web players (such as. &lt;a href=&#34;http://www.videojs.com/&#34;  target=&#34;_blank&#34;&gt;Video.js&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, &lt;a href=&#34;http://www.jwplayer.com/&#34;  target=&#34;_blank&#34;&gt;JW Player&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, &lt;a href=&#34;http://flowplayer.org/&#34;  target=&#34;_blank&#34;&gt;Flowplayer&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, etc.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Running Apache with mod_spdy and PHP-FPM</title>
      <link>https://gagor.pro/2013/12/running-apache-with-mod_spdy-and-php-fpm/</link>
      <pubDate>Mon, 16 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/running-apache-with-mod_spdy-and-php-fpm/</guid>
      <description>&lt;p&gt;SPDY is new protocol proposed by Google as an alternative for HTTP(S). Currently Chrome and Firefox browsers are using it as default if available on server. It is faster in most cases by few to several percent. The side effect of using &lt;a href=&#34;http://code.google.com/p/mod-spdy/&#34;  target=&#34;_blank&#34;&gt;mod_spdy&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 is that it&amp;rsquo;s working well only with thread safe Apache&amp;rsquo;s modules. PHP module for Apache is not thread safe so we need to use PHP as CGI or FastCGI service. CGI is slow - so running mod_spdy for performance gain with CGI is simply pointless. FastCGI is better but it&amp;rsquo;s not possible to share &lt;a href=&#34;http://pecl.php.net/package/APC&#34;  target=&#34;_blank&#34;&gt;APC&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 cache in FastCGI mode (ex. using spawn-fcgi), so it&amp;rsquo;s poor too. Best for PHP is &lt;a href=&#34;http://php-fpm.org/&#34;  target=&#34;_blank&#34;&gt;PHP-FPM&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 which is FastCGI service with dynamic process manager and could use full advantages of APC. In such configuration I could switch from apache prefork to worker which should use less resources and be more predictable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Re-adding failed drive in mdadm</title>
      <link>https://gagor.pro/2013/12/re-adding-failed-drive-in-mdadm/</link>
      <pubDate>Thu, 12 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/re-adding-failed-drive-in-mdadm/</guid>
      <description>&lt;p&gt;Yesterday I have problem with fglrx witch cause ugly system reset. After that, one of my drives was marked as &lt;code&gt;failed&lt;/code&gt; in RAID5 array. Hotspare was automatically used to rebuild array. But this hotspare is the oldest and slowest drive I&amp;rsquo;ve got&amp;hellip;&lt;/p&gt;
&lt;p&gt;After rebuild I&amp;rsquo;ve tested failed drive and it was fine - no bad block, no any other issue - so I wanted it running back in array.&lt;/p&gt;
&lt;p&gt;What I do:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ansible - Dynamicaly update /etc/hosts</title>
      <link>https://gagor.pro/2013/12/ansible-dynamicaly-update-/etc/hosts/</link>
      <pubDate>Wed, 11 Dec 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/12/ansible-dynamicaly-update-/etc/hosts/</guid>
      <description>&lt;p&gt;I was configuring GlusterFS on few servers using &lt;a href=&#34;http://www.ansible.com/&#34;  target=&#34;_blank&#34;&gt;Ansible&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 and have a need to update &lt;code&gt;/etc/hosts&lt;/code&gt; with hostnames for easier configuration. I found this&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; one working:&lt;/p&gt;
&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; name: Update &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;hosts
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  lineinfile: dest&lt;span style=&#34;color:#f92672&#34;&gt;=/&lt;/span&gt;etc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;hosts regexp&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.*{{item}}$&amp;#39;&lt;/span&gt; line&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{{hostvars.{{item}}.ansible_default_ipv4.address}} {{item}}&amp;#39;&lt;/span&gt; state&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;present
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  with_items: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;{{groups.somegroup}}&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;&lt;a href=&#34;http://xmeblog.blogspot.com/2013/06/ansible-dynamicaly-update-etchosts.html&#34;  target=&#34;_blank&#34;&gt;http://xmeblog.blogspot.com/2013/06/ansible-dynamicaly-update-etchosts.html&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    <item>
      <title>Reset user password in your own Ghost Blog</title>
      <link>https://gagor.pro/2013/11/reset-user-password-in-your-own-ghost-blog/</link>
      <pubDate>Thu, 28 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/reset-user-password-in-your-own-ghost-blog/</guid>
      <description>Learn how to reset a user password in your own Ghost Blog by accessing the SQLite database and updating the password hash.</description>
    </item>
    <item>
      <title>Inodes exhaustion on XFS</title>
      <link>https://gagor.pro/2013/11/inodes-on-xfs/</link>
      <pubDate>Wed, 27 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/inodes-on-xfs/</guid>
      <description>Learn about inodes exhaustion on XFS, how to check inode limits, and how to adjust the inode percentage to prevent issues on your Linux filesystem.</description>
    </item>
    <item>
      <title>Kill with SIGSTOP and SIGCONT</title>
      <link>https://gagor.pro/2013/11/kill-with-sigstop-and-sigcont/</link>
      <pubDate>Thu, 21 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/kill-with-sigstop-and-sigcont/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve bought a NAS and customized it a little. But there was one thing which make my nights sleepless. NAS was seeking disks every 5~10 seconds - these was really irritating - especially when it was silent in room. I found that part of firmware was indexing or logging something so I wanted it dead! kill -9 was unsuccessful - process restarted after a while&amp;hellip;. wrrr&amp;hellip;&lt;/p&gt;
&lt;p&gt;I googled a little and found another signal I could use SIGSTOP, which will freeze process until I send SIGCONT to it - that was exactly what I need (because I normally use NFS/Samba and don&amp;rsquo;t need nothing more running on this device).&lt;/p&gt;</description>
    </item>
    <item>
      <title>My new toy - Iomega StorCenter ix2-200 Cloud Edition</title>
      <link>https://gagor.pro/2013/11/my-new-toy-iomega-storcenter-ix2-200-cloud-edition/</link>
      <pubDate>Tue, 19 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/my-new-toy-iomega-storcenter-ix2-200-cloud-edition/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just bought new toy - Iomega StorCenter ix2-200 Cloud Edition. I have to play with few options before I could start using it. First thing - Firmware upgrade.&lt;/p&gt;
&lt;h2 id=&#34;firmware-upgrade&#34;&gt;Firmware upgrade&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve started searching for latest firmware for ix2-200 Cloud and found that I have to register on Lenovo site to get firmware&amp;hellip; I don&amp;rsquo;t like such sites where they force me to give all private data, but after few clicks on &amp;ldquo;Recommended articles&amp;rdquo; on that site I landed here:&lt;br /&gt; &lt;a href=&#34;https://lenovo-eu-en.custhelp.com/app/answers/detail/a_id/26790&#34; target=&#34;_blank&#34;&gt;&lt;a href=&#34;https://lenovo-eu-en.custhelp.com/app/answers/detail/a_id/26790&#34;  target=&#34;_blank&#34;&gt;https://lenovo-eu-en.custhelp.com/app/answers/detail/a_id/26790&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/a&gt;&lt;br /&gt; So it looks that I don&amp;rsquo;t need to register - point for me.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reenable web interface on Polycom VBP 5300 ST from CLI</title>
      <link>https://gagor.pro/2013/11/reenable-web-interface-on-polycom-vbp-5300-st-from-cli/</link>
      <pubDate>Mon, 18 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/reenable-web-interface-on-polycom-vbp-5300-st-from-cli/</guid>
      <description>&lt;p&gt;After some configuration changes I&amp;rsquo;ve stuck with VBP not listening nor on HTTP, nor on SSH port. Last resort was to use CLI to reenable HTTP access. Connect with parameters:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Baud rate: 9600&lt;/li&gt;
&lt;li&gt;Parity: none&lt;/li&gt;
&lt;li&gt;Bits: 8&lt;/li&gt;
&lt;li&gt;Stopbits: 1&lt;/li&gt;
&lt;li&gt;Flow control: none&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then in login prompt you have to use login credentials (yes - they&amp;rsquo;re the same on every box (WTF?)):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User: - &lt;strong&gt;root&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Pass: - &lt;strong&gt;@#$%^&amp;amp;*!()&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Password is shift + 2345678&lt;strong&gt;1&lt;/strong&gt;90 - &lt;code&gt;there is 1 before 9!&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing language of articles on my blog to English</title>
      <link>https://gagor.pro/2013/11/changing-language-of-articles-on-my-blog-to-english/</link>
      <pubDate>Fri, 15 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/changing-language-of-articles-on-my-blog-to-english/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve crated this blog to get feedback from other IT guys about what I&amp;rsquo;m
doing wrong (or not good enough). But this idea failed&amp;hellip;
I have only few comments on my blog (and about thousand and a half
spams per month) - so, no feedback in my national language at all.
Switching to English should make my audience bigger and I hope to have
more attention thanks to that. This will be also a good practice of my
English skill. I hope to find enough free time to translate some of
older articles, but for now I&amp;rsquo;m thinking rather about changing engine of
blog - to something more convenient. Maybe
&lt;a href=&#34;http://octopress.org/&#34;  title=&#34;Octopress&#34;  target=&#34;_blank&#34;&gt;Octopress&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 or
&lt;a href=&#34;https://ghost.org/&#34;  title=&#34;Ghost&#34;  target=&#34;_blank&#34;&gt;Ghost&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GearmanManager: wygodne zarządzanie workerami</title>
      <link>https://gagor.pro/2013/11/gearmanmanager-wygodne-zarzadzanie-workerami/</link>
      <pubDate>Wed, 13 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/gearmanmanager-wygodne-zarzadzanie-workerami/</guid>
      <description>&lt;p&gt;Niedawno &lt;a href=&#34;https://gagor.pl/2013/10/instalacja-gearman-job-server-1-0-6-na-debianie-wheezy/&#34; title=&#34;Instalacja gearman-job-server 1.0.6 na Debianie Wheezy&#34;&gt;zainteresowałem się usługą Gearman&lt;/a&gt; i jedynej rzeczy której mi brakowało to jakiegoś łatwego mechanizmu zarządzającego workerami. Ale jak zwykle okazało się że inni mieli już ten problem i odpowiednie narzędzie istnieje - mowa o &lt;a href=&#34;https://github.com/brianlmoon/GearmanManager&#34; title=&#34;GearmanManager&#34; target=&#34;_blank&#34;&gt;GearmanManagerze&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;instalacja-gearmanmanagera&#34;&gt;Instalacja GearmanManagera&lt;/h2&gt;
&lt;p&gt;Aby zainstalować GeramanManagera na serwerze gdzie już mamy Gearmana trzeba wykonać kilka kroków (&lt;a href=&#34;https://gagor.pl/2013/10/instalacja-gearman-job-server-1-0-6-na-debianie-wheezy/#php-gearman-install&#34; title=&#34;Instalacja gearman-job-server 1.0.6 na Debianie Wheezy&#34;&gt;wcześniej powinniśmy też zainstalować moduł gearmana do php&amp;rsquo;a&lt;/a&gt;):&lt;/p&gt;
&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 git -y
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/brianlmoon/GearmanManager.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd GearmanManager/install
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;chmod +x install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;./install.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Detecting linux distro as redhat- or debian-compatible
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Where is your php executable? &lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;usually /usr/bin&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/usr/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Which PHP library to use, pecl/gearman or PEAR::Net_Gearman?
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;1&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; pecl
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;2&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; pear
&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;#? 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Installing to /usr/local/share/gearman-manager
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Installing executable to /usr/local/bin/gearman-manager
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Installing configs to /etc/gearman-manager
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Installing init script to /etc/init.d/gearman-manager
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Install ok!  Run /etc/init.d/gearman-manager to start and stop
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Worker scripts can be installed in /etc/gearman-manager/workers, configuration can be edited in /etc/gearman-manager/config.ini
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Mamy działającego GearmanManagera. Zalecam przyglądnięcie się plikowi &lt;em&gt;config-advanced.ini&lt;/em&gt; bo jest tam kilka opcji, które warto dodatkowo ustawić.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian - zablokowanie aktualizacji pakietu</title>
      <link>https://gagor.pro/2013/11/debian-zablokowanie-aktualizacji-pakietu/</link>
      <pubDate>Tue, 05 Nov 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/11/debian-zablokowanie-aktualizacji-pakietu/</guid>
      <description>&lt;p&gt;W teorii nie powinno się blokować aktualizacji pakietów bo łatają dziury itd&amp;hellip;. Ale! Zdarzyły mi się ostatnio dwie sytuacje, które do tego mnie zmusiły:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;aktualizacja hudsona kończyła się błędem przy starcie usługi,&lt;/li&gt;
&lt;li&gt;aktualizacja domU Xen skończyła się problemem z kompatybilnością mechanizmu udev w systemie i jądrze (hypervisor miał starsze jądro niż spodziewało się DomU).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;W takich sytuacjach bardzo przydaje się możliwość zablokowania aktualizacji jednej &amp;ldquo;psującej&amp;rdquo; paczki na pewien okres czasu by nie opóźniać innych aktualizacji a sobie dać czas na rozpracowanie problemu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Instalacja gearman-job-server 1.0.6 na Debianie Wheezy</title>
      <link>https://gagor.pro/2013/10/instalacja-gearman-job-server-1-0-6-na-debianie-wheezy/</link>
      <pubDate>Tue, 29 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/10/instalacja-gearman-job-server-1-0-6-na-debianie-wheezy/</guid>
      <description>&lt;p&gt;Ostatnio trafiłem na ciekawą usługę, która pozwala oddelegować długo trwające zadania z usługi webowej. Mowa o &lt;a href=&#34;http://gearman.org/&#34; title=&#34;Gearman&#34; target=&#34;_blank&#34;&gt;Gearman&amp;rsquo;ie&lt;/a&gt;. Usługa jest o tyle ciekawa że nie narzuca ani języka dla klienta (większość popularnych ma gotowe biblioteki), ani język dla skryptów w tej usłudze nie jest narzucany. Można tę usługę wykorzystać jako most pomiędzy PHP a np. Javą/Pythonem lub do zlecenia zadań z serwera na Linux&amp;rsquo;ie do wykonania na serwerze Windowsowym (bo np. narzędzia dostępne są tylko dla Windowsa). O innych zaletach można poczytać na stronce więc nie będę przynudzać.&lt;br /&gt; Standardowo zainstalowałem paczkę z repo Debiania i rozbiłem się przy kompilacji modułu z PECL&amp;rsquo;a - w repo była jakaś prehistoryczna wersja. Postanowiłem uruchomić aktualną wersje 1.0.6 z gałęzi testowej przekompilowując ją na Wheezym (by uniknąć zależności z wersji testowej).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Uruchamianie aplikacji .NET jako 32-bitowej w 64-bitowym systemie</title>
      <link>https://gagor.pro/2013/10/uruchamiania-aplikacji-net-jako-32-bitowej-w-64-bitowym-systemie/</link>
      <pubDate>Tue, 29 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/10/uruchamiania-aplikacji-net-jako-32-bitowej-w-64-bitowym-systemie/</guid>
      <description>&lt;p&gt;Kolejna zabawna sytuacja - pewna aplikacja dotNET&amp;rsquo;owa działała dziwnie na 64-bitowym systemie, a tymczasem na 32-bitowej maszynie ta sama aplikacja działała bez problemów. Jedyna różnica to inne wersje klientów ODBC na tych systemach, które po kilku testach okazały się być przyczyną całego zła.&lt;br /&gt; Pojawił się pomysł by odpalić aplikacje na 64 bitowym systemie ale w trybie 32 bit - poniżej krótkie HOWTO jak to osiągnąć:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;potrzebujemy narzędzia corflags.exe które pozwoli oznaczyć nam binarkę jako 32-bitową, do pobrania &lt;a href=&#34;http://www.microsoft.com/en-us/download/details.aspx?id=8279&#34;  target=&#34;_blank&#34;&gt;tutaj&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 a instrukcja jej użycia &lt;a href=&#34;http://msdn.microsoft.com/en-us/library/ms164699%28v=vs.100%29.aspx&#34;  target=&#34;_blank&#34;&gt;tutaj&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/li&gt;
&lt;li&gt;Instalujemy Windows SDK i zaznaczamy wyłącznie &lt;code&gt;.NET Development Tools&lt;/code&gt; w kategorii &lt;code&gt;Developer Tools / Windows Development Tools&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Odpalamy CMD i w nim CorFlags z lokalizacji: &lt;code&gt;C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin&lt;/code&gt; (przynajmniej u mnie):&lt;/li&gt;
&lt;/ul&gt;
&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;cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;CorFlags.exe c:\sciezka\do\pliku.exe /32BIT+
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tyle - aplikacja uruchomiła się bez problemu jako 32 bitowa i korzystała z 32 bitowego ODBC.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Certyfikaty nazwaSSL na własnym serwerze</title>
      <link>https://gagor.pro/2013/10/certyfikaty-nazwassl-na-wlasnym-serwerze/</link>
      <pubDate>Tue, 22 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/10/certyfikaty-nazwassl-na-wlasnym-serwerze/</guid>
      <description>&lt;p&gt;Od jakiegoś czasu można kupić w &lt;a href=&#34;https://www.nazwa.pl/cennik/cennik-certyfikatow-ssl/&#34; title=&#34;Cennik&#34; target=&#34;_blank&#34;&gt;NetArcie certyfikaty SSL, a niedawno zrobili na nie promocję - 15zł za pierwszy rok&lt;/a&gt; (za certyfikat na jedną stronkę). Tzw. tanie i dobre. Po wyrobieniu certyfikatu i zapisaniu z panelu klienta mam pliczki: stonka.crt i netart_rootca.crt, które wrzucamy do Apachego, powiedzmy tak:&lt;/p&gt;
&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;SSLCertificateFile /etc/ssl/certs/stonka.crt
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SSLCertificateKeyFile /etc/ssl/private/priv.key
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SSLCACertificateFile /etc/ssl/certs/netart_rootca.crt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Certyfikat działa w Chromie ale nie weryfikuje się w Firefoxie i Internet Explorerze. FF wyświetla błąd: &lt;strong&gt;sec_error_unknown_issuer&lt;/strong&gt; - co oznacza brak certyfikatu wystawcy gdzieś w łańcuchu certyfikatów. W FAQ zero jak chodzi o konfigurację certyfikatów na serwerze poza NetArt&amp;rsquo;em&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Postfix: ciekawy problem z smtpd_delay_reject i permit_sasl_authenticated</title>
      <link>https://gagor.pro/2013/10/postfix-ciekawy-problem-z-smtpd_delay_reject-i-permit_sasl_authenticated/</link>
      <pubDate>Tue, 08 Oct 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/10/postfix-ciekawy-problem-z-smtpd_delay_reject-i-permit_sasl_authenticated/</guid>
      <description>&lt;p&gt;Trafił mi się ostatnio ciekawy problem - otóż standardowo przed końcem roku poprawiałem filtry antyspamowe i optymalizowałem konfigurację Postfix&amp;rsquo;a. Chciałem zmienić domyślną wartość &lt;code&gt;smtpd_delay_reject=yes&lt;/code&gt; na &lt;code&gt;smtpd_delay_reject=no&lt;/code&gt; by odrzucać spamerów najwcześniej jak to możliwe. I ciekawe kuku, które sobie zrobiłem polegało na tym że sam nie mogłem wysyłać poczty po logowaniu SSL&amp;rsquo;em&amp;hellip;&lt;/p&gt;
&lt;p&gt;Dostawałem przy tym bardzo wymowną odpowiedź:&lt;/p&gt;
&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;Oct  8 16:30:39 tyr postfix/smtpd[21039]: NOQUEUE: reject: CONNECT from unknown[67.x.x.x]: 554 5.7.1 &amp;lt;unknown [67.x.x.x]&amp;gt;: Client host rejected: Access denied; proto=SMTP&amp;lt;/unknown&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Więc wrzuciłem &lt;code&gt;debug_peer_list = 67.x.x.x&lt;/code&gt; do &lt;code&gt;main.cf&lt;/code&gt; by zobaczyć dokładniej o co biega:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Instalacja Python’a na Windowsie</title>
      <link>https://gagor.pro/2013/09/instalacja-pythona-na-windowsie/</link>
      <pubDate>Wed, 25 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/instalacja-pythona-na-windowsie/</guid>
      <description>&lt;p&gt;Pomimo że Python dużo częściej wykorzystywany jest w środowiskach UNIX&amp;rsquo;owcy/Linux&amp;rsquo;owych to znajdzie się kilka fajnych zastosowań dla tego języka na Windowsie. Możliwości na instalację jest kilka, a najprostsza to wykorzystanie instalatora &lt;a href=&#34;http://www.activestate.com/activepython/downloads&#34; title=&#34;ActivePython&#34; target=&#34;_blank&#34;&gt;ActiveState&lt;/a&gt;. Wersja ta ma w sobie wszystko co potrzebne:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rozszerzenia dla API Windows&lt;/li&gt;
&lt;li&gt;menadżera pakietów PyPM&lt;/li&gt;
&lt;li&gt;dokumentację&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Niestety jakiś czas temu zmieniły się zasady licencjonowania w ActiveState i aktualne wersje dla zastosowań produkcyjnych wymagają zakupu licencji (1000$/rok - aż chce się zacytować z Dnia Świra: czizys k&amp;hellip;wa&amp;hellip;). Wiem jak lepiej wydać taką kasę więc spróbuję uzyskać podobną funkcjonalność na tym co można pobrać za darmo z sieci.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sprawdzanie zainstalowanej wersji Django</title>
      <link>https://gagor.pro/2013/09/sprawdzanie-zainstalowanej-wersji-django/</link>
      <pubDate>Mon, 16 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/sprawdzanie-zainstalowanej-wersji-django/</guid>
      <description>&lt;p&gt;Ten one liner załatwia sprawę:&lt;/p&gt;
&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;python -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;import django; print &amp;#34;.&amp;#34;.join([str(s) for s in django.VERSION]);&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Spammer screwed up</title>
      <link>https://gagor.pro/2013/09/spammer-screwed-up/</link>
      <pubDate>Sun, 15 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/spammer-screwed-up/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just received a comment on my blog with text attached below. It
looks like spam message template. I think it could be easily used for
creation of banning rules, etc. Use it in a way that will make this
dumbass spammer look even more stupid ;-)&lt;/p&gt;
&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&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} been {surfing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browsing} online more than {three&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;} hours today, yet I
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    never found any interesting article like yours&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It is} pretty worth enough
&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; me&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {In my opinion&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Personally&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;In my view}, &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; all {webmasters&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site owners&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website owners&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web owners} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; bloggers made good content as you
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    did, the {internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;net&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web} will be {much more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a lot more} useful than ever before&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {couldn&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;} {resist&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;refrain from} commenting&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Very well&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Perfectly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Well&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Exceptionally well} written&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I will&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll} {right away&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;immediately} {take hold of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;grab&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;clutch&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;grasp&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;seize&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;snatch} your {rss&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;rss
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    feed} as I {can &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t} {&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; finding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;find&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to find} your {email&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;mail} subscription
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {link&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hyperlink} &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; {newsletter&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;newsletter} service&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Do {you have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} any&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; {Please&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Kindly} {allow&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;permit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;let} me {realize&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recognize&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;understand&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recognise&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;know} {so that&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; order that} I {may just&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;may&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could} subscribe&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Thanks&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {It is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {appropriate&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;perfect&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the best} time to make some plans &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the future
&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;and&lt;/span&gt; {it is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} time to be happy&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} read this post &lt;span style=&#34;color:#f92672&#34;&gt;and&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:#66d9ef&#34;&gt;if&lt;/span&gt; I could I {want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wish to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;desire to} suggest you {few&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;some} interesting things &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; {advice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;suggestions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tips}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Perhaps&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Maybe} you {could&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can} write next articles referring to this article&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wish to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;desire to} read {more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;even more} things about it&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {It is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {appropriate&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;perfect&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the best} time to make {a few&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;some} plans &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {the future&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    longer term&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the long run} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {it is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} time to be happy&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} {read&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;learn} this {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;submit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;publish&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;put up} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; I
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {may just&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;may&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could} I {want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wish to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;desire to} {suggest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recommend&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;counsel} you {few&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;some} {interesting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fascinating&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;attention&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;grabbing} {things&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;issues} &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; {advice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;suggestions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tips}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Perhaps&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Maybe} you {could&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can} write {next&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;subsequent} articles {relating to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;referring to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;regarding} this article&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wish to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;desire to} {read&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;learn} {more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;even
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    more} {things&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;issues} {approximately&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;about} it&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} been {surfing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browsing} {online&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;line}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {more than&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;greater than} {three&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;} hours {these days&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;nowadays&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;today&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;lately&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;as of late}, {yet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;but} I {never&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;by no means} {found&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;discovered} any {interesting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fascinating&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;attention&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;grabbing} article
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    like yours&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It is} {lovely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pretty&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;beautiful} {worth&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;value&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;price} {enough&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;sufficient} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; me&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {In my opinion&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Personally&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;In my view}, &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; all {webmasters&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site owners&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    owners&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web owners} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; bloggers made {just right&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} {content&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;content material} as {you did&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you probably did}, the {internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;net&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web} {will be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;shall be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;might be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;will probably be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;will likely be} {much more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a lot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    more} {useful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;helpful} than ever before&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Ahaa, its {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fastidious} {discussion&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;conversation&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;dialogue} {regarding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;concerning&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;about&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on the topic of} this {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} {here&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;at this place} at this {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;webpage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I have read all that, so {now&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;at this time} me also commenting {here&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;at this place}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I am sure this {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} has touched all the internet {users&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;viewers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;visitors},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    its really really {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fastidious} {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} on building up new {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;webpage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Wow, this {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} is {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fastidious}, my {sister&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;younger sister} is analyzing
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {such&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;these&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;these kinds of} things, {so&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thus&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;therefore} I
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    am going to {tell&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;inform&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;let know&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;convey} her&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Saved as a favorite&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;bookmarked&lt;span style=&#34;color:#f92672&#34;&gt;!!&lt;/span&gt;}, {I really like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I love} {your blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your website}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Way cool&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; Some {very&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;extremely} valid points&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; I appreciate you
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {writing this&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;penning this} {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;write&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;up} {&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; also the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;plus the} rest of the {site is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website is} {also very&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;extremely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;also really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really} good&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Hi, {I &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; believe&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; think} {this is an excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this is a great} {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I stumbledupon it ;) {I will&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I am going to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m going to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I may} {come back&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;revisit} {once again&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;yet again} {since I&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;since i have} {bookmarked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;book marked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;book&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;marked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;saved
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    as a favorite} it&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Money &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; freedom {is the best&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;is the greatest} way to change, may you be rich &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt; to {help&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;guide} {other people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;others}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Woah&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m really {loving&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;enjoying&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;digging} the template&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;theme of this {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s simple, yet effective&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; A lot of times it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s {very hard&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very difficult&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;challenging&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tough&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;difficult&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hard} to get that &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;„&lt;/span&gt;perfect balance&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;”&lt;/span&gt; between {superb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    usability&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;user friendliness&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;usability} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {visual appearance&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;visual appeal&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appearance}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I must say {that you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} done a {awesome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great} job with this&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {In addition&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Additionally&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Also}, the blog loads {very&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;extremely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;super} {fast&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;quick} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    me on {Safari&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Internet explorer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Chrome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Opera&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Firefox}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Exceptional&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Outstanding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Excellent} Blog&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    These are {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;actually&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; fact&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;genuinely} {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;enormous&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;impressive&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic} ideas &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; {regarding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;concerning&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;about&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the topic of} blogging&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; You have touched some {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fastidious} {points&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;factors&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;things} here&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Any way keep up wrinting&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I love&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I really like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I enjoy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Everyone loves} what you guys {are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;are usually&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tend to be} up too&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {This sort of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;This type of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Such&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;This kind of} clever work &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {exposure&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;coverage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;reporting}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Keep up the {superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;terrific&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;awesome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful} works guys I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve {incorporated&lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt;added&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;included} you guys to {&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;our&lt;span style=&#34;color:#f92672&#34;&gt;||&lt;/span&gt;my
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    personal&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my own} blogroll&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; Someone
&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;in&lt;/span&gt; my {Myspace&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Facebook} group shared this {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} with us so I came to {give
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    it a look&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;look it over&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;take a look&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;check it out}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m definitely {enjoying&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;loving} the information&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {book&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;marking&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;bookmarking} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; will be tweeting this to
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    my followers&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; {Terrific&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Outstanding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Exceptional&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Excellent} blog &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;terrific&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;brilliant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;outstanding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;superb} {style &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; design&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;design &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; style&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;design}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I love&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I really like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I enjoy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Everyone loves} what you guys {are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;are usually&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tend to be} up too&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {This sort of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;This type of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Such&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;This kind of} clever work &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {exposure&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;coverage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;reporting}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Keep up the {superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;terrific&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;awesome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful} works guys I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {incorporated&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;added&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;included} you guys to {&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;our&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my personal&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my own}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    blogroll&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey} would you mind {stating&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;sharing} which blog platform you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;re {working with&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;using}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {looking&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;planning&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;going} to start my own blog
&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;in&lt;/span&gt; the near future&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;soon} but I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m having a {tough&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;difficult&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hard} time
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {making a decision&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;selecting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;choosing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;deciding} between BlogEngine&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;Wordpress&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;B2evolution &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; Drupal&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    The reason I ask is because your {design &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; style&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;design&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;layout} seems different then
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    most blogs &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m looking &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; something {completely
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    unique&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;unique}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; P&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;S {My apologies&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Apologies&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Sorry} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {getting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;being} off&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;topic but I had to ask&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey} would you mind letting
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    me know which {webhost&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hosting company&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web host}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;re {utilizing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;working with&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;using}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve loaded your blog &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; {completely different&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;different} {internet browsers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web browsers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browsers} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I must say this blog loads a lot {quicker&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;faster} then most&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Can you {suggest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recommend} a good {internet hosting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    hosting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hosting} provider at a {honest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;reasonable&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fair} price&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Thanks a lot&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Kudos&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Cheers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thank you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thanks}, I appreciate it&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I love&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I really like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Everyone loves} it {when
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;when individuals&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;when folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;whenever people} {come together&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;get together}
&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;and&lt;/span&gt; share {opinions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thoughts&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;views&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;ideas}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Great {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site}, {keep it up&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt; the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    good work&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;stick with it}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Thank you &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the {auspicious&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good} writeup&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    It &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; fact was a amusement account it&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Look advanced to {far&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;more} added
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    agreeable from you&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; {By the way&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;However}, how
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {can&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could} we communicate&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey} just wanted to give you a quick heads up&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    The {text&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;words} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; your {content&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article} seem to be running off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the screen &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; {Ie&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Internet explorer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Chrome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Firefox&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Safari&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Opera}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; sure &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; this is a {format&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;formatting} issue &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; something to
&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;do&lt;/span&gt; with {web browser&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;internet browser&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browser} compatibility but
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {thought&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;figured} I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;d post to let you know&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; The {style
&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;and&lt;/span&gt; design&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;design &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; style&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;layout&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;design} look great though&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Hope you get the {problem&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;issue} {solved&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;resolved&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fixed}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    soon&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Kudos&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Cheers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thanks}&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    This is a topic {that is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;which is} {close to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;near to}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    my heart&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;…&lt;/span&gt; {Cheers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Best wishes&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Take care&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thank you}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Where&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Exactly where} are your contact details though&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s very {easy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;simple&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;trouble&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;free&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;straightforward&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;effortless} to find out
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    any {topic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;matter} on {net&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web} as compared to {books&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;textbooks}, as I found this {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} at
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    this {website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web page}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Does your {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} have a contact page&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m having {a tough time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;problems&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;trouble} locating it but,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;d like to {send&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;shoot} you an {e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;mail&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;email}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve got some {creative ideas&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recommendations&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;suggestions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;ideas} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; your blog you might be interested &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; hearing&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Either way, great {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; I look forward to seeing it {develop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;improve&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;expand&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;grow} over time&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hola&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Greetings}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve been {following&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;reading} your {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {a long time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;some time} now &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; finally got the {bravery&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;courage} to go ahead &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; give
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    you a shout out from {New Caney&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Kingwood&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Huffman&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Porter&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Houston&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Dallas&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Austin&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Lubbock&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Humble&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Atascocita} {Tx&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Texas}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Just wanted to {tell you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;mention&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;say} keep up the {fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good} {job&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;work}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Greetings from {Idaho&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Carolina&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Ohio&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Colorado&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Florida&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Los
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    angeles&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;California}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {bored to tears&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;bored to death&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;bored} at work so I decided
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    to {check out&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browse} your {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} on my iphone during lunch &lt;span style=&#34;color:#66d9ef&#34;&gt;break&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {enjoy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;love} the {knowledge&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;info&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;information} you {present&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;provide} here
&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;and&lt;/span&gt; can&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t wait to take a look when I get home&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {shocked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;surprised} at how {quick&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fast} your blog loaded on my
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {mobile&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;cell phone&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;phone} &lt;span style=&#34;color:#f92672&#34;&gt;..&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; even using WIFI,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    just &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;G &lt;span style=&#34;color:#f92672&#34;&gt;..&lt;/span&gt; {Anyhow&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Anyways}, {awesome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;superb&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great} {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Its {like you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;such as you} {read&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;learn} my {mind&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thoughts}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    You {seem&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appear} {to understand&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to know&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to grasp} {so much&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a lot} {approximately&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;about} this, {like you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;such as
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    you} wrote the {book&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;e&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;book&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;guide&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;ebook&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;e book} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; it &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; something&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I think&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I feel&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I believe} {that you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that you simply&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that you just}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {could&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can} &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; with {some&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a few} {&lt;span style=&#34;color:#f92672&#34;&gt;%|&lt;/span&gt;p&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;c&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;percent} to {force&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pressure&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;drive&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;power}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the message {house&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;home} {a bit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a little bit}, {however&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;but}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {other than&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;instead of} that, {this is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that is} {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;magnificent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} blog&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {A great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;An excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;A fantastic} read&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I will} {definitely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;certainly} be
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    back&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I visited {multiple&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;many&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;several&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;various} {websites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web pages&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blogs} {but&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;except&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;however} the audio {quality&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;feature} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; audio songs {current&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;present&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;existing}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    at this {website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web page} is {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;actually&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; fact&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;genuinely}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {marvelous&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fabulous&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;superb}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello}, i read your blog {occasionally&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;from time to time} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; i own a similar one &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; i was just
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {wondering&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;curious} &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; you get a lot of spam {comments&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;responses&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;feedback&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;remarks}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    If so how &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; you {prevent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;reduce&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;stop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;protect against} it, any plugin &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; anything you can {advise&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;suggest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recommend}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I get so much lately it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s driving me {mad&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;insane&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;crazy} so any
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {assistance&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;help&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;support} is very much appreciated&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Greetings&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; {Very helpful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Very useful} advice {within this&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; this particular} {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {It is the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s the} little changes {that make&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;which will make&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that produce&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that will make} {the biggest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the largest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the greatest&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the most important&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the most significant} changes&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Thanks a lot&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; sharing&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I seriously&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I absolutely} love {your blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    website}&lt;span style=&#34;color:#f92672&#34;&gt;..&lt;/span&gt; {Very nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Great} colors &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; theme&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Did you {create&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;develop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;make&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;build} {this website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this amazing site} yourself&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; Please reply back as I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {looking to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;trying to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;planning to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wanting to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;hoping to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;attempting to} create {my own&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my very own&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;my own personal}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {would like to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;would
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    love to} {know&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;learn&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;find out} where you got this from
&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;or&lt;/span&gt; {what the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;exactly what the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;just what the} theme
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {is called&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;is named}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thank you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Cheers&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Appreciate it&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Kudos}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Howdy}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; This {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog post} {couldn&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;} be written
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {any better&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;much better}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; {Reading through&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Looking at&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Going
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    through&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Looking through} this {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article} reminds me of my
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    previous roommate&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; He {always&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;constantly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;continually} kept {talking about&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;preaching about} this&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I will&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I am going to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I most certainly will} {forward&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;send} {this article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this post} to him&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Pretty sure&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Fairly certain} {he will&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;he&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;he&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s going to} {have a good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;have a very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;have
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    a great} read&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Thank you &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thanks &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many thanks &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I appreciate you &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;} sharing&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Wow&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Whoa&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Incredible&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Amazing}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; This blog looks {exactly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;just} like my old one&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s on a {completely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;entirely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;totally} different {topic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;subject}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    but it has pretty much the same {layout&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;page layout} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; design&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Outstanding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Superb} choice of colors&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {There is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;There&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {definately&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;certainly} {a lot to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a great deal to}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {know about&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;learn about&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;find out about} this {subject&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;topic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;issue}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I love&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I really like} {all the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all of the} points
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {you made&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve made&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you have made}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {You made&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;You&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve made&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;You have made} some {decent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really good} points there&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {looked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;checked} {on the internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on the web&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the net} {&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; more info&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; more information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to find out more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to learn more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; additional information} about the issue &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    found {most individuals&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;most people} will go along
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    with your views on {this website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this web site}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;What&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s up}, I {log on to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;check&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;read} your {new stuff&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blogs&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} {regularly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;like every
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    week&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;daily&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on a regular basis}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Your {story&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;telling&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;humoristic} style is {awesome&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;witty}, keep
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {doing what you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;re doing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;up the good work&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it up}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {simply&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;just} {could &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;couldn&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t} {leave&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;depart&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;go away} your {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} {prior to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;before}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    suggesting that I {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;extremely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;actually} {enjoyed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;loved} {the standard&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the usual} {information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;info} {a person&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;an individual} {supply&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;provide} {&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to your} {visitors&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;guests}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Is {going to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;gonna} be {back&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;again} {frequently&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;regularly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;incessantly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;steadily&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;ceaselessly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;often&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;continuously} {&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; order to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to} {check up
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    on&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;check out&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;inspect&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;investigate cross&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;check} new posts&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I wanted&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I needed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I need to} to thank you &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    this {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good} read&lt;span style=&#34;color:#f92672&#34;&gt;!!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {definitely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;certainly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;absolutely} {enjoyed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;loved} every {little bit of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;bit of} it&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve got&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I have got} you {bookmarked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;book marked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;book&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;marked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;saved as a favorite} {to check out&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to look at} new
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {stuff you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;things you} post&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;…&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;What&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s up}, just wanted to {mention&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;say&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tell you}, I {enjoyed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;liked&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;loved} this
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog post}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; It was {inspiring&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;funny&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;practical&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;helpful}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Keep on posting&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {{leave&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;drop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{write&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;create}} a {comment&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;leave a response}&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;drop a {comment&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;leave a response}&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{comment&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;leave a response}} {each time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;when&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;whenever} I {appreciate&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;especially enjoy}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    a {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article} on a {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website}&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; I
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    have} something to {add&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;contribute&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;valuable to contribute} {to the discussion&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to the conversation}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {It is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Usually it is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Usually it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;It&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {a result of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;triggered by&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;caused by} the {passion&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fire&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;sincerness} {communicated&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;displayed} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article} I {read&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;looked at&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;browsed}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    And {on&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;after} this {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article} Kopiowanie wolumenów LVM z dd i
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    netcat &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; timor&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s site&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I {{was&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;was actually} moved&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{was&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;was actually} excited} enough to
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {drop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{leave&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;drop&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{write&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;create}}&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post} a {thought&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{comment&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{comment&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;leave a response}a response}} {:&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;P&lt;span style=&#34;color:#f92672&#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;;&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;|&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:#f92672&#34;&gt;-&lt;/span&gt;)} I {&lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;actually &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; have} {{some&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a few}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    questions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a couple of questions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; questions} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; you {&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    you {don&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;t&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;usually &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;tend &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; to} mind&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {allright&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;okay}}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Is it&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Could it be} {just&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;only&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;simply} me
&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;or&lt;/span&gt; {&lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;does it {seem&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appear&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;give the impression&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;look&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;look as &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;look
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    like} like} {some&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a few} of {the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;these} {comments&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;responses&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;remarks} {look&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appear&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;come across}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {like they are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;as &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; they are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;like} {coming from&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;written by&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;left by} brain dead {people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;visitors&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;individuals}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&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:#f92672&#34;&gt;-&lt;/span&gt;P And, &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; you are {posting&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;writing} {on&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;at} {other&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;additional} {sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;social sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;online sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;online social
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    sites&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;places}, {I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;d&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I would} like to {follow&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;keep up with} {you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;{anything&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;everything} {new&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fresh} you have to post}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Could&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Would} you {list&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;make a list} {all&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    one&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the complete urls} of {your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all your} {social&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;communal&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;community&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;public&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;shared} {pages&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;sites} like your {twitter feed, Facebook page &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; linkedin profile&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;linkedin profile, Facebook page &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; twitter feed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Facebook page, twitter feed, &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; linkedin profile}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello}, I enjoy reading {all of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;through} your {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;article
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    post}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I {like&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wanted} to write a little comment to support you&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {always&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;constantly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every time} spent my half an hour to read this {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;webpage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s {articles&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;posts&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;articles &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; reviews&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;content} {everyday&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;daily&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every day&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    time} along with a {cup&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;mug} of coffee&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {always&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; all time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all the time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;constantly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every time}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    emailed this {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;webpage&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site} post page to all my {friends&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;associates&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;contacts},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {because&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;since&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;as&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the reason that} &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    like to read it {then&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;after that&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;next&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;afterward} my {friends&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;links&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;contacts} will too&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    My {coder&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;programmer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;developer} is trying to {persuade&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;convince} me to move to
&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;net from PHP&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I have always disliked the idea because of the {expenses&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;costs}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    But he&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s tryiong none the less&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve been using {Movable&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;type&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;WordPress}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    on {a number of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a variety of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;numerous&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;several&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;various} websites &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; about a
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    year &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; am {nervous&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;anxious&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;worried&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;concerned} about switching to another platform&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I have heard {fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    things about blogengine&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;net&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Is there a way I can {transfer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;import} all my
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wordpress {content&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;posts} into it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; {Any kind of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Any} help would be {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;greatly} appreciated&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Good day}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; I could have sworn I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve {been to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;visited} {this blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your blog} before but after {browsing through&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;going through&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;looking at} {some of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a few of the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;many of the} {posts&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;articles} I realized it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s new to me&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Anyways&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Anyhow&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Nonetheless&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Regardless}, I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m {definitely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;certainly} {happy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleased&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;delighted} {I
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    found&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I discovered&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I came across&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I stumbled upon} it &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll be {bookmarking&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;book&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;marking} it &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; checking back {frequently&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;regularly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;often}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Terrific&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Wonderful} {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;work}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt; {This is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;That is} {the type of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the kind of} {information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;info} {that
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    are meant to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that are supposed to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;that should} be shared {around the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;across the} {web&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;net}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Disgrace&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Shame} on {the {seek&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;search} engines&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Google} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {now &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;no longer}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    positioning this {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;submit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;publish&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;put up} {upper&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;higher}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Come on over &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {talk over with&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;discuss with&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;seek advice from&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;visit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;consult with} my {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Thank you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Thanks} &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Heya {i&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;i am} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the first time here&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I {came across&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;found} this board &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; I find It {truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really} useful &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; it
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    helped me out {a lot&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;much}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I hope to give something back &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {help&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;aid} others like you {helped&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;aided} me&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Greetings}, {I think&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I believe&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I
&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;do&lt;/span&gt; believe&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; think&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;There&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s no doubt that} {your site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your blog} {might be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;may be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could possibly be} having {browser&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;internet browser&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web browser} compatibility {issues&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;problems}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {When I&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Whenever I} {look at your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;take a look at your} {website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; Safari,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    it looks fine {but when&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;however when&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;however, &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;however, when} opening &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; {Internet Explorer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;IE&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;E&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {it has&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s got} some overlapping issues&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I just&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I simply&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I merely}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    wanted to {give you a&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;provide you with a} quick heads up&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Other than that&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Apart from that&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Besides that&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Aside from that}, {fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {A person&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Someone&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Somebody} {necessarily&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;essentially} {lend a hand&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;help&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;assist} to make {seriously&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;critically&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;significantly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;severely} {articles&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;posts} {I would&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I might&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;d} state&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {This is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;That is} the {first&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;very first} time I frequented your {web page&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website page} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {to this point&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;so far&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thus far&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;up to now}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {amazed&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;surprised} with the {research&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;analysis} you made to {create&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;make} {this actual&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;this particular} {post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;submit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;publish&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;put up} {incredible&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;amazing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;extraordinary}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Magnificent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Excellent} {task&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;process&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;activity&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;job}&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Heya {i&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;i am} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {the primary&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the first} time here&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {came across&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;found} this board &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; I {&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; finding&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;find&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to find} It {truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really} {useful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;helpful} &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&lt;/span&gt; it helped me out {a lot&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;much}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I am hoping&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I hope&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m hoping} {to give&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to offer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to provide&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to present} {something&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;one thing} {back&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;again} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {help&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;aid} others {like you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;such as you} {helped&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;aided} me&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi there&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Howdy&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Good day&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hey there}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I just&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I simply} {would like to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;want to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wish to} {give you a&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;offer you a} {huge&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;big} thumbs
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    up {&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; the&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; your} {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} {info&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;information} {you have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve got&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you have got} {here&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;right here} on
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    this post&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I will be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I am} {coming back to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;returning to} {your blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your web site} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; more soon&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    I {always&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all the time&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every time} used to {read&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;study} {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; news papers but now as I am a user
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    of {internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;net} {so&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thus&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;therefore} from now I am
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    using net &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {articles&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;posts&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;articles &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    reviews&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;content}, thanks to web&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Your {way&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;method&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;means&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;mode} of {describing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;explaining&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;telling} {everything&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;all&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;the whole thing} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    this {article&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;piece of writing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;paragraph} is {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;actually&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    fact&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;truly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;genuinely} {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;pleasant&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fastidious}, {all&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;every one} {can&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;be able to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;be capable of} {easily&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;without difficulty&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;effortlessly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;simply} {understand&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;know&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;be
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    aware of} it, Thanks a lot&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello} there, {I found&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I discovered} your {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site} {by means of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;via&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;by
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    the use of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;by way of} Google {at the same time as&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;whilst&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;even
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    as&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt;} {searching &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;looking &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;} a {similar&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;comparable&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;related} {topic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;matter&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;subject}, your {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} {got here&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;came} up, it {looks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appears&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;seems&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;seems to be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;appears
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    to be like} {good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I have&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ve} bookmarked it &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; my google bookmarks&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hello&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hi} there, {simply&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;just} {turned into&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;became&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;was&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;become&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;changed into}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {aware of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;alert to} your {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog} {thru&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;through&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;via} Google, {&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; found&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    located} that {it is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {really&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;truly} informative&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I am} {gonna&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;going to} {watch out&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;be careful}
&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; brussels&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {I will&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;ll} {appreciate&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;be grateful} {&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;should you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;when you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; the event
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;case&lt;/span&gt; you&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; those who&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; you happen to} {&lt;span style=&#34;color:#66d9ef&#34;&gt;continue&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;proceed} this {&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; future}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {A lot of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Lots of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Many&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Numerous} {other folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;other people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;people} {will be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;shall be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;might be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;will probably be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;can be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;will likely be}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    benefited {from your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;out of your} writing&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Cheers&lt;span style=&#34;color:#f92672&#34;&gt;!|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I am&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m} curious to find out what blog {system&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;platform} {you have been&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you happen to be&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;re} {working with&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;utilizing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;using}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {experiencing&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;having} some {minor&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;small} security {problems&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;issues} with my latest {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;blog} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {I would&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;d} like to find something more {safe&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;risk&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;free&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;safeguarded&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;secure}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Do you have any {solutions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;suggestions&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;recommendations}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I am&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m} {extremely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really} impressed with your writing skills {&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; also&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;as
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    well as} with the layout on your {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Is this a paid theme &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    did you {customize&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;modify} it yourself&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; {Either way&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Anyway} keep up the {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} quality
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    writing, {it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it is} rare to see a {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great} blog like this one
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {these days&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;nowadays&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;today}&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I am&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m} {extremely&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;really} {inspired&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;impressed} {with your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;together with your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;along with your} writing
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {talents&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;skills&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;abilities} {&lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; also&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;as {smartly&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;well&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;neatly} as} with the {layout&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;format&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;structure} {&lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;on your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to your}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog}&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {Is this&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Is that this} a paid {subject&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;topic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;subject matter&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;theme} &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; did you {customize&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;modify}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    it {yourself&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;your self}&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; {Either way&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Anyway} {stay&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;keep} up the
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} {quality&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;high quality} writing, {it&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;it is} {rare&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;uncommon} {to peer&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to see&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;to look}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    a {nice&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great} {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog} like this one {these days&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;nowadays&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;today}&lt;span style=&#34;color:#f92672&#34;&gt;..|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello}, Neat post&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; {There is&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;There&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;s} {a problem&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;an
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    issue} {with your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;together with your&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;along with your} {site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website} &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; {internet&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web} explorer,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {may&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;might&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;could&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;would} {check&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;test} this&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;?&lt;/span&gt; IE {still&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;nonetheless} is the {marketplace&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;market} {leader&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;chief} &lt;span style=&#34;color:#f92672&#34;&gt;and&lt;/span&gt; {a large&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a big&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a huge} {part of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;section of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;component to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;portion of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;component
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;element of} {other folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;folks&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;other people&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;people} will {leave out&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;omit&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;miss&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;pass&lt;/span&gt; over}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    your {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;magnificent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} writing {due to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;because of} this
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    problem&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I am} &lt;span style=&#34;color:#f92672&#34;&gt;not&lt;/span&gt; sure where {you are&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;you&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;re} getting your {info&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;information},
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    but {good&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;great} topic&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; I needs to spend some time learning {more&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;much
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    more} &lt;span style=&#34;color:#f92672&#34;&gt;or&lt;/span&gt; understanding more&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; Thanks &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; {great&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;wonderful&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;fantastic&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;magnificent&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;excellent} {information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;info} I was looking &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    this {information&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;info} &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; my mission&lt;span style=&#34;color:#f92672&#34;&gt;.|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    {Hi&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;Hello}, i think that i saw you visited
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    my {blog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;weblog&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site} {so&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;thus} i
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    came to &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;“&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; the favor&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;”&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;{I am&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;I&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;’&lt;/span&gt;m} {trying
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    to&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;attempting to} find things to {improve&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;enhance} my {website&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;site&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;web
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    site}&lt;span style=&#34;color:#f92672&#34;&gt;!&lt;/span&gt;I suppose its ok to use {some of&lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;a few of} your ideas
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Raspberry Pi: pierwsze kroki</title>
      <link>https://gagor.pro/2013/09/raspberry-pi-pierwsze-kroki/</link>
      <pubDate>Fri, 13 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/raspberry-pi-pierwsze-kroki/</guid>
      <description>&lt;p&gt;Wyprzeć się nie mogę że gadżety działające na Linuksie po prostu mnie kręcą, więc tylko kwestią czasu było aż Pi zawita na moim biurku. Zakupiłem więc &lt;a href=&#34;http://www.kamami.pl/index.php?productID=196694&#34;  target=&#34;_blank&#34;&gt;model B w drugiej wersji&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, &lt;a href=&#34;http://www.kamami.pl/index.php?ukey=product&amp;amp;#038;productID=199605&#34;  target=&#34;_blank&#34;&gt;obudowę z możliwością mocowania VESA&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, &lt;a href=&#34;http://www.art-multimedia.pl/index/viewproduct/id/18788/idSub/13314/idCat/15755/type/producer/productName/KABEL%20HDMI%20m%C4%99ski/HDMI%201.4%20m%C4%99ski%201.5M%20eco%20with%20ETHERNET%20ART%20oem&#34;  target=&#34;_blank&#34;&gt;kabelek HDMI&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, ładowarka z mojej myszy pasowała idealnie (5.05V i 1A) i na początek karta SD klasa 10 4GB.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - przydatne rewrite’y i różne sztuczki</title>
      <link>https://gagor.pro/2013/09/nginx-przydatne-rewritey-i-rozne-sztuczki/</link>
      <pubDate>Mon, 09 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/nginx-przydatne-rewritey-i-rozne-sztuczki/</guid>
      <description>&lt;p&gt;Polubiłem Nginx&amp;rsquo;a i wykorzystuję go na coraz więcej sposobów. Kilka rzeczy udało mi się całkiem fajnie w nim skonfigurować i postanowiłem zebrać te przykłady by następnym razem gdy postanowię do nich sięgnąć nie musieć wertować konfigów po serwerach &amp;#x1f603;&lt;/p&gt;
&lt;h2 id=&#34;słowo-wstępu&#34;&gt;Słowo wstępu&lt;/h2&gt;
&lt;p&gt;Niektóre rewrite&amp;rsquo;y kończą się znakiem &lt;code&gt;?&lt;/code&gt; - czemu?&lt;/p&gt;
&lt;p&gt;Otóż Nginx próbuje automatycznie dodawać parametry na końcu przepisanego adresu. Jeśli jednak wykorzystamy zmienną &lt;code&gt;$request_uri&lt;/code&gt; to ona sama w sobie zawiera już parametry zapytania (czyli to co w URI znajduje się po znaku &lt;code&gt;?&lt;/code&gt;) i właśnie dodanie pytajnika tuż za tą zmienną powoduje że argumenty nie są dublowane.&lt;/p&gt;</description>
    </item>
    <item>
      <title>tor: generowanie milszej nazwy dla hidden service</title>
      <link>https://gagor.pro/2013/09/tor-generowanie-milszej-nazwy-dla-hidden-service/</link>
      <pubDate>Mon, 09 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/tor-generowanie-milszej-nazwy-dla-hidden-service/</guid>
      <description>&lt;p&gt;Chcąc pobawić się tor&amp;rsquo;em postanowiłem udostępnić jedna z moich stron z wykorzystaniem mechanizmu hidden service. Nie spodobał mi się jedynie sposób generowania nazw, które były mało opisowe - ale najwidoczniej nie mnie jednemu, bo szybko namierzyłem &lt;a href=&#34;https://github.com/katmagic/Shallot&#34;  target=&#34;_blank&#34;&gt;Shallot&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
, który generuje kolejne nazwy aż trafi na pasującą do zadanego regexp&amp;rsquo;a.&lt;/p&gt;</description>
    </item>
    <item>
      <title>DFS - sprawdzanie statusu replikacji</title>
      <link>https://gagor.pro/2013/09/dfs-sprawdzanie-statusu-replikacji/</link>
      <pubDate>Wed, 04 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/dfs-sprawdzanie-statusu-replikacji/</guid>
      <description>&lt;p&gt;Ostatnio zbyt dużo grzebię przy &amp;ldquo;windach&amp;rdquo; - ale cóż, czasem trzeba. Ostatnio ustawiałem DFS&amp;rsquo;a z replikacją dla dwóch sporych zasobów i jedna z rzeczy, o którą się rozbiłem to brak jakiegokolwiek podglądu tej synchronizacji z GUI. Ale znalazłem jedno polecenie, które działa w shellu (choć to się chyba &lt;em&gt;batch&lt;/em&gt; tutaj nazywa) od Windows Server 2008 R2:&lt;/p&gt;
&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;dfsrdiag ReplicationState /member:nazwaservera
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Polecenie co prawda nie podaje postępu procentowego ale można zobaczyć &amp;ldquo;czy coś jeszcze się synchronizuje&amp;rdquo; i czy nie ma żadnych błędów. Jeżeli to polecenie to za mało to można spróbować bardziej gadatliwej wersji:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Root’owanie Androida 4.3 na Google Nexus 7 po aktualizacji do JWR66Y</title>
      <link>https://gagor.pro/2013/09/rootowanie-androida-4-3-na-google-nexus-7-po-aktualizacji-do-jwr66y/</link>
      <pubDate>Wed, 04 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/rootowanie-androida-4-3-na-google-nexus-7-po-aktualizacji-do-jwr66y/</guid>
      <description>&lt;p&gt;Ostatnio aktualizowałem swojego Nexusa do 4.3 i było miło tylko mi roota i recovery wystrzeliło&amp;hellip; No ale żaden problem - chwila googlania, kilka poleceń i mam recovery i roota. Dzisiaj wrzuciłem niedużą aktualizację, która łata kilka bugów i znów po root&amp;rsquo;cie ;/&lt;br /&gt; Zapisze sobie więc instrukcję by kolejnym razem już nie googlać &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;P.S. Wiem co robię ryzykując uceglenie swojego urządzenia - u mnie ta instrukcja działa ale nie mogę tego zagwarantować każdemu - dlatego jeśli już się zdecydujesz to &lt;strong&gt;ROBISZ TO NA WŁASNĄ ODPOWIEDZIALNOŚĆ!&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kopiowanie wolumenów LVM z dd i netcat</title>
      <link>https://gagor.pro/2013/09/kopiowanie-wolumenow-lvm-z-dd-i-netcat/</link>
      <pubDate>Mon, 02 Sep 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/09/kopiowanie-wolumenow-lvm-z-dd-i-netcat/</guid>
      <description>&lt;p&gt;Niedawno chciałem skopiować maszynę wirtualną z jednego hypervisora na innego. Były to 3 wolumeny LVM o rozmiarach od 50 do 100GB. Dawno temu zrobiłem sobie skrypty do backupu - jeden kompresuje wolumeny LVM - a drugi pozwala odtworzyć z dekompresja na drugim serwerze. Tyle że przy tak dużej maszynce będzie to trwało masakrycznie długo - fajnie byłoby móc równocześnie kopiować i odtwarzać (live)&amp;hellip;&lt;/p&gt;
&lt;p&gt;I wtedy przypomniało mi się narzędzie netcat - zrobiłem snapshoty wolumenów i mogłem zaczynać. W najbardziej podstawowej wersji potrzebowałem tylko tyle:&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPO: Instalacja GIMP’a 2.8</title>
      <link>https://gagor.pro/2013/08/gpo-instalacja-gimpa-2-8/</link>
      <pubDate>Tue, 06 Aug 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/08/gpo-instalacja-gimpa-2-8/</guid>
      <description>&lt;p&gt;Raz na jakiś czas trzeba coś niestandardowego wrzucić do instalacji w Active Directory a że nie wszystkie aplikacje mają dostępne paczki MSI to trzeba się nieco natrudzić.&lt;/p&gt;
&lt;p&gt;Poniżej wrzucam skrypt, który instaluje GIMP&amp;rsquo;a 2.8 z domyślnego instalatora (wersja InnoSetup) przy okazji odinstalowując wcześniejsze wersje zainstalowane ręcznie.&lt;/p&gt;
&lt;p&gt;Zapisujemy poniższy kod jako np. gimp-install.cmd&lt;/p&gt;
&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;@echo off
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM  Installs GIMP
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cls
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo ----------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo .      Installing/Updating GIMP - Please Wait
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo ----------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Test &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; actual
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IF exist &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%ProgramFiles%\GIMP\bin\gimp-2.8.exe&amp;#34;&lt;/span&gt; GOTO SkipInstall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Exit the application
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;taskkill.exe /F /FI &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;IMAGENAME eq gimp-2.8.exe&amp;#34;&lt;/span&gt; &amp;gt;nul
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Uninstall existing GIMP version, delete folder
&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; exist &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%ProgramFiles%\GIMP 2\uninst\unins000.exe&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%ProgramFiles%\GIMP 2\uninst\unins000.exe&amp;#34;&lt;/span&gt; /VERYSILENT
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;:: Wait &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&lt;/span&gt; seconds
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ping -n &lt;span style=&#34;color:#ae81ff&#34;&gt;40&lt;/span&gt; 127.0.0.1 &amp;gt; NUL
&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; exist &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%ProgramFiles%\GIMP 2\&amp;#34; rd &amp;#34;&lt;/span&gt;%ProgramFiles%&lt;span style=&#34;color:#ae81ff&#34;&gt;\G&lt;/span&gt;IMP 2&lt;span style=&#34;color:#ae81ff&#34;&gt;\&amp;#34;&lt;/span&gt; /Q /S
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Install new version
&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;#34;\\serwerplikow.local\Instalki\GIMP\gimp-2.8.4-setup.exe&amp;#34;&lt;/span&gt; /VERYSILENT /NORESTART /DIR&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;%PROGRAMFILES%\GIMP 2.8&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Skip installation &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; acctuall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;:SkipInstall
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;REM Return exit code to SCCM
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exit /B %EXIT_CODE%
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tworzymy nową regułkę GPO i zmierzamy do: Computer Configuration\Policies\Windows Settings\Scripts\Startup&lt;br /&gt; W nowym okienku wybieramy Show Files&amp;hellip;&lt;br /&gt; Wklejamy plik skryptu do tego folderu i teraz możemy dodać go w tym samym oknie (Add&amp;hellip;) - dzięki wrzuceniu skryptu w tym miejscu będzie się on automatycznie replikować na inne kontrolery. Skrypt będzie co prawda uruchamiany przy każdym starcie komputera ale pierwszy warunek będzie sprawdzać czy aplikacja jest zainstalowana więc nie spowolni to znacznie startu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>logrotate: kompresja logów xz</title>
      <link>https://gagor.pro/2013/07/logrotate-kompresja-logow-xz/</link>
      <pubDate>Mon, 29 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/07/logrotate-kompresja-logow-xz/</guid>
      <description>&lt;p&gt;Narzędzia &lt;code&gt;xz-utils&lt;/code&gt; dostępne w nowszych systemach korzystają z mocniejszych algorytmów kompresji (jakaś odmiana LZMA, coś w stylu 7zip&amp;rsquo;a) przy zachowaniu kompatybilności składni poleceń z gzip&amp;rsquo;em/bzip&amp;rsquo;em - da się je zatem łatwo zintegrować w obecnych systemach. Ja chciałem wykorzystać xz do kompresji logów, które bywają przydatne ale przez większość czasy tylko zajmują miejsce :simple_smile:&lt;/p&gt;
&lt;p&gt;W &lt;code&gt;/etc/logrotate.conf&lt;/code&gt; dopisujemy:&lt;/p&gt;
&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;compresscmd /usr/bin/xz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;uncompresscmd /usr/bin/unxz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;compressext .xz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;compressoptions -9T2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;compressoptions&lt;/code&gt; można nie ustawiać bo domyślnie ma wartość -9 (czyli kompresuj na maxa), mój dodatek (czyli -T2) użyje dwóch wątków procesora gdy już ten mechanizm zostanie zimplementowany (bo na razie nie jest) :simple_smile:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bezstratna konwersja MKV z DTS do AC3 lub AAC</title>
      <link>https://gagor.pro/2013/07/bezstratna-konwersja-mkv-z-dts-do-ac3-lub-aac/</link>
      <pubDate>Wed, 17 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/07/bezstratna-konwersja-mkv-z-dts-do-ac3-lub-aac/</guid>
      <description>&lt;p&gt;Na jednym z urządzeń miałem problem z odtworzeniem plików (głównie MKV) z dźwiękiem zakodowanym w DTS. Pomijając że np. na tablecie 6-cio kanały DTS jest mi &amp;ldquo;niezbędny inaczej&amp;rdquo; to konwertując go do AAC stereo plik jest po prostu sporo mniejszy. Oczywiście nie zamierzam transkodować ścieżki video i na moje potrzeby mogłem sobie odpuścić zmianę częstotliwości próbkowania.&lt;/p&gt;
&lt;p&gt;Najprościej wykorzystać pakiet &lt;em&gt;ffmpeg&lt;/em&gt; (po nowemu &lt;em&gt;avconv&lt;/em&gt;) lub &lt;em&gt;mencoder&lt;/em&gt; (choć ten miewał niegdyś problem z poprawnym zapisywaniem wynikowych plików mkv, więc potrzebny jest dodatkowo &lt;em&gt;mkvmerge&lt;/em&gt; z pakietu &lt;em&gt;mkvtoolnix&lt;/em&gt;). mencoder transkoduje szybciej wykorzystując więcej rdzeniu CPU, ale później potrzebny był drugi przebieg z mkvmerge. ffmpeg jechał na jednym procku nawet z opcją threads ale za to wszystko mogę zrobić jednym poleceniem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dodawanie urządzeń SCSI/FC bez restartu serwera</title>
      <link>https://gagor.pro/2013/07/dodawanie-urzadzen-scsifc-bez-restartu-serwera/</link>
      <pubDate>Wed, 17 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/07/dodawanie-urzadzen-scsifc-bez-restartu-serwera/</guid>
      <description>&lt;p&gt;Raz na jakiś czas gdy grzebię przy maciorach muszę &amp;ldquo;odkryć&amp;rdquo; nowy volumen FC (lub rzadziej SCSI), który właśnie utworzyłem a restart serwera nie wchodzi w rachubę (zresztą na części systemów nic on nie da).&lt;/p&gt;
&lt;p&gt;By to zrobić są dwie możliwości:&lt;/p&gt;
&lt;h2 id=&#34;ręczne-wydanie-poleceń-odkrywających-volumeny-na-jajkach-od-26x&#34;&gt;Ręczne wydanie poleceń odkrywających volumeny (na jajkach od 2.6.x)&lt;/h2&gt;
&lt;p&gt;Sprawdzamy jakie mamy karty:&lt;/p&gt;
&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;ls /sys/class/fc_host/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(wypisze się coś w stylu: host1, host2)&lt;/p&gt;
&lt;p&gt;Wydajemy do wybranej przez nas karty żądanie wykonania LIP (to się chyba tłumaczy jako loopback initialization) co skutkuje przeskanowaniem szyny FC:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Debian - Instalacja Bittorrent Sync (btsync)</title>
      <link>https://gagor.pro/2013/07/debian-instalacja-bittorrent-sync-btsync/</link>
      <pubDate>Tue, 16 Jul 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/07/debian-instalacja-bittorrent-sync-btsync/</guid>
      <description>&lt;p&gt;Bardzo spodobała mi się nowa aplikacja do zdalnej synchronizacji folderów z wykorzystaniem P2P. Ja wykorzystałem ją do automatycznych backupów archiwum zdjęć - zebrało mi się tego już prawie 130GB! Każde narzędzie, które chce np. je kompresować i raz na czas robić FULL backup jest skazane na porażkę - a fotek przybywa.&lt;/p&gt;
&lt;p&gt;Na początek pobieramy interesującą nas wersję:&lt;/p&gt;
&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;wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_i386.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget http://btsync.s3-website-us-east-1.amazonaws.com/btsync_x64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oraz paczkę ze skryptami dla Debiana:&lt;/p&gt;
&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;wget http://www.yeasoft.com/downloads/various/btsync-linux-deploy.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ja wyciągam z niej skrypt /etc/init.d/btsync i konfigurację /etc/*&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tworzenie patch’y z poleceniami diff i patch</title>
      <link>https://gagor.pro/2013/04/tworzenie-patchy-z-poleceniami-diff-i-patch/</link>
      <pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/04/tworzenie-patchy-z-poleceniami-diff-i-patch/</guid>
      <description>&lt;p&gt;Jest kilka powodów dla których tworzenie patchy jest przydatne - jeśli tu jesteś to pewnie masz jakiś własny&amp;hellip;&lt;/p&gt;
&lt;h2 id=&#34;tworzenie-patcha&#34;&gt;Tworzenie patch&amp;rsquo;a&lt;/h2&gt;
&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;diff -crB old new &amp;gt; from-old-to-new.patch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;W powyższym poleceniu założyłem że &lt;em&gt;old&lt;/em&gt; i &lt;em&gt;new&lt;/em&gt; to katalogi z wieloma podkatalogami i plikami - stąd opcja &lt;strong&gt;-r&lt;/strong&gt;. &lt;strong&gt;-c&lt;/strong&gt; dodaje kilka linijek &amp;ldquo;kontekstu&amp;rdquo; przez co łatwiej rozeznać się w patch&amp;rsquo;u. Opcja &lt;strong&gt;-B&lt;/strong&gt; ignoruje puste linie, których patchowanie mnie nie interesuje.&lt;/p&gt;
&lt;h2 id=&#34;patchowanie&#34;&gt;Patchowanie&lt;/h2&gt;
&lt;p&gt;Na początek zawsze warto wywołać polecenie z opcją &lt;strong&gt;-dry-run&lt;/strong&gt; by zobaczyć czy patch wykona się poprawnie:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rozsynchronizowane serwery NTP</title>
      <link>https://gagor.pro/2013/03/rozsynchronizowane-serwery-ntp/</link>
      <pubDate>Sun, 31 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/03/rozsynchronizowane-serwery-ntp/</guid>
      <description>&lt;p&gt;Miałem ostatnio zabawną sytuację gdy kilka serwerów z zainstalowanym NTPD miało rozjazdy rzędu kilkunastu sekund. Wyszło na to że moje serwery synchronizowały się z różnymi zewnętrznymi serwerami NTP pomiędzy, którymi były rozjazdy i te rozjazdy synchronizowały się na moich serwerach. Jeden &amp;ldquo;z moich&amp;rdquo; ustanowiłem głównym a wszystkie inne przekierowałem na niego (komentując wszystkie inne serwery NTP w konfiguracji). Wymusiłem synchronizację:&lt;/p&gt;
&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;ntp -q
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sprawdziłem jak duży jest offset i jitter (powinny być bardzo małe):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fortigate - VPN IPSec PSK XAuth z Android’a 4.x</title>
      <link>https://gagor.pro/2013/03/fortigate-vpn-ipsec-psk-xauth-z-androida-4-x/</link>
      <pubDate>Sat, 30 Mar 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/03/fortigate-vpn-ipsec-psk-xauth-z-androida-4-x/</guid>
      <description>&lt;p&gt;Do niedawna na moim telefonie VPN&amp;rsquo;ami były: PPTP lub L2TP - oba niespecjalnie mi się podobały. Ale od wersji 4-tej pojawiły się dwa nowe tryby: IPSec Xauth PSK i IPSec Xauth RSA. W pierwszym autoryzacja wykorzystuje login i hasło, w drugim certyfikaty.&lt;/p&gt;
&lt;p&gt;Tryb IPSec Xauth PSK jest bardzo wygodny bo łatwo można połączyć go z zewnętrznymi mechanizmami uwierzytelniającymi np. LDAP, Active Directory, itp.&lt;/p&gt;
&lt;p&gt;Pokażę jak skonfigurować swojego Fortigate&amp;rsquo;a by umożliwić połączenie z telefonów i tabletów na Androidzie 4.x do &amp;ldquo;Intranetu&amp;rdquo;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Większość konfiguracji można przeprowadzić tylko w trybie &lt;strong&gt;CLI&lt;/strong&gt; - zakładam że wiesz jak to zrobić. To co wygodniej można zrobić w trybie WWW to głównie tworzenie reguł dostępu na zaporze.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - hide server version and name in Server header and error pages</title>
      <link>https://gagor.pro/2013/01/nginx-hide-server-version-and-name-in-server-header-and-error-pages/</link>
      <pubDate>Thu, 24 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/01/nginx-hide-server-version-and-name-in-server-header-and-error-pages/</guid>
      <description>&lt;p&gt;On Debian you have to install &lt;code&gt;nginx-extras&lt;/code&gt; package (because it have built in &lt;a href=&#34;http://wiki.nginx.org/HttpHeadersMoreModule&#34;  target=&#34;_blank&#34;&gt;headers_more&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 module). Then you need two options (best in global configuration &lt;code&gt;/etc/nginx/nginx.conf&lt;/code&gt; file, &lt;code&gt;http&lt;/code&gt; part):&lt;/p&gt;
&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-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;server_tokens&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;off&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:#66d9ef&#34;&gt;more_set_headers&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Server:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;BadAss&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And it&amp;rsquo;s good to setup non standard error pages on every site (500 and 404 at minimum):&lt;/p&gt;
&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-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;error_page&lt;/span&gt;   &lt;span style=&#34;color:#ae81ff&#34;&gt;403&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;404&lt;/span&gt;       &lt;span style=&#34;color:#e6db74&#34;&gt;http://mysite.com/areyoulost&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:#66d9ef&#34;&gt;error_page&lt;/span&gt;   &lt;span style=&#34;color:#ae81ff&#34;&gt;502&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;503&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;504&lt;/span&gt;   &lt;span style=&#34;color:#e6db74&#34;&gt;/500.html&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>PHP - max_input_vars</title>
      <link>https://gagor.pro/2013/01/php-max_input_vars/</link>
      <pubDate>Tue, 22 Jan 2013 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2013/01/php-max_input_vars/</guid>
      <description>&lt;p&gt;W PHP 5.3 pojawiła się nowa zmienna: &lt;code&gt;max_input_vars&lt;/code&gt;, która limituje ilość pól możliwych do przesłania przez formularz, obcinając nadmiarowe. Pozwala to zapobiec atakom DoS na tablice hashujące (przynajmniej w tym jednym miejscu). Domyślna wartość tej zmiennej to 1000 i kreatywnym programistom udaje się tą wartość bez problemu osiągnąć &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;Warte odnotowania jest to że mając suhosin&amp;rsquo;a trzeba pamiętać o jeszcze dwóch innych zmiennych:&lt;/p&gt;
&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;max_input_vars &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;suhosin&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;post&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;max_vars &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;suhosin&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;request&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;max_vars &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zmienne można zmienić od razu w &lt;code&gt;/etc/php5/apache2/php.ini&lt;/code&gt; (choć te dla suhosin&amp;rsquo;a lepiej wrzucić do &lt;code&gt;/etc/php5/conf.d/suhosin.ini&lt;/code&gt;). A jeszcze lepszym pomysłem jest ustawienie tych zmiennych bezpośrednio dla danego vhost&amp;rsquo;a, w Apache&amp;rsquo;m np. tak:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux - naprawianie bad sectorów</title>
      <link>https://gagor.pro/2012/12/linux-naprawianie-bad-sectorow/</link>
      <pubDate>Thu, 27 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/linux-naprawianie-bad-sectorow/</guid>
      <description>&lt;p&gt;Dyski się zużywają i w końcu wcześniej czy później pojawiają się na nich bad sectory. Jeden z moich dysków ciut się posypał a że służy wyłącznie do backupów to mogę z tym żyć. Ale z drugiej strony jeżeli już będę musiał sięgnąć do backupów to chcę mieć pewność że coś odzyskam, dlatego postanowiłem zrobić kilka testów. Nawet jeśli nie naprawi to sektorów to przynajmniej zostaną zaznaczone jako uszkodzone i realokowane.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting Things Done</title>
      <link>https://gagor.pro/book/2012/getting-things-done/</link>
      <pubDate>Mon, 24 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2012/getting-things-done/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Getting Things Done by David Allen&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Getting Things Done&lt;/q&gt;&lt;p&gt;Czyli sztuka bezstresowej efektywności&lt;/p&gt;&lt;p&gt;Author: David Allen&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;My first encounter with the &amp;ldquo;Getting Things Done&amp;rdquo; methodology actually happened thanks to the book &lt;a href=&#34;https://gagor.pro/book/2008/zarzadzanie-czasem/&#34; &gt;&amp;ldquo;Time Management: Strategies for System Administrators&amp;rdquo;&lt;/a&gt;
 - when I was still a student. The idea of creating paper lists with tasks seemed a bit crazy to me at the time, but as a geek, I was always on the lookout for apps, and tools that could help.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Piwik: śledzenie asynchroniczne &#43; logowanie ksywy komentującego w WordPress&#39;ie</title>
      <link>https://gagor.pro/2012/12/piwik-sledzenie-asynchroniczne-logowanie-ksywy-komentujacego-w-wordpressie/</link>
      <pubDate>Fri, 21 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/piwik-sledzenie-asynchroniczne-logowanie-ksywy-komentujacego-w-wordpressie/</guid>
      <description>&lt;p&gt;Korzystam z instancji Piwik&amp;rsquo;a do monitorowania odwiedzin na stronie i postanowiłem pokombinować czy da się w ten sposób monitorować wejścia konkretnych osób na bazie wpisanego w polu komentarza loginu/ksywki. Jak zacząłem grzebać to przy okazji zmieniłem też sposób ładowania skryptów Piwika na asynchroniczny.&lt;/p&gt;
&lt;p&gt;A leci to mniej więcej tak:&lt;/p&gt;
&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-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&amp;gt;
&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;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;document.&lt;span style=&#34;color:#a6e22e&#34;&gt;cookie&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;split&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;;&amp;#34;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;comment_author&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&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:#66d9ef&#34;&gt;for&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;;&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;length&lt;/span&gt;;&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;++&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:#a6e22e&#34;&gt;x&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;=&amp;#34;&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:#a6e22e&#34;&gt;y&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;substr&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;ARRcookies&lt;/span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;i&lt;/span&gt;].&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;=&amp;#34;&lt;/span&gt;)&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;x&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;replace&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;/^\s+|\s+$/g&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&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:#66d9ef&#34;&gt;if&lt;/span&gt; (&lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author_email&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;x&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;indexOf&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;comment_author_url&amp;#34;&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;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;comment_author&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;unescape&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;y&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;_paq&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;_paq&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;||&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:#66d9ef&#34;&gt;function&lt;/span&gt;(){ &lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;u&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;((&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https:&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; document.&lt;span style=&#34;color:#a6e22e&#34;&gt;location&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;protocol&lt;/span&gt;) &lt;span style=&#34;color:#f92672&#34;&gt;?&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://url.instancji.piwika.pl/&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;http://url.instancji.piwika.pl/&amp;#34;&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:#a6e22e&#34;&gt;_paq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;setSiteId&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#a6e22e&#34;&gt;_paq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;setTrackerUrl&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;u&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;piwik.php&amp;#39;&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:#a6e22e&#34;&gt;_paq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;setCustomVariable&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;1&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Author&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#a6e22e&#34;&gt;comment_author&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:#a6e22e&#34;&gt;_paq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;trackPageView&amp;#39;&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:#a6e22e&#34;&gt;_paq&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;push&lt;/span&gt;([&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;enableLinkTracking&amp;#39;&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:#66d9ef&#34;&gt;var&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;d&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;document, &lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;d&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;createElement&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;script&amp;#39;&lt;/span&gt;), &lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;d&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;getElementsByTagName&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;script&amp;#39;&lt;/span&gt;)[&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;]; &lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;text/javascript&amp;#39;&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;defer&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;.&lt;span style=&#34;color:#66d9ef&#34;&gt;async&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;; &lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;u&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;piwik.js&amp;#39;&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:#a6e22e&#34;&gt;s&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;parentNode&lt;/span&gt;.&lt;span style=&#34;color:#a6e22e&#34;&gt;insertBefore&lt;/span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;g&lt;/span&gt;,&lt;span style=&#34;color:#a6e22e&#34;&gt;s&lt;/span&gt;); })();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id=&#34;źródło&#34;&gt;Źródło&lt;/h5&gt;
&lt;p&gt;&lt;a href=&#34;http://piwik.org/docs/javascript-tracking/#toc-asynchronous-tracking&#34;  target=&#34;_blank&#34;&gt;http://piwik.org/docs/javascript-tracking/#toc-asynchronous-tracking&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 &lt;br /&gt;
&lt;a href=&#34;http://codex.wordpress.org/WordPress_Cookies#Commenters&#34;  target=&#34;_blank&#34;&gt;http://codex.wordpress.org/WordPress_Cookies#Commenters&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jak dokuczać spamerom</title>
      <link>https://gagor.pro/2012/12/jak-dokuczac-spamerom/</link>
      <pubDate>Tue, 18 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/jak-dokuczac-spamerom/</guid>
      <description>&lt;p&gt;Dawno, dawno temu&amp;hellip; Za górami, za lasami&amp;hellip; czytałem sobie &lt;a title=&#34;Jak zapchać bazę spamerom&#34; href=&#34;http://www.lemat.priv.pl/index.php?m=page&amp;pg_id=12&#34; target=&#34;_blank&#34;&gt;tekst Lemat&amp;rsquo;a&lt;/a&gt; o dokuczaniu spamerom i pomyślałem że sam też tak mogę i nawet chcę więc popełniłem skrypcik, który dla losowych słów generował maile. Skrypcik działał z dwa lata na mojej poprzedniej stronie i nie raz zdarzyło się tam jakiejś mendzie zapętlić. Jakoś nie miałem czasu od razu, a później zapomniałem wrzucić go na nową stronie i tak zostało - na pewien czas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - kompresowanie plików dla gzip_static</title>
      <link>https://gagor.pro/2012/12/nginx-kompresowanie-plikow-dla-gzip_static/</link>
      <pubDate>Mon, 17 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/nginx-kompresowanie-plikow-dla-gzip_static/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://wiki.nginx.org/HttpGzipStaticModule&#34;  target=&#34;_blank&#34;&gt;Ruski serwer WWW&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 ma przydatną funkcję serwowania wersji plików skompresowanych gzip&amp;rsquo;em - przez co możemy plik skompresować raz i będzie on serwowany klientom obsługującym kompresję HTTP ale już bez każdorazowego kompresowania go. Jest to bardzo przydatne na stronach z dużym ruchem gdzie można w ten sposób zaoszczędzić takty CPU na właściwą obsługę połączeń a nie kompresję. Drugie miejsce gdzie może to być przydatne to VPS&amp;rsquo;y i &amp;ldquo;cienkie&amp;rdquo; serwery, które na kompresji przy większym obciążeniu spędzają zbyt dużo czasu i daje się to odczuć w działaniu strony. A że obecnie standardem jest ładowanie przez stronki np. jQuery, paru pluginów do niego, jQueryUI, masy CSS&amp;rsquo;ów, itd - to na prawdę jest co kompresować &amp;#x1f603;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache: mod_authnz_ldap z Active Directory</title>
      <link>https://gagor.pro/2012/12/apache-mod_authnz_ldap-z-active-directory/</link>
      <pubDate>Fri, 14 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/apache-mod_authnz_ldap-z-active-directory/</guid>
      <description>&lt;p&gt;Gdy już się dorobi systemu Active Directory wygodnie jest wykorzystać jego bazę użytkowników do autoryzacji w różnych miejscach, np. do pewnych &amp;ldquo;tajnych i tajniejszych&amp;rdquo; stron w Apache. Najprościej można to zrobić z wykorzystaniem LDAP.&lt;/p&gt;
&lt;p&gt;Warto &lt;a title=&#34;ldapsearch w Active Directory&#34; href=&#34;https://gagor.pl/2012/12/ldapsearch-w-active-directory/&#34;&gt;sprawdzić czy i jak możemy dostać się do kontrolerów&lt;/a&gt;. Gdy już mamy wszystkie potrzebne parametry konfigurujemy Apachego - na początek aktywujemy moduły:&lt;/p&gt;
&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;a2enmod ldap
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;a2enmod authnz_ldap
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz możemy edytujemy globalny plik konfiguracyjny mod_ldap&amp;rsquo;a by ustawić nieco cache&amp;rsquo;y (bardzo przydatne). Wartości można dostosować do potrzeb ale przykładowe powinny wystarczyć na początku:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python - wysyłanie maili w unicode</title>
      <link>https://gagor.pro/2012/12/python-wysylanie-maili-w-unicode/</link>
      <pubDate>Mon, 10 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/python-wysylanie-maili-w-unicode/</guid>
      <description>&lt;p&gt;Chciałem wysłać z Python&amp;rsquo;a maila z krzakami tab by ładnie się wyświetlały i okazało się to całkiem nietrywialne.&lt;/p&gt;
&lt;p&gt;Na szczęście googiel podpowiedział mi doskonałego gotowca, którego zamierzam zapisać by mi nie zginął:&lt;/p&gt;
&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/env python&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:#75715e&#34;&gt;# -*- coding: utf-8 -*-&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#f92672&#34;&gt;import&lt;/span&gt; smtplib
&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; email.mime.text &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; MIMEText
&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; email.Header &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; Header
&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; email.Utils &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; parseaddr, formataddr
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;send_email&lt;/span&gt;(sender, recipient, subject, body):
&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;#34;&amp;#34;&amp;#34;Send an email.
&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;
&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; All arguments should be Unicode strings (plain ASCII works as well).
&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;
&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; Only the real name part of sender and recipient addresses may contain
&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; non-ASCII characters.
&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;
&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; The email will be properly MIME encoded and delivered though SMTP
&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; to localhost port 25. This is easy to change if you want something
&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; different.
&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; The charset of the email will be the first one out of US-ASCII,
&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; ISO-8859-1 and UTF-8 that can represent all the characters occurring
&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; in the email.
&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;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# Header class is smart enough to try US-ASCII, then the charset we&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:#75715e&#34;&gt;# provide, then fall back to UTF-8.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; header_charset &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ISO-8859-2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# We must choose the body charset manually&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:#66d9ef&#34;&gt;for&lt;/span&gt; body_charset &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;US-ASCII&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;UTF-8&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ISO-8859-2&amp;#39;&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:#66d9ef&#34;&gt;try&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     body&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(body_charset)
&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;except&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;UnicodeError&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:#66d9ef&#34;&gt;pass&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:#66d9ef&#34;&gt;else&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:#66d9ef&#34;&gt;break&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# Split real name (which is optional) and email address parts&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sender_name, sender_addr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; parseaddr(sender)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; recipient_name, recipient_addr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; parseaddr(recipient)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# We must always pass Unicode strings to Header, otherwise it will&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:#75715e&#34;&gt;# use RFC 2047 encoding even on plain ASCII strings.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sender_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; str(Header(unicode(sender_name), header_charset))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; recipient_name &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; str(Header(unicode(recipient_name), header_charset))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# Make sure email addresses do not contain non-ASCII characters&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sender_addr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; sender_addr&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ascii&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; recipient_addr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; recipient_addr&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;ascii&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# Create the message (&amp;#39;plain&amp;#39; stands for Content-Type: text/plain)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; msg &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; MIMEText(body&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;encode(body_charset), &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;plain&amp;#39;&lt;/span&gt;, body_charset)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; msg[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;From&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; formataddr((sender_name, sender_addr))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; msg[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;To&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; formataddr((recipient_name, recipient_addr))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; msg[&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;Subject&amp;#39;&lt;/span&gt;] &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; Header(unicode(subject), header_charset)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# Send the message via SMTP to localhost:25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; smtp &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; smtplib&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;SMTP(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;localhost&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; smtp&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;sendmail(sender, recipient, msg&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;as_string())
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; smtp&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;quit()
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wykorzystanie:&lt;/p&gt;</description>
    </item>
    <item>
      <title>ldapsearch w Active Directory</title>
      <link>https://gagor.pro/2012/12/ldapsearch-w-active-directory/</link>
      <pubDate>Wed, 05 Dec 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/12/ldapsearch-w-active-directory/</guid>
      <description>&lt;p&gt;Można lubieć AD, można go nie lubieć&amp;hellip; Ale jak już się ma to warto czasem zintegrować go z tym&amp;hellip; i tamtym&amp;hellip; Od strony Linuksa najwygodniej można to osiągnąć przez LDAP. A żeby to dobrze zrobić trzeba najpierw przetestować czy aby wszystko działa jak byśmy sobie tego życzyli. I tutaj bardzo przydatne jest narzędzie &lt;code&gt;ldapsearch&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Do odpytywania LDAP&amp;rsquo;a potrzebujemy jeden pakiecik, który zawiera kilka narzędzi do jego obsługi:&lt;/p&gt;
&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 ldap-utils
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz możemy próbować przeszukiwać katalog np. tak:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ciastka z kleiku ryżowego</title>
      <link>https://gagor.pro/2012/11/ciastka-z-kleiku-ryzowego/</link>
      <pubDate>Tue, 20 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/ciastka-z-kleiku-ryzowego/</guid>
      <description>&lt;h2 id=&#34;składniki&#34;&gt;Składniki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 paczka bezsmakowego kleiku ryżowego (190~170 g),&lt;/li&gt;
&lt;li&gt;2 jajka,&lt;/li&gt;
&lt;li&gt;1 kostka miękkiego masła (250 g),&lt;/li&gt;
&lt;li&gt;1 płaska łyżeczka proszku do pieczenia,&lt;/li&gt;
&lt;li&gt;pół szklanki cukru,&lt;/li&gt;
&lt;li&gt;cukier waniliowy (16 g) (niekoniecznie),&lt;/li&gt;
&lt;li&gt;8 czubatych łyżek wiórków kokosowych,&lt;/li&gt;
&lt;li&gt;dżem do wypełnienia ciastek (opcjonalnie - ja lubię je również bez dżemu).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sposób-przygotowania&#34;&gt;Sposób przygotowania&lt;/h2&gt;
&lt;p&gt;Wszystkie składniki połączyć razem i wyrobić (najlepiej się ugniata
ręką). Formować kulki wielkości małego orzecha włoskiego, układać na
blaszce wyłożonej papierem do pieczenia w niewielkich odległościach
(trochę urosną). Jeżeli planujemy opcję z dżemem to w każdej kulce
należy zrobić wgłębienie - ja lekko przyciskałem palcem.
Piec w temperaturze 180ºC przez 15~20 minut, aż zrobią się złociste.
Po ostudzeniu wgłębienia napełnić dżemem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ciasto z dynią</title>
      <link>https://gagor.pro/2012/11/ciasto-z-dynia/</link>
      <pubDate>Mon, 12 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/ciasto-z-dynia/</guid>
      <description>&lt;h2 id=&#34;składniki&#34;&gt;Składniki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;2 szklanki miąższu dyni (startego lub zmiksowanego),&lt;/li&gt;
&lt;li&gt;2 szklanki mąki,&lt;/li&gt;
&lt;li&gt;0,75 szklanki cukru,&lt;/li&gt;
&lt;li&gt;3 jajka,&lt;/li&gt;
&lt;li&gt;5 łyżeczek cynamonu,&lt;/li&gt;
&lt;li&gt;16 g cukru wanilinowego,&lt;/li&gt;
&lt;li&gt;0,75 szklanki oleju,&lt;/li&gt;
&lt;li&gt;łyżeczka sody oczyszczonej,&lt;/li&gt;
&lt;li&gt;garść orzechów włoskich.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sposób-przygotowania&#34;&gt;Sposób przygotowania&lt;/h2&gt;
&lt;p&gt;Ubijamy białka z cukrem. Do ubitej piany dodajemy żółtka i kolejne
składniki: mąkę, olej, cukier wanilinowy, sodę i cynamon. Całość
miksujemy jeszcze przez chwilę, a następnie dodajemy posiekany lub
starty i odsączony (można np. mocno ścisnąć w dłoniach) &lt;strong&gt;miąższ
dyni&lt;/strong&gt; oraz drobno pokrojone &lt;strong&gt;orzechy włoskie&lt;/strong&gt; i jeszcze chwilę
mieszamy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatically compact CouchDB databases in version 0.11.x</title>
      <link>https://gagor.pro/2012/11/automatically-compact-couchdb-databases-in-0-11-x/</link>
      <pubDate>Thu, 08 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/automatically-compact-couchdb-databases-in-0-11-x/</guid>
      <description>&lt;p&gt;CouchDB databases on version 0.11.x swell very fast. They should be compacted daily for best performance and space usage. Here is my script that could be run in cron and will compact all databases:&lt;/p&gt;
&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
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;IP&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;10.0.0.121&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;DBS&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;curl -sS -X GET http://$IP:5984/_all_dbs | sed -r &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;s/([,\&amp;#34;[])|(\])+/ /g&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;for&lt;/span&gt; d in $DBS;
&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;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    curl -H &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Content-Type: application/json&amp;#34;&lt;/span&gt; -X POST http://$IP:5984/$d/_compact
&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;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;More informations about compacting could be found &lt;a href=&#34;http://wiki.apache.org/couchdb/Compaction/&#34;  target=&#34;_blank&#34;&gt;here&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 (also for version 1.2.x).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hybrid Rainbow DB</title>
      <link>https://gagor.pro/2012/11/hybrid-rainbow-db/</link>
      <pubDate>Wed, 07 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/hybrid-rainbow-db/</guid>
      <description>&lt;p&gt;Jakiś czas temu napisałem swoją własną tęczową tablicę i odkąd zainteresowałem się tym tematem zastanawiałem się jak jeszcze bardziej usprawnić tę aplikację. Testowałem różne długości łańcuchów i zauważyłem że zwiększanie długości łańcucha bardzo szybko powoduje znaczne zwiększenie ilości kolizji, co drastycznie obniżało wydajność (nie wspominając o czasie potrzebnym na wygenerowanie całej tablicy). Z tego powodu ostateczna implementacja choć była rzeczywiście tęczową tablicą działała bardziej jak tablica hashy - bo łańcuchy były bardzo krótkie. Ponadto ze statystyk wynikało że bardzo rzadko hasła były odzyskiwane ze środka łańcucha - zdecydowana większość trafień pochodziła z pierwszego hasła w łańcuchu. Pierwsze hasło było przeważnie słownikowe, plus czasem jakiś dodatek w postaci cyfry/zmienionej wielkości liter, itp. Pozostałe hasła w łańcuchu były praktycznie losowe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>LVM na RAID5 i dysku z sektorami 4KB</title>
      <link>https://gagor.pro/2012/11/lvm-na-raid5-i-dysku-z-sektorami-4kb/</link>
      <pubDate>Wed, 07 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/lvm-na-raid5-i-dysku-z-sektorami-4kb/</guid>
      <description>&lt;p&gt;Po zakupie nowych dysków zamierzam utworzyć zdegradowaną macierz RAID5 z dwóch dysków (na trzecim na razie znajdują się dane), potem utworzyć wolumen LVM, sformatować go, przekopiować dane z pojedynczego dysku na macierz i dołączyć  trzeci dysk do macierzy odbudowując parzystość. Zadanie będzie o tyle ciekawe że dysk ma 4KB sektory i trzeb będzie dbać o wyrównanie zasobu do rozmiaru sektora, a w przypadku LVM&amp;rsquo;a wyrównanie do chunk&amp;rsquo;a z macierzy.&lt;/p&gt;
&lt;h2 id=&#34;prawidłowe-wyrównanie-partycji&#34;&gt;Prawidłowe wyrównanie partycji&lt;/h2&gt;
&lt;p&gt;Kupując nowy dysk (o pojemności od 500GB w górę),  mamy spore szanse że trafimy na sztukę, która wykorzystuje 4KB sektory do alokacji danych. Ponieważ statystyczny rozmiar przechowywanych plików rośnie i nawet proste zdjęcie ma powyżej 1MB to wykorzystanie bloków o tym rozmiarze większym niż 512 bajtów jest jak najbardziej uzasadnione - zresztą większość systemów plików i tak wykorzystuje bloki 4&lt;del&gt;8KB. Jest tylko jedno ALE: jeżeli nie uwzględnimy tego podczas partycjonowania dysku to sektory 4KB systemu plików zamiast znajdować się w równo w odpowiadających im fizycznych 4KB sektorach dysku - mogą zachodzić na 2 sektory fizyczne - w takiej sytuacji każde odwołanie to takiego sektora w systemie plików wymaga odczytania/zapisanie dwóch sektorów fizycznych. Co prawda w dyskach stosuje się mechanizmy, które powinny zoptymalizować takie sytuacje ale jak potwierdzają benchmarki źle wyrównane partycja mogą znacznie obniżyć wydajność dysku. A jeszcze zabawniej jest jeśli kupimy dysk SSD bo w nich bardzo często fizyczne bloki są 128&lt;/del&gt;512KB i żeby było zabawniej to bardzo często dyski SSD deklarują (choćby przez SMART&amp;rsquo;a) że mają bloki 512B - SIC!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Instalacja drukarki i skanera Brother DCP-130C na Ubuntu 12.04</title>
      <link>https://gagor.pro/2012/11/instalacja-drukarki-i-skanera-brother-dcp-130c-na-ubuntu-12-04/</link>
      <pubDate>Sun, 04 Nov 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/instalacja-drukarki-i-skanera-brother-dcp-130c-na-ubuntu-12-04/</guid>
      <description>&lt;p&gt;Po każdej aktualizacji Ubuntu mam trochę zabawy by pozbierać do kupy skaner i drukarkę z mojego urządzenia wielofunkcyjnego Brother DCP-130C. Wybrałem je bo był to jedyny producent, który deklarował wsparcie dla Linux&amp;rsquo;a&amp;hellip; choć z perspektywy czasu nie jestem pewien czy otrzymałem to czego się spodziewałem&amp;hellip; Co prawda zamieszczają instrukcje i aktualizują drivery ale jeszcze ani raz nie zdarzyło mi się by po aktualizacji systemu postępowanie według tych instrukcji zadziałało bez dodatkowej pomocy.. Olać!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prosty MTA z heirloom-mailx i ssmtp</title>
      <link>https://gagor.pro/2012/11/prosty-mta-z-heirloom-mailx-i-ssmtp/</link>
      <pubDate>Wed, 31 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/11/prosty-mta-z-heirloom-mailx-i-ssmtp/</guid>
      <description>&lt;p&gt;Czasami potrzebny jest nam serwer pocztowy, który przyśle informacje dla root&amp;rsquo;a (np. monity smartd, mdadm, sypnięte crony itp) ale równocześnie nie chcemy stawiać pełnego serwera typu postfix/exim. Warto w tym celu wykorzystać zestaw heirloom-mailx + ssmtp. hairloom-mailx jest prostym shellowym klientem SMTP - przy okazji linkuje polecenie mail (przydatne w skryptach). ssmtp pełni funkcję serwera SMTP ale nie działa jako demon - proces uruchamia się gdy jest potrzebny i znika po wysłaniu maili. Dodatkowo ssmtp może zostać skonfigurowany by wysyłać maile nie tylko przez relay&amp;rsquo;a ale również autoryzując się na zewnętrznym serwerze pocztowym, np. gmail&amp;rsquo;u czy gdziekolwiek indziej.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nautilus - ukrywanie lost&#43;found</title>
      <link>https://gagor.pro/2012/10/nautilus-ukrywanie-lostfound/</link>
      <pubDate>Tue, 30 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/10/nautilus-ukrywanie-lostfound/</guid>
      <description>&lt;p&gt;Lubię mieć porządek w folderach i jedna rzecz, która nie daje mi spokoju w systemach plików &lt;strong&gt;ext&lt;/strong&gt; to widoczność folderu &lt;code&gt;lost+found&lt;/code&gt; - niby można go skasować i powinien się odtworzyć (choć podobno odtworzenie w czasie fsck&amp;rsquo;a może spowodować utratę danych - trochę to dziwne i nie znalazłem źródła no ale powiedzmy że nie chcę go usuwać). Chciałem go ukryć (choćby w Nautilusie) by mnie nie drażnił. Oczywiście opcja z &amp;ldquo;.&amp;rdquo; na początku odpada, ale na szczęście Nautilus wykorzystuje pewien hack, który umożliwia ukrycie dowolnego pliku/folderu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rolada kokosowo-czekoladowa na zimno</title>
      <link>https://gagor.pro/2012/10/rolada-kokosowo-czekoladowa-na-zimno/</link>
      <pubDate>Mon, 22 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/10/rolada-kokosowo-czekoladowa-na-zimno/</guid>
      <description>&lt;h2 id=&#34;składniki&#34;&gt;Składniki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 kostka masła,&lt;/li&gt;
&lt;li&gt;1 żółtko,&lt;/li&gt;
&lt;li&gt;6 łyżek cukru pudru,&lt;/li&gt;
&lt;li&gt;1 szklanka mleka,&lt;/li&gt;
&lt;li&gt;10 dkg wiórek kokosowych,&lt;/li&gt;
&lt;li&gt;1 kieliszek wódki (ale z dwoma jest ostrzejsze),&lt;/li&gt;
&lt;li&gt;3 łyżki kakao,&lt;/li&gt;
&lt;li&gt;37 dkg herbatników kakaowych (doskonale spisują się dwie paczki maślanych herbatników kakaowych).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;masa-kakaowa&#34;&gt;Masa kakaowa&lt;/h2&gt;
&lt;p&gt;Herbatniki dokładnie rozwałkować, dodać kakao i wymieszać. Zagotować pół
szklanki mleka i gorącym zalać herbatniki. Całość wymieszać na jednolitą
masę. W drugim pojemniku rozmiksować pół kostki masła i 3 łyżki cukru
pudru - po chwili dodać żółtko i wódkę. Do tej masy stopniowo dodajemy
herbatniki.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Utrzymanie przy życiu sypiących się usług na serwerach Windows</title>
      <link>https://gagor.pro/2012/10/utrzymanie-przy-zyciu-sypiacych-sie-uslug-na-serwerach-windows/</link>
      <pubDate>Mon, 22 Oct 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/10/utrzymanie-przy-zyciu-sypiacych-sie-uslug-na-serwerach-windows/</guid>
      <description>&lt;p&gt;Zdarzyło mi się kilka usług działających na serwerach Windows, które zwyczajnie sypały się i to tak brzydko że systemowe ustawienia by restartowały się po padzie nie wystarczały. Usługa działała np. 3 godziny by potem się położyć, albo nigdy nie wstawała po starcie systemu - po prostu jakaś masakra. Zgłoszenia do producenta często wyglądały tak że w jego testowym środowisku błędu nie udaje się powtórzyć (i nic dziwnego bo nie sądzę by z ich konfiguracji korzystali rzeczywiści użytkownicy). Oczywiście można zaczekać aż ukaże się magiczna łata usuwająca błąd ale do tego czasu to na nas wszyscy będą &amp;ldquo;wieszać psy&amp;rdquo; za niedostępność usługi.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Piwik - alternatywa dla Google Analytics</title>
      <link>https://gagor.pro/2012/09/piwik-alternatywa-dla-google-analytics/</link>
      <pubDate>Wed, 26 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/piwik-alternatywa-dla-google-analytics/</guid>
      <description>&lt;p&gt;Jeśli szukamy statystyk dla strony internetowej i ze względu na jej zawartość (np. sklep, coś ze zwiększonym naciskiem na poufność etc..) nie potrafimy zaufaj wujkowi Googlowi to warto przyglądnąć się Piwikowi.&lt;/p&gt;
&lt;p&gt;Jest to system statystyk aspirujący do bycia Open Source&amp;rsquo;ową alternatywą dla Google Analytics. Aspirujący (a nie będący) z tego względu że Google przechodząc na domyślny HTTPS (SPDY) dla zalogowanych użytkowników uniemożliwił śledzenie stron z których pochodzą odwiedziny (tzw. referrals) - tym prostym sposobem tylko GA jest w stanie dostarczyć pełnych informacji o wszystkich użytkownikach.&lt;/p&gt;</description>
    </item>
    <item>
      <title>mod_rewrite - wymuszenie małych liter w adresie URL</title>
      <link>https://gagor.pro/2012/09/mod_rewrite-wymuszenie-malych-liter-w-adresie-url/</link>
      <pubDate>Tue, 25 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/mod_rewrite-wymuszenie-malych-liter-w-adresie-url/</guid>
      <description>&lt;p&gt;Co prawda adresy URL pozwalają na stosowanie zarówno dużych jak i małych liter ale różne systemy mogą je różnie obsługiwać i może się trafić sytuacja, w której nie zechcemy by np. duże litery w ogóle pojawiały się w adresach URL. Doskonały przykład to mój niedawny wpis: &lt;a href=&#34;https://gagor.pro/2012/09/apache-ograniczenie-dostepu-dla-zalogowanych-uzytkownikow-z-mod_rewrite-i-mod_auth_basic/&#34; &gt;Apache: ograniczenie dostępu dla zalogowanych użytkowników z mod_rewrite i mod_auth_basic&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;Zachodzi tam sytuacja, w której katalog użytkownika jest jego loginem małymi literami (bądź dużymi - jak kto woli), a użytkownik wpisując login może użyć zarówno małych jak i dużych liter i tutaj zaczyna się jazda. Można użyć modyfikatora NC (no case), ale to wpłynie tylko na porównania - przepisanie ścieżki na nazwę podaną przez usera (z dużymi i małymi literami) przekieruje do katalogu, którego nie ma (bo jest katalog tylko małymi/dużymi).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Aktualizacja Debian Squeeze do Wheezy</title>
      <link>https://gagor.pro/2012/09/aktualizacja-debian-squeeze-do-wheezy/</link>
      <pubDate>Mon, 24 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/aktualizacja-debian-squeeze-do-wheezy/</guid>
      <description>&lt;p&gt;Obecnie dostępna jest już beta 2 Debiana Wheezy i utrzymywane są aktualizacje bezpieczeństwa więc powolutku można na testowych maszynach sprawdzać co i jak się zmieniło.&lt;/p&gt;
&lt;p&gt;Ponieważ do finalnej wersji pewnie sporo się jeszcze zmieni to postaram się z czasem aktualizować ten post by zawierał bieżące informacje.&lt;/p&gt;
&lt;p&gt;W razie wątpliwości patrz tutaj: http://wiki.debian.org/DebianTesting&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Robimy backup&lt;/li&gt;
&lt;li&gt;Aktualizujemy źródła wskazywały na paczki gałęzi testing (poniższe polecenie nadpisze Twoje obecne repozytoria):&lt;/li&gt;
&lt;/ol&gt;
&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;cat &amp;gt; /etc/apt/sources.list &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;SRC
&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;deb http://ftp.pl.debian.org/debian/ wheezy main non-free contrib
&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;deb-src http://ftp.pl.debian.org/debian/ wheezy main non-free contrib
&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;deb http://security.debian.org/ wheezy/updates main contrib non-free
&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;deb-src http://security.debian.org/ wheezy/updates main contrib non-free
&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;deb http://ftp.pl.debian.org/debian/ wheezy-updates main non-free contrib
&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;deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main non-free contrib
&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;SRC&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz odświeżamy repozytoria:&lt;/p&gt;</description>
    </item>
    <item>
      <title>GPO: Windows 7 - postęp przetwarzania polityk przy starcie systemu</title>
      <link>https://gagor.pro/2012/09/gpo-windows-7-postep-przetwarzania-polityk-przy-starcie-systemu/</link>
      <pubDate>Thu, 20 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/gpo-windows-7-postep-przetwarzania-polityk-przy-starcie-systemu/</guid>
      <description>&lt;p&gt;Dziś TIP z przeciwnego obozu - oprócz linuksowych systemów administruję również paroma serwerami windowsowymi i tutaj również (a czasem nawet bardziej) uda mi się znaleźć coś wartego zapamiętania.&lt;/p&gt;
&lt;p&gt;Jedna z najbardziej charakterystycznych rzeczy na komputerach przyłączonych do domeny Windows to wyświetlanie &amp;ldquo;różnych dziwnych rzeczy&amp;rdquo; przy starcie systemu. Zarówno na Windowsie 2000 jak i na XP&amp;rsquo;ku na małym okienku przewijają informacje o aktualizacji polityk, instalacji oprogramowania itp&amp;hellip;&lt;/p&gt;
&lt;p&gt;Zachowanie to zmieniło się na Vistach i 7-kach, które są nieco mniej rozmowne i wyświetlają jedynie komunikat typu &amp;ldquo;Trwa uruchamianie systemu&amp;hellip;&amp;rdquo; i tyla&amp;hellip; Załóżmy że wrzucimy do instalacji kilka paczek i jeszcze zmienimy kilka polityk i przez to komputer na tym napisie zatrzyma się na 5~10 minut - co zrobi użyszkodnik po 3 minutach? Dojdzie do wniosku że &amp;ldquo;coś się zwiesiło&amp;rdquo; i zresetuje komputer, a że akurat było nieco operacji dyskowych to mamy praktycznie pewną rozwałkę tego systemu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Checking for broken links on Your Website</title>
      <link>https://gagor.pro/2012/09/checking-for-broken-links-on-your-website/</link>
      <pubDate>Tue, 18 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/checking-for-broken-links-on-your-website/</guid>
      <description>Explore tools like wget, linkchecker, and linklint to efficiently find and fix broken links on your website, from small personal pages to large legacy platforms.</description>
    </item>
    <item>
      <title>Generator kodów paskowych dla napędów taśmowych LTO</title>
      <link>https://gagor.pro/2012/09/generator-kodow-paskowych-dla-napedow-tasmowych-lto/</link>
      <pubDate>Tue, 11 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/generator-kodow-paskowych-dla-napedow-tasmowych-lto/</guid>
      <description>&lt;p&gt;Jeśli posiadasz napęd taśmowy LTO do archiwizacji/backupu danych to wiesz że bardzo ważne jest opisywanie taśm szczególnie gdy trzeba coś odzyskać. Jeżeli masz szczęście to posiadasz nie pojedynczy napęd a autoloader obsługujący wiele taśm i wiesz że najlepiej gdy taśmy są opisane kodami paskowymi które autoloader potrafi rozpoznać. Dzięki temu nie ma potrzeby odczytywania nr. seryjnego z taśmy tylko szybciutko skanerem kodów. Tasiemki można kupować już z kodami ale tańsze są te bez kodów&amp;hellip; i tu pytanie - czy da się tanio zdobyć etykiety?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Listowanie zasobów NFS</title>
      <link>https://gagor.pro/2012/09/listowanie-zasobow-nfs/</link>
      <pubDate>Mon, 10 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/listowanie-zasobow-nfs/</guid>
      <description>&lt;p&gt;Szkoda że polecenia do obsługi NFS&amp;rsquo;a nie zaczynają się od &lt;em&gt;nfs*&lt;/em&gt; - łatwiej byłoby mi je zapamiętać. A jednym z takich, zapominanych najczęściej jest listowanie zasobów, szczególnie przydatne gdy korzysta się z NFS&amp;rsquo;a na jakimś NAS&amp;rsquo;ie (którego magiczny soft nie pokazuje gdzie i co eksportuje):&lt;/p&gt;
&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;showmount -e 192.168.1.10
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Export list &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; 192.168.1.10:
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/mnt/pools/A/A0/Music     *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/mnt/pools/A/A0/Movies    *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/mnt/pools/A/A0/Backups   *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/mnt/pools/A/A0/Pictures  *
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/mnt/pools/A/A0/Documents *
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz możemy zamontować zasób:&lt;/p&gt;
&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;mount 192.168.1.10:/mnt/pools/A/A0/Music /mnt/music
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Apache: ograniczenie dostępu dla zalogowanych użytkowników z mod_rewrite i mod_auth_basic</title>
      <link>https://gagor.pro/2012/09/apache-ograniczenie-dostepu-dla-zalogowanych-uzytkownikow-z-mod_rewrite-i-mod_auth_basic/</link>
      <pubDate>Sun, 09 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/apache-ograniczenie-dostepu-dla-zalogowanych-uzytkownikow-z-mod_rewrite-i-mod_auth_basic/</guid>
      <description>&lt;p&gt;Niedawno trafiłem na ciekawy problem w &lt;em&gt;mod_rewrite&lt;/em&gt; - by przekierowywać użytkowników logujących się jednym z modułów &lt;em&gt;mod_auth_basic&lt;/em&gt; do dedykowanych im katalogów, równocześnie blokując dostęp do katalogów innych użytkowników. Nie brzmi to jakoś strasznie ale problem okazał się być całkiem nietrywialnym. Teoretyczne rozwiązanie sprowadzało się do wyszukania loginu użytkownika ze ścieżki URI i porównania z nazwą użytkownika ze zmiennej &lt;em&gt;%{REMOTE_USER}&lt;/em&gt; - jeśli wartości się różnią to Forbidden. Ale szybko okazało się że w &lt;em&gt;RewriteCond&lt;/em&gt; zmienne z dopasowań można podstawiać tylko w pierwszym parametrze i że o ile można &lt;em&gt;RewriteCond&amp;rsquo;y&lt;/em&gt; połączyć wyrażeniami logicznymi typu &lt;em&gt;AND&lt;/em&gt;/&lt;em&gt;OR&lt;/em&gt; to nie ma możliwości porównania czy dopasowania z kolejnych &lt;em&gt;RewriteCond&amp;rsquo;ów&lt;/em&gt; są identyczne. Po kilku dniach szperania w dokumentacji i różnych tutorialach udało mi się trafić na jedną wartościową wskazówkę ale tej stronki już nie ma, więc opiszę problem dla potomnych.&lt;/p&gt;</description>
    </item>
    <item>
      <title>unicode-rxvt - moje ustawienia</title>
      <link>https://gagor.pro/2012/09/unicode-rxvt-moje-ustawienia/</link>
      <pubDate>Sun, 09 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/unicode-rxvt-moje-ustawienia/</guid>
      <description>&lt;p&gt;Wybór dobrego X-terminala to w życiu admina prawie jak wybór żony&amp;hellip; spędza się wspólnie dużo czasu i miło gdy estetycznie wygląda, robi to co chcemy, itd&amp;hellip; 😉&lt;/p&gt;
&lt;p&gt;Nie lubię &lt;code&gt;gnome-terminal&#39;a&lt;/code&gt; bo domyślnie binduje F10 co wnerwia mnie w midnight commanderze, stąd szukałem i szukałem i jak dotychczas najbardziej podpasował mi &lt;code&gt;unicode-rxvt&lt;/code&gt;. Można uruchamiać go po prostu jako &lt;code&gt;urxvt&lt;/code&gt; lub uruchomić demona &lt;code&gt;urxvtd&lt;/code&gt; po zalogowaniu i potem odpalać tylko klienta &lt;code&gt;urxvtc&lt;/code&gt;. Druga metoda skutkuje natychmiastowym startem terminala, wiec gdy podbinduję go sobie pod F12 mam terminal zawsze pod ręką w mniej niż sekundę. Dodatkowo fajnie wygląda z półprzezroczystością i nie ma żadnych dodatkowych menu/gadżetów.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wymuszenie fsck po restarcie</title>
      <link>https://gagor.pro/2012/09/wymuszenie-fsck-po-restarcie/</link>
      <pubDate>Sat, 08 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/wymuszenie-fsck-po-restarcie/</guid>
      <description>&lt;p&gt;Jeżeli chcemy by po ponownym uruchomieniu w czasie startu zostały sprawdzone wszystkie dyski narzędziem to można to osiągnąć na dwa sposoby. Zawsze gdy tego potrzebuję zastanawiam się tylko jaki plik trzeba było utworzyć&amp;hellip; forcefsck, fsck, fsckforce&amp;hellip; więc notuję 😉&lt;/p&gt;
&lt;h2 id=&#34;utworzenie-pliku-forcefsck&#34;&gt;Utworzenie pliku /forcefsck&lt;/h2&gt;
&lt;p&gt;Pierwsza metoda polega na utworzeniu pliku forcefsck w głównym katalog, robimy to poniższym poleceniem:&lt;/p&gt;
&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;sudo touch /forcefsck
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;polecenie-shutdown&#34;&gt;Polecenie shutdown&lt;/h2&gt;
&lt;p&gt;Druga metoda wykorzystuje parametr -F polecenia shutdown ale nie działa na wszystkich dystrybucjach (w takiej sytuacji patrz pierwsza metoda):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Moje ulubione aplikacje na Android’a</title>
      <link>https://gagor.pro/2012/09/moje-ulubione-aplikacje-na-androida/</link>
      <pubDate>Fri, 07 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/moje-ulubione-aplikacje-na-androida/</guid>
      <description>&lt;p&gt;Znajomi co jakiś czas pytają mnie: jak nazywa się ta aplikacja, którą masz na telefonie do&amp;hellip;? Z jakiego programu do poczty korzystasz na tel&amp;hellip;? itd&amp;hellip;&lt;/p&gt;
&lt;p&gt;Pytacie - więc macie &amp;#x1f603;&lt;/p&gt;
&lt;h2 id=&#34;dgt-gtd&#34;&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.dg.gtd.android.lite&amp;amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5kZy5ndGQuYW5kcm9pZC5saXRlIl0.&#34;  target=&#34;_blank&#34;&gt;DGT GTD&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/h2&gt;
&lt;p&gt;Bardzo przydatna lista TODO. Stworzona z myślą o metodzie Getting Things Done i bardzo ułatwia pamiętanie u różnych zadaniach. Posiada też bardzo wygodny widżet, na którym możemy podglądnąć nasze najbliższe zadania.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Montowanie partycji z obrazu dysku</title>
      <link>https://gagor.pro/2012/09/montowanie-partycji-z-obrazu-dysku/</link>
      <pubDate>Thu, 06 Sep 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/09/montowanie-partycji-z-obrazu-dysku/</guid>
      <description>&lt;p&gt;Jedną z rzeczy, które podobają mi się w maszynach wirtualnych Xen jest możliwość zrobienia backupu całego obrazu i szybkie odzyskanie już w trakcie ciężkiej awarii. Gdy dodatkowo korzysta się z LVM&amp;rsquo;a to można na chwilę wyłączyć DomU, utworzyć snapshot jego dysków, uruchomić DomU i w trakcie działania robić spójny backup ze snapshot&amp;rsquo;a. Dzięki takiemu mechanizmowi serwer jest niedostępny przez kilkanaście sekund, a backup spójny jakby został wykonany przy całkowicie wyłączonej maszynie. Taki backup sprowadza się do kilku poleceń które można oskryptować np.:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Przeszukiwanie plików danego typu pod kątem tekstu</title>
      <link>https://gagor.pro/2012/08/przeszukiwanie-plikow-danego-typu-pod-katem-tekstu/</link>
      <pubDate>Fri, 31 Aug 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/08/przeszukiwanie-plikow-danego-typu-pod-katem-tekstu/</guid>
      <description>&lt;p&gt;Kiedyś poproszono mnie o przeszukanie wszystkich plików php na serwerze webowym po kątem wywołania pewnej funkcji. Oczywiste wydało mi się użycie rekurencyjnie grep&amp;rsquo;a, więc:&lt;/p&gt;
&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 -R &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;JAKAS_FUNKCJA&amp;#34;&lt;/span&gt; /var/www/*.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ale szybko okazało się że &lt;strong&gt;&lt;em&gt;grep&lt;/em&gt;&lt;/strong&gt; dopasowuje maskę &lt;strong&gt;*.php&lt;/strong&gt; również do katalogów, więc nie przeszukiwał katalogów które nie kończyły się na &lt;strong&gt;.php&lt;/strong&gt; ehhh&amp;hellip;..&lt;/p&gt;
&lt;p&gt;Drugie podejście okazało się trafniejsze - najpierw poleceniem find wyszukuję wszystkie pliki php, a dopiero później grepuję (wypisując nazwę pliku i numer linii):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - konfiguracja pod WordPress’a</title>
      <link>https://gagor.pro/2012/06/nginx-konfiguracja-pod-wordpressa/</link>
      <pubDate>Fri, 29 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/nginx-konfiguracja-pod-wordpressa/</guid>
      <description>&lt;p&gt;To raczej nie jest podstawowy konfig i próżno szukać go na stronie WordPress&amp;rsquo;a, więc odradzam tę zabawę jeśli nie zna się zbyt dobrze nginx&amp;rsquo;a.&lt;/p&gt;
&lt;p&gt;Ponieważ serwerek, na którym działa stronka to sprzęcik z Atomem 330 i mocy na CPU zbyt wiele nie ma to popularne pluginy (np. W3 Total Cache) potencjalnie zwiększające wydajność tak na prawdę zmulały stronkę jeszcze bardziej. Pluginów sprawdziłem kilka i każdorazowo efekt był podobny - stronka działała wolniej niż bez ich pomocy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xen - Podstawowe polecenia</title>
      <link>https://gagor.pro/2012/06/xen-podstawowe-polecenia/</link>
      <pubDate>Tue, 19 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/xen-podstawowe-polecenia/</guid>
      <description>&lt;p&gt;Pisałem już &lt;a href=&#34;https://gagor.pro/2012/02/xen-na-squeeze-instalacja-i-konfiguracja-hypervisora/&#34; &gt;HOWTO o konfiguracji Xen&amp;rsquo;a&lt;/a&gt;
 ale nie opisałem jak się bawić wirtualkami gdy Xen&amp;rsquo;a już mamy. To nadrabiam.&lt;/p&gt;
&lt;h2 id=&#34;tworzenie-i-usuwanie-maszyn-wirtualnych&#34;&gt;Tworzenie i usuwanie maszyn wirtualnych&lt;/h2&gt;
&lt;p&gt;Do tworzenia/niszczenia DomU wykorzystuję pakiet xen-tools dostarczający m.in. dwa narzędzia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;xen-create&lt;/code&gt; - dla którego przygotowałem dość skomplikowaną konfigurację przy okazji wcześniejszego posta: &lt;a href=&#34;https://gagor.pl/2012/02/xen-na-squeeze-instalowanie-i-konfiguracja-hostow-gosci-domu/&#34;  target=&#34;_blank&#34;&gt;Instalacja i konfiguracja DomU&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
. Przykład użycia:
&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;xen-create --hostname example-domu --ip 10.0.0.77 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--gateway 10.0.0.1 --broadcast 10.0.0.255 --netmask 255.255.255.0 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;--bridge br10 --vcpus &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; --memory&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;2G
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;xen-delete-image&lt;/code&gt; - narzędzie do kasowania wirtualnych maszyn. Maszyna musi być wyłączona aby można było ją usunąć. Narzędzie to kasuje plik konfiguracyjny maszyny wirtualnej oraz przydzielone jej volumeny lvm. Przykład użycia:
&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;xen-delete-image nazwamaszyny
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;zarządzanie-maszynami-wirtualnymi&#34;&gt;Zarządzanie maszynami wirtualnymi&lt;/h2&gt;
&lt;p&gt;Do uruchamiania, wyłączanie, resetowania (i ogólnie zarządzania) maszynami wirtualnymi służy tylko jedno polecenie: &lt;code&gt;xm&lt;/code&gt; z różnymi parametrami:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - ustawienie domyślnego vhosta</title>
      <link>https://gagor.pro/2012/06/nginx-ustawienie-domyslnego-vhosta/</link>
      <pubDate>Mon, 18 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/nginx-ustawienie-domyslnego-vhosta/</guid>
      <description>&lt;p&gt;Ustawienie domyślnego vhosta w nginx&amp;rsquo;ie jest ładnie opisane w dokumentacji i początkowo wydawało się dobrze działać ale gdy wykorzystałem tą konfigurację na serwerze z wieloma adresami IP i nasłuchiwaniem na porcie 80 (bez podania IP) to zachowywało się to dość dziwnie (przeważnie nie ładowało tej strony którą chciałem). Od teraz tworzę konfigurację domyślnego vhosta dla każdego z dostępnych adresów IP. Powiem szczerze że nie miałem czasu na głębsze zbadanie tego zachowania i wykorzystałem rozwiązanie, które działało w każdym przypadku czyli po jednym konfigu na IP + przekierowanie na ogólną stronę.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xen - Konfiguracja interfejsu sieciowego Dom0 jako brdige’a dla VLAN’ów</title>
      <link>https://gagor.pro/2012/06/xen-konfiguracja-interfejsu-sieciowego-dom0-jako-brdigea-dla-roznych-vlanow/</link>
      <pubDate>Mon, 18 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/xen-konfiguracja-interfejsu-sieciowego-dom0-jako-brdigea-dla-roznych-vlanow/</guid>
      <description>&lt;p&gt;VLAN&amp;rsquo;y są prostą metodą na separację sieci. Gdy mamy wiele sieci może zajść potrzeba by poszczególne DomU miały dostęp do różnych VLAN&amp;rsquo;ów (czasem nawet wielu równocześnie). Jeżeli serwer z Dom0 posiada minimum giga-bitową kartę sieciową (a najlepiej kilka) to powinniśmy być w stanie z godziwą jakością udostępnić systemom DomU różne VLAN&amp;rsquo;y z interfejsów gospodarza.&lt;/p&gt;
&lt;p&gt;Zaprezentowane poniżej skrypty zapożyczyłem z tej strony: &lt;a title=&#34;http://renial.net/weblog/2007/02/27/xen-vlan&#34; href=&#34;http://renial.net/weblog/2007/02/27/xen-vlan&#34; rel=&#34;nofollow&#34;&gt;&lt;a href=&#34;http://renial.net/weblog/2007/02/27/xen-vlan&#34;  target=&#34;_blank&#34;&gt;http://renial.net/weblog/2007/02/27/xen-vlan&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache - reverse proxy z cache’owaniem</title>
      <link>https://gagor.pro/2012/06/apache-reverse-proxy-z-cacheowaniem/</link>
      <pubDate>Sun, 17 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/apache-reverse-proxy-z-cacheowaniem/</guid>
      <description>&lt;p&gt;Ostatnio trafiłem na ciekawy problem, który wielokrotnie rozwiązywałem w nginx&amp;rsquo;ie ale tym razem musiałem zrobić to w Apache. Pewna stronka działa sobie na HTTPS&amp;rsquo;ie i chciałem by wszystkie powiązane z nią pliki były serwowane z jej adresu szyfrowanym połączeniem by nie pojawiały się w przeglądarce monity że &amp;ldquo;część ruchu nie jest szyfrowana&amp;rdquo;. Tyle że część potrzebnych plików była już obecnie serwowana na innym serwerze (w innej domenie) poprzez HTTP.&lt;/p&gt;
&lt;p&gt;Mogłem albo skopiować te pliki i wykombinować jakiś mechanizm synchronizujący albo wykorzystać proxy + cache. Drugie rozwiązanie wydało mi się prostsze i ładniejsze &amp;#x1f603;&lt;/p&gt;</description>
    </item>
    <item>
      <title>CouchDB - Instalacja i wstępna konfiguracja</title>
      <link>https://gagor.pro/2012/06/couchdb-instalacja-i-wstepna-konfiguracja/</link>
      <pubDate>Fri, 08 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/couchdb-instalacja-i-wstepna-konfiguracja/</guid>
      <description>&lt;p&gt;Gdy tworzymy pierwszą aplikację webową, która umożliwia upload plików przeważnie lądują one lokalnie w pewniej lokalizacji. Gdy druga aplikacja potrzebuje dostępu do tych plików wystarczy podać ścieżkę. Problemy zaczynają się gdy aplikacji jest kilka i rozmieszczonych na kilku serwerach. Można korzystać z sieciowych systemów plików ale to często nie jest zbyt wygodne - ciężko odpowiednio ustawić uprawnienia by pewne aplikacje miały dostęp do zapisu plików a inne nie, trzeba skonfigurować dany katalog w kilku miejscach w konfiguracji serwera WWW aby serwować pliki itp&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dynamiczna zmiana rozmiaru partycji EXT4 na LVM’ie</title>
      <link>https://gagor.pro/2012/06/dynamiczna-zmiana-rozmiaru-partycji-ext4-na-lvmie/</link>
      <pubDate>Fri, 08 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/dynamiczna-zmiana-rozmiaru-partycji-ext4-na-lvmie/</guid>
      <description>&lt;p&gt;Używam LVM&amp;rsquo;a zarówno na desktopie jak i wielu serwerach bo bardzo podoba mi się możliwość powiększenia akurat tej partycji, na której brakuje miejsca. O ile pamiętam jak powiększyć partycję XFS (xfs_growfs /punkt/montowania) to zawsze mam problem jak to zrobić na EXT3/4, więc notuję.&lt;/p&gt;
&lt;p&gt;Powiększenie wolumenu LVM (np. o 10 gigabajtów):&lt;/p&gt;
&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;lvextend -L+10G /dev/vggroup/vol
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zwiększenie rozmiaru systemu plików do nowego rozmiaru wolumenu:&lt;/p&gt;
&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;resize2fs /dev/vggroup/vol
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Powyższe polecenie można wykonać na zamontowanym zasobie - online.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx - mój domyślny config</title>
      <link>https://gagor.pro/2012/06/nginx-moj-domyslny-config/</link>
      <pubDate>Fri, 08 Jun 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/06/nginx-moj-domyslny-config/</guid>
      <description>&lt;p&gt;W tym poście nie rozpiszę się zbytnio - wrzucam tylko config od którego zaczynam konfigurację nginx&amp;rsquo;a.&lt;/p&gt;
&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-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;user&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;www-data&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:#66d9ef&#34;&gt;worker_processes&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;4&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:#66d9ef&#34;&gt;pid&lt;/span&gt;        &lt;span style=&#34;color:#e6db74&#34;&gt;/var/run/nginx.pid&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;events&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:#f92672&#34;&gt;worker_connections&lt;/span&gt;  &lt;span style=&#34;color:#ae81ff&#34;&gt;1024&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## zaakceptuj tak dużo połączeń jak to możliwe
&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:#f92672&#34;&gt;multi_accept&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;on&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## epoll jest preferowany na jajkach od 2.6
&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:#75715e&#34;&gt;## http://www.kegel.com/c10k.html#nb.epoll
&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:#f92672&#34;&gt;use&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;epoll&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#66d9ef&#34;&gt;http&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:#f92672&#34;&gt;include&lt;/span&gt;     &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/nginx/mime.types&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:#f92672&#34;&gt;default_type&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/octet-stream&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:#f92672&#34;&gt;access_log&lt;/span&gt;  &lt;span style=&#34;color:#e6db74&#34;&gt;/var/log/nginx/access.log&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:#f92672&#34;&gt;error_log&lt;/span&gt;   &lt;span style=&#34;color:#e6db74&#34;&gt;/var/log/nginx/error.log&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## opcje TCP
&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:#f92672&#34;&gt;sendfile&lt;/span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#f92672&#34;&gt;tcp_nopush&lt;/span&gt;      &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#f92672&#34;&gt;tcp_nodelay&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;on&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## maksymalny rozmiar zapytnia
&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:#f92672&#34;&gt;client_max_body_size&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;10m&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## timeout&amp;#39;y
&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:#f92672&#34;&gt;client_body_timeout&lt;/span&gt;     &lt;span style=&#34;color:#ae81ff&#34;&gt;60&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:#f92672&#34;&gt;client_header_timeout&lt;/span&gt;   &lt;span style=&#34;color:#ae81ff&#34;&gt;60&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:#f92672&#34;&gt;keepalive_timeout&lt;/span&gt;       &lt;span style=&#34;color:#ae81ff&#34;&gt;10&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:#f92672&#34;&gt;send_timeout&lt;/span&gt;            &lt;span style=&#34;color:#ae81ff&#34;&gt;60&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## kompresja
&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:#f92672&#34;&gt;gzip&lt;/span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#f92672&#34;&gt;gzip_static&lt;/span&gt;     &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#f92672&#34;&gt;gzip_vary&lt;/span&gt;       &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#f92672&#34;&gt;gzip_disable&lt;/span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;msie6&amp;#34;&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:#f92672&#34;&gt;gzip_comp_level&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&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:#f92672&#34;&gt;gzip_proxied&lt;/span&gt;    &lt;span style=&#34;color:#e6db74&#34;&gt;any&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:#f92672&#34;&gt;gzip_buffers&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;16&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;8k&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:#f92672&#34;&gt;gzip_min_length&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;50&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:#f92672&#34;&gt;gzip_types&lt;/span&gt;      &lt;span style=&#34;color:#e6db74&#34;&gt;text/plain&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;text/css&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/json&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/x-javascript&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/javascript&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;text/javascript&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/atom+xml&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/xml&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/xml+rss&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;text/xml&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;image/x-icon&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;text/x-js&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;application/xhtml+xml&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## bezpieczeństwo
&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:#75715e&#34;&gt;## security by obscurity - ukrywamy wersję nginx&amp;#39;a
&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:#f92672&#34;&gt;server_tokens&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;off&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:#f92672&#34;&gt;ignore_invalid_headers&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;on&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:#75715e&#34;&gt;## resetuj zbyt długie połączenia - powinno pomóc na slowlorisa
&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:#f92672&#34;&gt;reset_timedout_connection&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;on&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## włączenie ochrony przed clickjackingiem - uruchamiam to per vhost
&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:#75715e&#34;&gt;## https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
&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:#75715e&#34;&gt;#add_header X-Frame-Options SAMEORIGIN;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;## potrzebne zeby zbudowac mape ponizej
&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:#f92672&#34;&gt;map_hash_bucket_size&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;256&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:#75715e&#34;&gt;## blacklist&amp;#39;a botów i referer&amp;#39;ów
&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:#f92672&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;blacklist.conf&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;##
&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:#75715e&#34;&gt;# jeśli połączenie na HTTPS&amp;#39;a to ustawiamy zmienną by mogło być obsłużone
&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:#75715e&#34;&gt;##
&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:#f92672&#34;&gt;map&lt;/span&gt; $scheme $server_https {
&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;default&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;off&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:#f92672&#34;&gt;https&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;on&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    }
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#f92672&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/nginx/conf.d/*.conf&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:#f92672&#34;&gt;include&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/nginx/sites-enabled/*&lt;/span&gt;;
&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;&lt;p&gt;No i jeszcze zawartość blacklist.conf - na początek wystarczy a można rozszerzyć pod siebie:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fortigate: Warning: SQL Logging is not enabled</title>
      <link>https://gagor.pro/2012/04/fortigate-warning-sql-logging-is-not-enabled/</link>
      <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/04/fortigate-warning-sql-logging-is-not-enabled/</guid>
      <description>&lt;p&gt;Jeśli po aktualizacji firmware na swoim firewall&amp;rsquo;u do wersji MR3 natrafisz na komunikat &lt;strong&gt;Warning: SQL Logging is not enabled&lt;/strong&gt; przy dostępie do logów to prawdopodobnie musisz zmienić źródło logów dla interfejsu gui. Poniżej polecenie CLI i możliwe opcje:&lt;/p&gt;
&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;config log gui
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    set logdevice {memory | disk | fortianalyzer}
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ja potrzebowałem ustawić tę opcję na &lt;em&gt;fortianalyzer&lt;/em&gt; by uzyskać dostęp do moich logów.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Konwersja formatu certyfikatu dla telefonów Nokia</title>
      <link>https://gagor.pro/2012/04/konwersja-formatu-certyfikatu-dla-telefonow-nokia/</link>
      <pubDate>Wed, 11 Apr 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/04/konwersja-formatu-certyfikatu-dla-telefonow-nokia/</guid>
      <description>&lt;p&gt;Chciałem zaimportować mój certyfikat &lt;a href=&#34;https://gagor.pro/2011/08/certyfikaty-selfsigned/&#34; &gt;self-signed&lt;/a&gt;
 do Nokii E72 by nie krzyczała przy sprawdzaniu poczty. Potrzebowałem certyfikatu w formacie DER, a miałem w PEM - chwilę szukałem jak dokonać konwersji, więc ku pamięci zapisuję kilka gotowych poleceń:&lt;/p&gt;
&lt;h3 id=&#34;konwersja-certyfikatu-z-pem-na-der&#34;&gt;Konwersja certyfikatu z PEM na DER&lt;/h3&gt;
&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;openssl x509 -in in.crt -inform PEM -out out.crt -outform DER
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;konwersja-certyfikatu-z-der-na-pem&#34;&gt;Konwersja certyfikatu z DER na PEM&lt;/h3&gt;
&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;openssl x509 -in in.crt -inform DER -out out.crt -outform DER
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;konwersja-klucza-z-formatu-pem-na-der&#34;&gt;Konwersja klucza z formatu PEM na DER&lt;/h3&gt;
&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;openssl rsa -in in.crt -inform PEM -out out.crt -outform DER
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;konwersja-klucza-z-formatu-der-na-pem&#34;&gt;Konwersja klucza z formatu DER na PEM&lt;/h3&gt;
&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;openssl rsa -in in.crt -inform DER -out out.crt -outform PEM
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Po konwersji certyfikat w formacie DER wystarczy wrzucić na kartę i otworzyć z menadżera plików, zainstalować.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ponowne wygenerowanie kluczy serwera OpenSSH</title>
      <link>https://gagor.pro/2012/02/ponowne-wygenerowanie-kluczy-serwera-openssh/</link>
      <pubDate>Mon, 27 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/ponowne-wygenerowanie-kluczy-serwera-openssh/</guid>
      <description>&lt;p&gt;Czasami odpalam klona jakiegoś systemu by później po drobnych zmianach uczynić go osobnym bytem. Jednym z kroków po odtworzeniu systemu jest wygenerowanie nowego zestawu kluczy dla serwera OpenSSH (by mój klient ssh nie siał warning&amp;rsquo;ami). Można to wykonać tak:&lt;/p&gt;
&lt;p&gt;Najpierw kasujemy obecne klucze:&lt;/p&gt;
&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;rm /etc/ssh/ssh_host_*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz generujemy nowe:&lt;/p&gt;
&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;dpkg-reconfigure openssh-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I na koniec restartujemy usługę by załadować nowy zestaw kluczy (nie powinno to zerwać obecnej sesji, ale dla pewności lepiej zadanie odpalić w screen&amp;rsquo;ie):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xen - ustawienie autostartu DomU</title>
      <link>https://gagor.pro/2012/02/xen-ustawienie-autostartu-domu/</link>
      <pubDate>Mon, 27 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/xen-ustawienie-autostartu-domu/</guid>
      <description>&lt;p&gt;Aby wybrane systemy DomU startowały automatycznie po restarcie hypervisora należy podlinkować ich pliki konfiguracyjne w katalogu &lt;code&gt;/etc/xen/auto&lt;/code&gt; po uprzednim jego utworzeniu. Przykładowo:&lt;/p&gt;
&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 /etc/xen/auto
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ln -s /etc/xen/example.cfg /etc/xen/auto/example.cfg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Od teraz DomU &lt;code&gt;example&lt;/code&gt; będzie startować automatycznie.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xen - Włączenie Live Migration</title>
      <link>https://gagor.pro/2012/02/xen-wlaczenie-live-migration/</link>
      <pubDate>Sat, 25 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/xen-wlaczenie-live-migration/</guid>
      <description>&lt;p&gt;Jeżeli zdecydowaliśmy się na systemu DomU w obrazach to możemy korzystać z live migration. By uruchomić jej obsługę, trzeba w pliku &lt;code&gt;/etc/xen/xend-config.sxp&lt;/code&gt; odkomentować odpowiednie linie i ustawić adres IP:&lt;/p&gt;
&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;(xend-relocation-server yes)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(xend-relocation-port 8002)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(xend-relocation-address &amp;#39;10.0.10.91&amp;#39;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;wykonywanie-migracji&#34;&gt;Wykonywanie migracji&lt;/h2&gt;
&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;xm migrate --live nazwa-domu nazwa.lub.ip.zdalnego.hosta
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Xen na Squeeze - Instalowanie i konfiguracja hostów gości (DomU)</title>
      <link>https://gagor.pro/2012/02/xen-na-squeeze-instalowanie-i-konfiguracja-hostow-gosci-domu/</link>
      <pubDate>Fri, 24 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/xen-na-squeeze-instalowanie-i-konfiguracja-hostow-gosci-domu/</guid>
      <description>&lt;p&gt;Ostatnio pisałem o &lt;a href=&#34;https://gagor.pl/2012/02/xen-na-squeeze-instalacja-i-konfiguracja-hypervisora/&#34;  target=&#34;_blank&#34;&gt;konfiguracji Dom0&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 - dzisiaj napiszę o uruchamianiu DomU.&lt;/p&gt;
&lt;p&gt;Do instalacji DomU wykorzystuję skrypty z pakietu xen-tools, można go zainstalować poleceniem:&lt;/p&gt;
&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 xen-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Oczywiście aby wszystko działało fajnie musimy ustawić kilka domyślnych opcji, robimy to edytując plik &lt;code&gt;/etc/xen-tools/xen-tools.conf&lt;/code&gt;. Lecimy po kolei:&lt;/p&gt;
&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;# Virtual machine disks are created as logical volumes in
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# volume group &amp;#39;universe&amp;#39; (hint: LVM storage is much faster
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# than file)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;lvm = universe
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Osobiście korzystam z LVM&amp;rsquo;a który zgodnie z hint&amp;rsquo;em jest znacznie szybszy od plików obrazów. Daje do tego bardzo wygodne możliwość w zarządzaniu rozmiarami wolumenów przydzielonych DomU, możliwość tworzenia snapshotów (np. na potrzeby backupu). Postawienie LVM&amp;rsquo;a w skrócie wygląda tak:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kaczka pieczona z żurawiną i jabłkami</title>
      <link>https://gagor.pro/2012/02/kaczka-pieczona-z-zurawina-i-jablkami/</link>
      <pubDate>Thu, 23 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/kaczka-pieczona-z-zurawina-i-jablkami/</guid>
      <description>&lt;p&gt;Bardzo udany przepis - gdzieś musiałem go udokumentować by nie zginął :)&lt;/p&gt;
&lt;h2 id=&#34;składniki&#34;&gt;Składniki&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1 duża kaczka (2-2,5 kg)&lt;/li&gt;
&lt;li&gt;4 ząbki czosnku&lt;/li&gt;
&lt;li&gt;1 kg jabłek (w zależności od kaczki mogą wystarczyć 3 większe sztuki)&lt;/li&gt;
&lt;li&gt;sok z cytryny do skropienia jabłek&lt;/li&gt;
&lt;li&gt;200 g suszonej żurawiny&lt;/li&gt;
&lt;li&gt;pół butelki czerwonego wytrawnego wina&lt;/li&gt;
&lt;li&gt;rozmaryn&lt;/li&gt;
&lt;li&gt;4 łyżki miodu&lt;/li&gt;
&lt;li&gt;cynamon&lt;/li&gt;
&lt;li&gt;kardamon&lt;/li&gt;
&lt;li&gt;sól&lt;/li&gt;
&lt;li&gt;pieprz&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sposób-wykonania&#34;&gt;Sposób wykonania&lt;/h2&gt;
&lt;p&gt;Kaczkę nacieramy solą, pieprzem, rozmarynem oraz roztartym czosnkiem i
pozostawiamy na min. 3-4 godziny w lodówce (można też przygotować ją
wieczorem by była gotowa na następny dzień).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Xen na Squeeze - instalacja i konfiguracja hypervisor’a</title>
      <link>https://gagor.pro/2012/02/xen-na-squeeze-instalacja-i-konfiguracja-hypervisora/</link>
      <pubDate>Thu, 23 Feb 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/02/xen-na-squeeze-instalacja-i-konfiguracja-hypervisora/</guid>
      <description>&lt;h2 id=&#34;po-co-mi-to&#34;&gt;Po co mi to?&lt;/h2&gt;
&lt;p&gt;Wiele razy miałem do czynienia z serwerami na których działało kilka/kilkanaście usług równocześnie, np. Apache (kilka stronek, webmail, phpmyadmin, itp), Postfix/Exim (poczta i żeby było fajnie to na kontach systemowych), Samba (jakieś zasoby dla pracowników), MySQL (baza dla stronek), PostgreSQL (bo jedna stronka potrzebowała), itd&amp;hellip;. Przy takiej konfiguracji pomijane są kwestie separacji usług zewnętrznych/wewnętrznych - no ale firma/instytucja mała nie ma sensu kasy na 3 kolejne serwery wydawać skoro działa&amp;hellip;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wstępne ładowanie programów przy starcie z ureadahead</title>
      <link>https://gagor.pro/2012/01/wstepne-ladowanie-programow-przy-starcie-z-ureadahead/</link>
      <pubDate>Tue, 24 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/wstepne-ladowanie-programow-przy-starcie-z-ureadahead/</guid>
      <description>&lt;p&gt;Jakiś czas temu korzystałem z &lt;a href=&#34;http://sourceforge.net/projects/preload/&#34;  target=&#34;_blank&#34;&gt;preload&amp;rsquo;a&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 który sam uczył się jakie aplikacje odpalam i te programy ładował już podczas startu - przeważnie nieco spowalnia to start systemu ale gdy już się załaduje to programy, które uruchamiam jako pierwsze startują &amp;ldquo;z kopa&amp;rdquo;. Od jakiegoś czasu popularniejszy jest instalowany domyślnie w Ubuntu ureadahead - pełni on podobną funkcję jak preload.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Apache mod_expires konfiguracja</title>
      <link>https://gagor.pro/2012/01/apache-mod_expires-konfiguracja/</link>
      <pubDate>Mon, 23 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/apache-mod_expires-konfiguracja/</guid>
      <description>&lt;p&gt;Aby umożliwić odwiedzającym nasze strony cachowanie obrazków (tak by nie musieli pobierać ich każdorazowo bo przecież nie zmieniają się aż tak często) konieczne jest ustawienie nagłówków: Cache-Control, Expires dla odpowiednich typów plików. W Apachem jest do tego dedykowany moduł - mod_expires. W Debianie dostarczany jest on bez domyślnej &lt;strong&gt;globalnej&lt;/strong&gt; konfiguracji - a ja lubię gdy cacheuje mi się większość statyki. Zawsze można dostosować czas cachowania pod siebie względem określonego typu pliku, np. dla Java Scriptów ustawić na 1 dzień gdy często się zmieniają. Można też w samej aplikacji zmieniać ścieżkę do pliku by wymusić odświeżenie (lub podawać ścieżkę z jakimś losowym identyfikatorem wycinanym przez mod_rewrite).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Długie oczekiwanie na nawiązanie połączenia ssh</title>
      <link>https://gagor.pro/2012/01/dlugie-oczekiwanie-na-nawiazanie-polaczenia-ssh/</link>
      <pubDate>Mon, 23 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/dlugie-oczekiwanie-na-nawiazanie-polaczenia-ssh/</guid>
      <description>&lt;p&gt;Objaw przeważnie jest taki: łączysz się po ssh podając klucz/hasło i czekasz nawet i 10 sekund aż pojawi się prompt. Po połączeniu wszystkie polecenia działają z normalną szybkością. Brzmi znajomo? 😉&lt;/p&gt;
&lt;p&gt;Taki objaw przeważnie jest skutkiem problemów z działaniem DNS&amp;rsquo;a po stronie klienta lub serwera. Warto sprawdzić poleceniami host/dig/nslookup po obu stronach jak dużo czasu potrzeba na rozwiązanie nazw. Najlepiej rozwiązać problem z DNS&amp;rsquo;em ustawiając szybkie serwery ale gdy nie mamy takiej możliwości to po stronie serwera można ustawić w &lt;em&gt;/etc/sshd_config&lt;/em&gt; opcję:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sniffowanie w FortiOS</title>
      <link>https://gagor.pro/2012/01/sniffowanie-w-fortios/</link>
      <pubDate>Mon, 23 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/sniffowanie-w-fortios/</guid>
      <description>&lt;p&gt;Zawsze gdy potrzebuję zesniffować coś na żywo na Fortigate&amp;rsquo;ach muszę przeszukać &lt;a href=&#34;http://kb.fortinet.com&#34;  target=&#34;_blank&#34;&gt;Knowledge Base&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 by przypomnieć sobie wszystkie polecenia do tego potrzebne. Tym razem robię notatki &amp;#x1f603;&lt;/p&gt;
&lt;h2 id=&#34;sniffowanie&#34;&gt;Sniffowanie&lt;/h2&gt;
&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;diagnose debug enable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow filter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; addr      ip address
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; clear     clear filter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; daddr     dest ip address
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; dport     destination port
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; negate    inverse filter
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; port      port
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; proto     protocol number
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; saddr     source ip address
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; sport     source port
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; vd        index of virtual domain
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# np.
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow filter saddr 10.10.80.3
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow filter daddr 8.8.8.8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow filter dport 53
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# wyświetl wyniki na konsoli
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow show console enable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# opcjonalne: wyświetla nazwy funkcji np. odwołania do routingu, itp
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow show function-name enable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# uruchomienie sniffowania - warto podać na końcu jakaś wartość
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# by sniffowanie zakończyło się po takiej liczbie pakietów
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# w przeciwnym wypadku wyniki będą się wypisywać na konsoli
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# aż uda nam się na oślep wyłączyć sniffowanie
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug flow trace start 100
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# zresetowanie filtrowania flow
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug reset
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# wyłączenie sniffowania
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug disable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;diagnostyka-tuneli-ip-sec&#34;&gt;Diagnostyka tuneli IP-Sec&lt;/h2&gt;
&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;# tutaj jest dużo prościej, najpierw włączamy debuga
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug enable
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# a potem
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug application ike 2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# lub dla bardzo, bardzo szczegółowych logów
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;diagnose debug application ike -1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Niestety nie ma tutaj możliwości filtrowania (albo jeszcze o tym nie wiem), więc jeśli mamy dużo aktywnych tuneli to najlepiej zbierać wypisywane komunikaty do pliku i dopiero przeglądać.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Upgrade Debian Lenny do Squeeze</title>
      <link>https://gagor.pro/2012/01/upgrade-debian-lenny-do-squeeze/</link>
      <pubDate>Fri, 13 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/upgrade-debian-lenny-do-squeeze/</guid>
      <description>&lt;p&gt;Co jakiś czas powtarza się sytuacja, gdy muszę zaktualizować jakiś serwerek z Lennym do Squeeze&amp;rsquo;a i za każdym razem muszę googlać za odpowiednimi źródłami, które paczki najpierw, etc&amp;hellip; Więc sobie zebrałem wszystko w poniższym poście.&lt;/p&gt;
&lt;p&gt;W razie wątpliwości patrz tutaj: http://www.debian.org/releases/squeeze/releasenotes&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Zrób backup konfiguracji.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trzeba zaktualizować źródła by wskazywały na squeeze&amp;rsquo;a (poniższe polecenie nadpisze Twoje obecne repozytoria):&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&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;cat &amp;gt; /etc/apt/sources.list &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;lt;&amp;lt;SRC
&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;deb http://ftp.pl.debian.org/debian/ squeeze main non-free contrib
&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;deb-src http://ftp.pl.debian.org/debian/ squeeze main non-free contrib
&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;
&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;deb http://security.debian.org/ squeeze/updates main contrib non-free
&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;deb-src http://security.debian.org/ squeeze/updates main contrib non-free
&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;
&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;deb http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
&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;deb-src http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
&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;
&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;deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
&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;SRC&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Teraz trzeba odświeżyć repozytoria:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Skoda Fabia - Kasownie ostrzeżeń OIL i service INSP</title>
      <link>https://gagor.pro/2012/01/skoda-fabia-kasownie-ostrzezen-oil-i-service-insp/</link>
      <pubDate>Thu, 12 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/skoda-fabia-kasownie-ostrzezen-oil-i-service-insp/</guid>
      <description>Dowiedz się, jak skasować ostrzeżenia OIL i service INSP w samochodzie Skoda Fabia, wykonując kilka prostych kroków.</description>
    </item>
    <item>
      <title>Mój domyślny config dla SciTE</title>
      <link>https://gagor.pro/2012/01/moj-domyslny-config-dla-scite/</link>
      <pubDate>Wed, 11 Jan 2012 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2012/01/moj-domyslny-config-dla-scite/</guid>
      <description>&lt;p&gt;Uruchamiamy SciTE i klikamy menu Options -&amp;gt; Open User Options File, wpisujemy dane:&lt;/p&gt;
&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:#75715e&#34;&gt;# domyślne korzystanie z fontów o stałej szerokości&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;base&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;small&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;comment&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;text&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;text&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;comment&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;embedded&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;base&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;embedded&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;comment&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;vbs&lt;span style=&#34;color:#f92672&#34;&gt;=$&lt;/span&gt;(font&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;monospace)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# numerowanie wierszy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;line&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;margin&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;visible&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;line&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;margin&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;width&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# ikonki toolbara z tematu systemowego&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;toolbar&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;usestockicons&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# zaznaczanie blokowe&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rectangular&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;selection&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;modifier&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&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:#75715e&#34;&gt;# ustawienia wgłębień kodu&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;indent&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;size&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;use&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;tabs&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;indent&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;automatic&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Więcej opcji tutaj: http://www.scintilla.org/SciTEDoc.html&lt;/p&gt;
&lt;p&gt;Sam pewnie jeszcze nie raz zaktualizuję ten wpis &amp;#x1f604;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Empathy - zamykanie okienka chatu przyciskiem Escape</title>
      <link>https://gagor.pro/2011/12/empathy-zamykanie-okienka-chatu-przyciskiem-escape/</link>
      <pubDate>Fri, 30 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/12/empathy-zamykanie-okienka-chatu-przyciskiem-escape/</guid>
      <description>&lt;p&gt;W Gajim&amp;rsquo;ie od dawna brakowało mi wygodnego przeszukiwania po liście kontaktów (takiego jakie ma się pojawić już niebawem w wersji 0.15 - z półtora roku już na to czekam&amp;hellip;). W między czasie znalazłem chwilę by pobawić się Empathy - brzydki, nie ma przeglądarki usług XMPP, ale wyszukiwanie na rosterze jest dokładnie takie jakiego szukałem (w miarę wpisywania znaków zawęża listę kontaktów by pasowały do wpisywanego wzorca).&lt;/p&gt;
&lt;p&gt;Tyle że skróty klawiaturowe w tym programie zwyczajnie mnie rozwalają - przez lata przyzwyczaiłem się że okienka czatu można zamknąć Escape&amp;rsquo;m - a tutaj nawet nie ma opcji, która pozwalała by na taką zmianę zachowania.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Automatyczne backupy w stylu snapshot z rsync’iem</title>
      <link>https://gagor.pro/2011/12/automatyczne-backupy-w-stylu-snapshot-z-rsynciem/</link>
      <pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/12/automatyczne-backupy-w-stylu-snapshot-z-rsynciem/</guid>
      <description>&lt;p&gt;Można znaleźć wiele tutoriali jakimi narzędziami wykonywać backupy. W większości przypadków absolutnie wystarczający okaże się flexbackup. Bardziej wymagający wykorzystają BackupPC, Baculę lub Amandę. Narzędzia te pozwalają wykonać kopie pełne, różnicowe, przyrostowe - kompresując je dla zaoszczędzenia miejsca.&lt;/p&gt;
&lt;p&gt;Wszystko fajnie - ale problemy pojawiają się przy dostępie do tych danych. Żeby odzyskać plik zmodyfikowany dzisiaj trzeba rozpakować najpierw kopię pełną, potem różnicową, przyrostową by wreszcie wyciągnąć plik z wczoraj&amp;hellip; hmm ten też jest skopany. No to lecimy jeszcze raz&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Konfiguracja modemu USB iPlus na urządzeniach FortiGate</title>
      <link>https://gagor.pro/2011/12/konfiguracja-modemu-usb-iplus-na-urzadzeniach-fortigate/</link>
      <pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/12/konfiguracja-modemu-usb-iplus-na-urzadzeniach-fortigate/</guid>
      <description>&lt;p&gt;Zdarzyło mi się bawić sprzętowymi Firewallami firmy Fortigate - chcąc sprawdzić działanie pewnych funkcji potrzebowałem uruchomić dwa/trzy pudełka na osobnych łączach. Pomysł polegał na próbie zmuszenia pudełek do współpracy z modemem iPlus na USB.&lt;/p&gt;
&lt;p&gt;Drugim fajnym zastosowaniem tego triku jest możliwość wykorzystania iPlusa jako &amp;ldquo;zapasowego łącza&amp;rdquo; w przypadku awarii głównego.&lt;/p&gt;
&lt;p&gt;Dzięki pomocy inżyniera Fortigate szybko udało mi się zebrać potrzebne do działania parametry, które należy uruchomić poprzez command line (telnet/ssh).&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL - Proste metody optymalizacji</title>
      <link>https://gagor.pro/2011/12/mysql-proste-metody-optymalizacji/</link>
      <pubDate>Thu, 29 Dec 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/12/mysql-proste-metody-optymalizacji/</guid>
      <description>&lt;p&gt;Wcześniej czy później zawsze pojawia się potrzeba zoptymalizowania naszej bazy MySQL. Przedstawię kilka zmian w konfiguracji, które powinny zwiększyć wydajność w większości przypadków.&lt;/p&gt;
&lt;h2 id=&#34;myisam--key_buffer_size&#34;&gt;MyISAM - key_buffer_size&lt;/h2&gt;
&lt;p&gt;Najprostszą optymalizacją baz/tabel z mechanizmem MyISAM jest odpowiednie dobranie bufora na cache dla kluczy i indeksów (dane nigdy nie są cachowane). Poniższe zapytanie pozwala oszacować zalecany rozmiar cache&amp;rsquo;u:&lt;/p&gt;
&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;SELECT&lt;/span&gt; CONCAT(ROUND(KBS&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;POWER(&lt;span style=&#34;color:#ae81ff&#34;&gt;1024&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:#66d9ef&#34;&gt;IF&lt;/span&gt;(PowerOf1024&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#66d9ef&#34;&gt;IF&lt;/span&gt;(PowerOf1024&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,PowerOf1024)))&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;.&lt;span style=&#34;color:#ae81ff&#34;&gt;4999&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SUBSTR(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39; KMG&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#66d9ef&#34;&gt;IF&lt;/span&gt;(PowerOf1024&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&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:#66d9ef&#34;&gt;IF&lt;/span&gt;(PowerOf1024&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;,PowerOf1024))&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;recommended_key_buffer_size &lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&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:#66d9ef&#34;&gt;SELECT&lt;/span&gt; LEAST(POWER(&lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;,&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;),KBS1) KBS
&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;FROM&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;SUM&lt;/span&gt;(index_length) KBS1
&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;FROM&lt;/span&gt; information_schema.tables
&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;WHERE&lt;/span&gt; engine&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;MyISAM&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;AND&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;table_schema &lt;span style=&#34;color:#66d9ef&#34;&gt;NOT&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;IN&lt;/span&gt; (&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;information_schema&amp;#39;&lt;/span&gt;,&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;mysql&amp;#39;&lt;/span&gt;)) AA ) A,
&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;SELECT&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt; PowerOf1024) B;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wynik określa zalecany rozmiar bufora (parametr &lt;em&gt;&lt;strong&gt;key_buffer_size&lt;/strong&gt;&lt;/em&gt; w pliku &lt;em&gt;/etc/mysql/my.cnf&lt;/em&gt;) dla bieżącego stanu bazy - warto ciut dodać na zapas. Na systemach 32 bitowych parametr &lt;em&gt;&lt;strong&gt;key_buffer_size&lt;/strong&gt;&lt;/em&gt; może przyjmować maksymalnie 4GB, na 64 bitowych maksymalnie 8GB.&lt;/p&gt;</description>
    </item>
    <item>
      <title>fail2ban - regułki dla dovecot’a</title>
      <link>https://gagor.pro/2011/11/fail2ban-regulki-dla-dovecota/</link>
      <pubDate>Mon, 28 Nov 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/11/fail2ban-regulki-dla-dovecota/</guid>
      <description>&lt;p&gt;Domyślna konfiguracja fail2ban&amp;rsquo;a (na Debianie) nie zawiera reguł pozwalających na blokowanie prób włamań na skrzynki POP/IMAP dla dovecota (no chyba że korzystamy z saslauthd). Można szybko utworzyć własny zestaw filtrów co przedstawię poniżej.&lt;/p&gt;
&lt;p&gt;Tworzymy plik: &lt;em&gt;/etc/fail2ban/filter.d/dovecot.conf&lt;/em&gt;&lt;/p&gt;
&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;[Definition]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P&amp;lt;host&amp;gt;\S*),.*
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ignoreregex =
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Później dopisujemy na końcu pliku: &lt;em&gt;/etc/fail2ban/jail.conf&lt;/em&gt;&lt;/p&gt;
&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;[dovecot]
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;enabled  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; true
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;filter   &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; dovecot
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;port     &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; pop3,pop3s,imap,imaps
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;logpath  &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;log&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;mail&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;log
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;maxretry &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;20&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:#75715e&#34;&gt;# te dwa poniżej wedle uznania - ja mam dobrze ustawione default&amp;#39;y&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:#75715e&#34;&gt;#findtime = 1200&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:#75715e&#34;&gt;#bantime  = 1200&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Zostało zrestartować fail2ban&amp;rsquo;a:&lt;/p&gt;</description>
    </item>
    <item>
      <title>X-Forwarded-For &#43; mod_rpaf - logowanie rzeczywistych adresów IP na Apache za reverse proxy</title>
      <link>https://gagor.pro/2011/11/x-forwarded-for-mod_rpaf-logowanie-rzeczywistych-adresow-ip-na-apache-za-reverse-proxy/</link>
      <pubDate>Mon, 28 Nov 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/11/x-forwarded-for-mod_rpaf-logowanie-rzeczywistych-adresow-ip-na-apache-za-reverse-proxy/</guid>
      <description>&lt;p&gt;Gdy już ustawimy reverse proxy przed Apache szybko można zauważyć że w logach zamiast adresów IP zdalnych użytkowników pojawia się tylko jeden adres: adres naszego proxy. Również z poziomu php&amp;rsquo;a jako adres klienta widać IP naszego proxy.&lt;/p&gt;
&lt;p&gt;By poradzić sobie z tym problemem trzeba na serwerze reverse proxy ustawić przekazywanie informacji o oryginalnym adresie IP klienta w nagłówku X-Forwarded-For. W przypadku gdy reverse proxy działa na nginx&amp;rsquo;e wystarczy dodać taki wpis:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Porównanie optymalizatorów PHP - eAccelerator, PHP APC, XCache</title>
      <link>https://gagor.pro/2011/11/porownanie-optymalizatorow-php-eaccelerator-php-apc-xcache/</link>
      <pubDate>Wed, 02 Nov 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/11/porownanie-optymalizatorow-php-eaccelerator-php-apc-xcache/</guid>
      <description>&lt;p&gt;Przez pewien czas korzystałem z eAcceleratora do przyspieszenia działania stron pisanych w PHP&amp;rsquo;ie ale czasem bywał niestabilny. Aktualizacje pojawiały się rzadko a od czasu do czasu miewałem problemy ze stabilnością tej wtyczki na kilku bardziej skomplikowanych aplikacjach. Zdarzało się że pomimo zmiany kodu w skrypcie php, eAccelerator serwował wciąż stary plik - konieczny był restart Apache&amp;rsquo;go by wszystko działało jak trzeba.&lt;/p&gt;
&lt;p&gt;Zacząłem szukać alternatywy i trafiłem na dwa moduły:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://php.net/manual/en/book.apc.php&#34;  target=&#34;_blank&#34;&gt;APC&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 (czyli Alternative PHP Cache), który ma być nawet domyślnie wbudowany w PHP od wersji 5.4,&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://xcache.lighttpd.net/&#34;  target=&#34;_blank&#34;&gt;XCache&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 - projekt rozwijany przez jednego z programistów lighttpd.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Byłem ciekaw wydajności poszczególnych rozwiązań względem siebie, więc przygotowałem małe środowisko testowe składające się z 4 maszyn wirtualnych (działających pod kontrolą VirtualBox&amp;rsquo;a):&lt;/p&gt;</description>
    </item>
    <item>
      <title>SLES 11 - instalacja Service Pack’a</title>
      <link>https://gagor.pro/2011/10/sles-11-instalacja-service-packa/</link>
      <pubDate>Thu, 20 Oct 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/10/sles-11-instalacja-service-packa/</guid>
      <description>&lt;p&gt;Administrowałem do tej pory głównie darmowymi distro, ale gdzieś tam ukradkiem wkradło się kilka &amp;ldquo;siusiaków&amp;rdquo; (aka &lt;strong&gt;SUSE Linux Enterprise Server&lt;/strong&gt;). Żyłem w utopijnym przekonaniu że skoro się za nie płaci to powinno się z nimi łatwiej współpracować&amp;hellip; w przypadku instalacji aktualizacji (a w szczególności SP) nie było to aż takie proste.&lt;/p&gt;
&lt;p&gt;Przywykłem w darmowych dystrybucjach że gdy pojawiała się nowszą &amp;ldquo;większa wersja&amp;rdquo; to po prostu można było jednym poleceniem zaktualizować wszystkie pakiety. Źródła aktualizowały się automatycznie (lub prawie automatycznie) - później trzeba było połatać ewentualne zmiany w plikach konfiguracyjnych. W SUSE jest ciut inaczej&amp;hellip; 😉&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ochrona usług przed atakami brute force z fail2ban’em</title>
      <link>https://gagor.pro/2011/10/ochrona-uslug-przed-atakami-brute-force-z-fail2banem/</link>
      <pubDate>Mon, 03 Oct 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/10/ochrona-uslug-przed-atakami-brute-force-z-fail2banem/</guid>
      <description>&lt;p&gt;Bardzo często konfigurując usługi dostępne publicznie poświęca się sporo czasu na maksymalne zwiększenie bezpieczeństwa przez &amp;ldquo;dopieszczanie&amp;rdquo; konfiguracji (certyfikaty z mocnym szyfrowaniem, ochronę pewnych stron hasłem, dostęp do SSH tylko kluczami, itd.) ale całkowicie pomija się przygotowanie systemu aktywnie monitorującego błędne próby autoryzacji. Oczywiście nie można umniejszać wagi pierwszego z wymienionych etapów ale zdecydowanie nie powinno pomijać się też tego drugiego. Przecież każdy admin chciałby wiedzieć gdy ktoś próbuje włamać się na jego serwer (FTP, HTTP, SSH, itp.) - tylko ilu z Nas zadaje sobie trud by uruchomić taki system?&lt;/p&gt;</description>
    </item>
    <item>
      <title>pflogsumm - Mail Statistics for Postfix</title>
      <link>https://gagor.pro/2011/09/pflogsumm-mail-statistics-for-postfix/</link>
      <pubDate>Thu, 22 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/pflogsumm-mail-statistics-for-postfix/</guid>
      <description>Learn how to use pflogsumm to generate comprehensive mail statistics for Postfix, helping you monitor and manage your mail server effectively.</description>
    </item>
    <item>
      <title>fsck.ext4 - Błąd podczas przydzielania struktury icount: Memory allocation failed</title>
      <link>https://gagor.pro/2011/09/fsck-ext4-blad-podczas-przydzielania-struktury-icount-memory-allocation-failed/</link>
      <pubDate>Wed, 21 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/fsck-ext4-blad-podczas-przydzielania-struktury-icount-memory-allocation-failed/</guid>
      <description>&lt;p&gt;Miałem ostatnio dziwną przygodę: pewien serwer do backupu gdzie ląduje dużo małych plików i dodatkowo tworzonych jest sporo hardlinków zaliczył pada. Co prawda starałem się go grzecznie położyć z pomocą &lt;a title=&#34;Magic SysRq - bezpieczny reset Linux’a&#34; href=&#34;https://gagor.pl/2011/09/magic-sysrq-bezpieczny-reset-linuxa/&#34;&gt;Magic SysRq&lt;/a&gt; ale ponieważ nie wiedziałem co było przyczyną awarii fsck wydawał się wskazany.&lt;/p&gt;
&lt;p&gt;Podczas próby uruchomienia fsck.ext4 na systemie plików o rozmiarze ok 14TB z kilkuset milionami plików po kilkudziesięciu sekundach otrzymywałem komunikat:&lt;br /&gt; &lt;strong&gt;Błąd podczas przydzielania struktury icount: Memory allocation failed&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Magic SysRq - bezpieczny reset Linux’a</title>
      <link>https://gagor.pro/2011/09/magic-sysrq-bezpieczny-reset-linuxa/</link>
      <pubDate>Sat, 17 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/magic-sysrq-bezpieczny-reset-linuxa/</guid>
      <description>&lt;p&gt;Pomimo iż Linux uchodzi za stabilne środowisko to raz na jakiś czas trafi się ciężka zwiecha - z powodu przeciążenia, awarii sprzętu&amp;hellip; nieistotne&amp;hellip;&lt;/p&gt;
&lt;p&gt;Załóżmy że licho wzięło za cel główny serwer plików lub bazę danych dla wielu, wielu stron internetowych. Dostać się po ssh nie możemy bo lecą timeout&amp;rsquo;y, a siedząc bezpośrednio przy klawiaturze konsola nie reaguje. Mimo to coś ostro daje po dyskach, więc ewentualny twardy reset to na bank utrata części plików&amp;hellip; jeśli system po nim w ogóle wstanie&amp;hellip; &amp;#x1f611;&lt;/p&gt;</description>
    </item>
    <item>
      <title>approx - cachujące proxy dla repozytoriów Debiana</title>
      <link>https://gagor.pro/2011/09/approx-cachujace-proxy-dla-repozytoriow-debiana/</link>
      <pubDate>Fri, 16 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/approx-cachujace-proxy-dla-repozytoriow-debiana/</guid>
      <description>&lt;p&gt;Wielu administratorów gdy zaczyna swoją przygodę zarządza jedną/dwoma maszynami&amp;hellip; Po pewnym czasie jest ich już kilka&amp;hellip; W którymś momencie dostrzega się zalety wirtualizacji i na kilku maszynach fizycznych działa kilkanaście czy kilkadziesiąt maszyn wirtualnych. W takiej sytuacji pobieranie aktualizacji dla wszystkich maszyn potrafi mocno zabić łącze.&lt;/p&gt;
&lt;p&gt;I w tym momencie zaczynamy się zastanawiać czy może nie warto byłoby zrobić własnego mirror&amp;rsquo;a paczek dla naszego ulubionego distro&amp;hellip; do prywatnego użytku&amp;hellip; synchronizowanego w nocy by nikomu nie przeszkadzać&amp;hellip; i dostępnego nawet gdy będziemy offline&amp;hellip; Zaczynamy liczyć miejsce i okazuje się że repozytorium Debiana dla architektury i386 to prawie 60GB (sic!), no ale mamy kilka maszynek z arch amd64 i tutaj też prawie 60GB - auć. W tym miejscu wielu dochodzi do wniosku że to jeszcze nie pora na własnego mirror&amp;rsquo;a &amp;#x1f603;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wymuszenie zwolnienia pamięci buforów dyskowych na Linux’ie</title>
      <link>https://gagor.pro/2011/09/wymuszenie-zwolnienia-pamieci-buforow-dyskowych-na-linuxie/</link>
      <pubDate>Thu, 15 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/wymuszenie-zwolnienia-pamieci-buforow-dyskowych-na-linuxie/</guid>
      <description>&lt;p&gt;Linux bardzo agresywnie wykorzystuje wolną pamięć RAM do buforowania danych odczytywanych z dysków (inode&amp;rsquo;ów, plików, itd&amp;hellip;). Ma to niebagatelny wpływ na zwiększenie szybkości uruchamiania programów które już raz zostały uruchomione. Jednak nie zawsze jest to pożądane zachowanie, np. testując szybkość uruchomienia/wykonywania tworzonej przez nas aplikacji - buforowanie zmienia czas ładowania aplikacji przy kolejnych uruchomieniach. Dobrze byłoby móc wymusić zwolnienie buforów by każdy start programu miał porównywalne &amp;ldquo;warunki startowe&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Na szczęście można to zrobić w prosty sposób:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zabezpieczenie Apachego na Debianie przed slowloris’em</title>
      <link>https://gagor.pro/2011/09/zabezpieczenie-apachego-na-debianie-przed-slowlorisem/</link>
      <pubDate>Mon, 12 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/zabezpieczenie-apachego-na-debianie-przed-slowlorisem/</guid>
      <description>&lt;p&gt;Od jakiegoś czasu dostępny jest w sieci skrypt &lt;a href=&#34;http://ha.ckers.org/slowloris/&#34;  target=&#34;_blank&#34;&gt;slowloris.pl&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 pozwalający z pojedynczego komputera wykonać atak DOS na zdalny serwer WWW. Atak polega na uruchomieniu wielu równoczesnych sesji i bardzo wolnym wysyłaniu komunikatów HTTP. Atakujący udaje &amp;ldquo;klienta z wolnym łączem&amp;rdquo; równocześnie uruchamiając kolejne sesje by po pewnym czasie zająć wszystkie dostępne. Serwer WWW przestaje wtedy odpowiadać na zapytania od innych klientów. Dodatkowo na źle wyskalowanych serwerach duża liczba procesów Apachego może spowodować swapowanie i błędy braku pamięci.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sprawdzenie który proces obciąża dyski</title>
      <link>https://gagor.pro/2011/09/sprawdzenie-ktory-proces-obciaza-dyski/</link>
      <pubDate>Fri, 02 Sep 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/09/sprawdzenie-ktory-proces-obciaza-dyski/</guid>
      <description>&lt;p&gt;Na jednym z serwerów zauważyłem dziwny wzrost obciążenia. Tzw. LOAD od kilku dni po woli rósł. top pokazywał że dwa rdzenie CPU czekają na dane z dysku - tzw. io wait na poziomie 80~90% ale żaden proces w znaczącym stopniu nie obciążał CPU.&lt;/p&gt;
&lt;p&gt;Jest kilka narzędzi (&lt;em&gt;&lt;strong&gt;iostat&lt;/strong&gt;&lt;/em&gt;, &lt;em&gt;&lt;strong&gt;wmstat&lt;/strong&gt;&lt;/em&gt;), które pozwalają monitorować obciążenie dysków ale ja nie szukałem informacji czy i w jakim stopniu dyski są obciążone - wiedziałem że są. Chciałem dowiedzieć się który proces generuje to obciążenie - by móc go ubić &amp;#x1f603;&lt;/p&gt;</description>
    </item>
    <item>
      <title>JPGraph, wykresy z PHP’a</title>
      <link>https://gagor.pro/2011/08/jpgraph-wykresy-z-phpa/</link>
      <pubDate>Mon, 29 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/jpgraph-wykresy-z-phpa/</guid>
      <description>&lt;p&gt;Onego czasu próbowałem znaleźć coś co ułatwiłoby mi rysowanie prostych wykresów w PHP&amp;rsquo;ie inaczej niż z palca w GD. Kumpel polecił mi &lt;a href=&#34;http://www.aditus.nu/jpgraph&#34;  target=&#34;_blank&#34;&gt;JPGraph&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;JPGraph to świetna sprawa, do generowania statystyk jak chociażby na mojej stronie, ale biblioteka potrafi dużo więcej&amp;hellip;&lt;/p&gt;
&lt;p&gt;Załóżmy, że ze stronki zbieramy do bazy takie rzeczy jak: datę, adres IP, ilość połączeń z tego adresu. Prosta tabela (przykład w Postgre SQL&amp;rsquo;u):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Konfiguracja backportów na Debianie</title>
      <link>https://gagor.pro/2011/08/konfiguracja-backportow-na-debianie/</link>
      <pubDate>Mon, 29 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/konfiguracja-backportow-na-debianie/</guid>
      <description>&lt;p&gt;Tak się składa, że Debian ze względu na stosunkowo rzadkie wydawanie kolejnych wersji szybko staje się niezbyt świeży a dostępne w nim pakiety często nie spełaniają naszych oczekiwań. Nie ma najnowszej wersji Subversion&amp;hellip; Nie ma mod_security itd, itp&amp;hellip;&lt;/p&gt;
&lt;p&gt;Rozwiązaniem tego problemu może być instalacja pakietów z testowej gałęzi ale można polec na zależnościach. Można też kompilować ze źródeł&amp;hellip; Tak czy siak w obu przypadkach aktualizacja i utrzymanie tak zmodyfikowanego systemu byłoby jak wrzód na zadku.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optymalizacja PHP z eAccelerator’em</title>
      <link>https://gagor.pro/2011/08/optymalizacja-php-z-eacceleratorem/</link>
      <pubDate>Mon, 29 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/optymalizacja-php-z-eacceleratorem/</guid>
      <description>&lt;p&gt;Przy okazji wykonywania kilku drobnych optymalizacji swojej stronki natknąłem się na eAccelerator&amp;rsquo;a. Ciekawy projekt, który w sposobie działania przypomina Zend Optimizer&amp;rsquo;a ale ma jedną zasadniczą zaletę - jest darmowy &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;Niestety nie ma go w repozytoriach Debiana, więc trzeba go sobie skompilować - cały proces jest dość prosty. Zaczynamy od pobrania najświeższej paczki, obecnie jest to wersja 0.9.5.3:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2&#34;  target=&#34;_blank&#34;&gt;Pobierz eAccelerator&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 (ostatnio miałem problem z tym linkiem więc proponuję pogooglać)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Statystyki odwiedzin dla wielu serwisów z AWStats</title>
      <link>https://gagor.pro/2011/08/statystyki-odwiedzin-dla-wielu-serwisow-z-awstats/</link>
      <pubDate>Mon, 29 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/statystyki-odwiedzin-dla-wielu-serwisow-z-awstats/</guid>
      <description>&lt;p&gt;Co prawda na swojej stronie zrobiłem kilka podstawowych statystyk i coś tam sobie loguję do bazy danych, ale gdyby się chwilę zastanowić to przecież to samo robi serwer www - wrzuca do logów każde zapytanie HTTP, kod błędu, nazwę agenta, itd. Dublowanie tych danych nie jest najbardziej optymalne.&lt;br /&gt; Stąd też chwilę pogooglałem i znalazłem świetny Open Source&amp;rsquo;owy projekt: &lt;strong&gt;AWStats&lt;/strong&gt;, który jest webowym analizatorem logów dla serwerów HTTP, FTP i SMTP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Certyfikaty SelfSigned</title>
      <link>https://gagor.pro/2011/08/certyfikaty-selfsigned/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/certyfikaty-selfsigned/</guid>
      <description>&lt;p&gt;Certyfikaty oparte o SSL stanowią obecnie podstawę bezpieczeństwa wielu usług sieciowych zaczynając od HTTP, przez POPS, IMAPS, itd&amp;hellip; Niestety zakupienie certyfikatu w organizacjach jak VeriSgin czy Thawte jest dość kosztowe, a jeżeli potrzebujemy kilka certyfikatów to często na lokalne potrzeby jest to po prostu nie opłacalne.&lt;/p&gt;
&lt;p&gt;Postaram się przedstawić wersję &amp;ldquo;ekonomiczną&amp;rdquo; certyfikacji &amp;#x1f603;&lt;/p&gt;
&lt;h2 id=&#34;generowanie-certificate-signing-request&#34;&gt;Generowanie Certificate Signing Request&lt;/h2&gt;
&lt;p&gt;Pierwszym etapem generowania certyfikatu jest przygotowanie &lt;em&gt;Certificate Signing Request&lt;/em&gt;, czyli czegoś w rodzaju &amp;ldquo;prośby&amp;rdquo; o certyfikat. Nasza &amp;ldquo;prośba&amp;rdquo; po podpisaniu przez centrum autoryzacyjne stanie się certyfikatem.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dynamiczne IP i RBL’e</title>
      <link>https://gagor.pro/2011/08/dynamiczne-ip-i-rble/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/dynamiczne-ip-i-rble/</guid>
      <description>&lt;p&gt;Mój serwer pocztowy działa od jakiegoś czasu na dynamicznym IP (dobre bo tanie&amp;hellip;) i przeważnie nie ma z tym problemów. Postarałem się jak mogłem ustawiając SPF&amp;rsquo;a i DomainKeys aby uwiarygodnić go u większych dostawców poczty.&lt;/p&gt;
&lt;p&gt;Niestety wszystko to diabli biorą w momencie gdy wygasa mi leasse DHCP i dostaję nowe IP po jakimś spamerze/zombiaku. Wisi takie w 2-3 większych RBL&amp;rsquo;ach i o dostarczaniu poczty można zapomnieć. Miło gdy jeszcze zdalny MTA zechce odesłać zwrotkę &amp;ldquo;zróbta coś bo wisisz w RBL&amp;rsquo;u takim a takim&amp;hellip;&amp;rdquo;, ale zdecydowania niefajnie gdy wysyłasz pocztę a ona od razu leci do &lt;code&gt;/dev/null&lt;/code&gt; &amp;#x1f626;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Klastrowanie sesji PHP z memcached</title>
      <link>https://gagor.pro/2011/08/klastrowanie-sesji-php-z-memcached/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/klastrowanie-sesji-php-z-memcached/</guid>
      <description>&lt;p&gt;Klastrowanie to może zbyt dumnie powiedziane. Rozwiązanie to wyszukałem gdy chcąc skonfigurować dwa serwery apache do współpracy na rzecz jednego serwisu okazało się, że sejse trzymane są tylko przez jeden serwer a drugi nic o nich nie wie. To oczywiście nie pozwalało na prawidłowe działanie jakiegokolwiek serwisu korzystającego z sesji.&lt;/p&gt;
&lt;p&gt;Pomysł jest taki, że zastępujemy domyśny mechanizm przechowywania sesji w plikach na dysku mechanizmem memcache. Ponieważ memcached działa jako usługa sieciowa, różne serwery mogą się odwoływać do puli memcached i odczytywać zapisane w niej dane. W przypadku sesji - nie jest ważne, kto ją utworzył - bo po jej wysłaniu do puli memcached staje się dostępna dla wszystkich klientów php z niej korzystających.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MySQL - dostęp zdalny na szybko</title>
      <link>https://gagor.pro/2011/08/mysql-na-szybko/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/mysql-na-szybko/</guid>
      <description>&lt;p&gt;Instalacja serwera MySQL na Debianie jest niezwykle prosta i sprowadza się do jednego polecenia:&lt;/p&gt;
&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;sudo apt-get install mysql-server
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Polecenie to zainstaluje i uruchomi usługę serwerową MySQL. W czasie instalacji będziemy proszeni o podanie hasła dla root&amp;rsquo;a (które oczywiście dobrze jest zapamiętać bądź zapisać).&lt;/p&gt;
&lt;p&gt;Tak zainstalowana baza nasłuchuje na lokalnym porcie (localhost:3306) umożliwiająć dostęp wyłącznie root&amp;rsquo;owi. Jest to bardzo bezpieczna konfiguracja&amp;hellip; Ale jeśli nie mamy zamiaru na tej samej maszynie instalować oprogramowania zarządzającego to nie zawsze jest to wygodne, tym bardziej gdy przykładowo mamy działającego phpmyadmin&amp;rsquo;a na jakimś serwerze www. W takim przypadku pierwszą rzeczą, którą robię jest udostępnienie dostępu zdalnego dla root&amp;rsquo;a. Warto zaznaczyć że uprawnienia root&amp;rsquo;a można nadać dowolnemu użytkownikowi (np. romanowi) co jest dużo bezpieczniejszą konfiguracją niż działanie bezpośrednio na koncie root&amp;rsquo;a (którego nazwa jest powszechnie znana).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quota na katalog w XFS’ie</title>
      <link>https://gagor.pro/2011/08/quota-na-katalog-w-xfsie/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/quota-na-katalog-w-xfsie/</guid>
      <description>&lt;p&gt;Większość systemów plików w linuksie pozwala na ustawienie quoty na dwóch poziomach: na użytkownika lub na grupę użytkowników. W wielu przypadkach taki podział jest sensowny i wystarczający. Ale zdarzają się scenariusze, w których to za mało.&lt;/p&gt;
&lt;p&gt;Dobrym przykładem jest serwer FTP z wirtualnymi kontami użytkowników. Czyli usługa serwera działa jako pewien nieuprzywilejowany użytkownik systemowy (przeważnie ftp) przypisany do nieuprzywilejowanej grupy (np. nogroup). Konta użytkowników serwera FTP są zdefiniowane w bazie danych lub serwerze LDAP. Takie konta nazywa się wirtualnymi ponieważ po autoryzacji w pewnym systemie (bazie danych, LDAP&amp;rsquo;ie) działają z uprawnieniami pewnego systemowego konta (w tym przypadku ftp) - nie ma więc odzwierciedlenia pomiędzy użytkownikami korzystającymi z ftp a kontami systemowymi.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RainbowDB</title>
      <link>https://gagor.pro/2011/08/rainbowdb/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/rainbowdb/</guid>
      <description>&lt;p&gt;Pewnego popołudnia przeczytałem artykuł o tęczowych tabelach i pod jego wpływem zacząłem kombinować jak zrobić coś takiego ale swojego.&lt;/p&gt;
&lt;p&gt;Do bazy wrzuciłem cały słownik z aspell&amp;rsquo;a dla języka polskiego (słowa z ogonkami i bez), angielskiego, kilka słowników z popularnymi hasłami, długą listę haseł z yourock i kilka innych. Sporo się nakombinowałem aby wygenerować dużo kombinacji szczególnie pod kątem polskich haseł (wszystkie: misiaczki, dupeczki, itp&amp;hellip;) razem z różnymi popularnymi modyfikacjami (typu: misiaczki1, DUPECZKI, etc&amp;hellip;). Na tym etapie miałem już wystarczająco dużo haseł aby bawić się dalej.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Włam na lokalne konto root’a</title>
      <link>https://gagor.pro/2011/08/wlam-na-lokalne-konto-roota/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/wlam-na-lokalne-konto-roota/</guid>
      <description>&lt;p&gt;Jeżeli tu zaglądasz pewnie zdarzyło Ci się kiedyś, że przykładowo wygrzebujesz jakiś stary serwer i nie masz pojęcia co na nim było, ani do czego służyło, czy jeszcze działa&amp;hellip; Albo jeszcze inaczej - serwer działał tak długo, że wszystkie osoby znające hasło na root&amp;rsquo;a przeszły na emeryturę lub zmarły&amp;hellip; Nieistotne &amp;#x1f603;&lt;/p&gt;
&lt;p&gt;Jest pewna prosta sztuczka, pozwalająca wbić się na konto root&amp;rsquo;a nie znając hasła - dając nam możliwość jego zmiany. Potrzebne &lt;code&gt;dwa restarty&lt;/code&gt; ale za to nie trzeba korzystać z żadnych&lt;code&gt;live cd&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wysyłanie załączników poleceniem mail</title>
      <link>https://gagor.pro/2011/08/wysylanie-zalacznikow-poleceniem-mail/</link>
      <pubDate>Sat, 27 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/2011/08/wysylanie-zalacznikow-poleceniem-mail/</guid>
      <description>&lt;p&gt;Kiedyś potrzebowałem w ramach testu obciążeniowego wysłać dużo wiadomości z załącznikami. Chciałem to zrobić na szybko z shell&amp;rsquo;a i tutaj chwilę musiałem pogooglać aby znaleźć działające polecenie. To co znalazłem wygląda tak:&lt;/p&gt;
&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:#f92672&#34;&gt;(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;testowa wiadomosc&amp;#34;&lt;/span&gt;; uuencode test.zip test.zip&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;| mail -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Test&amp;#34;&lt;/span&gt; testowy@mail.pl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Wiedząc już jak wysyłać maile z załącznikami, mały mail bombing mogłem zrobić tak:&lt;/p&gt;
&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:#66d9ef&#34;&gt;for&lt;/span&gt; i in &lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;seq &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; 100&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&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:#f92672&#34;&gt;(&lt;/span&gt;cat tekst.txt; uuencode test.zip test.zip&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   | mail -s &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Test &lt;/span&gt;$i&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; testowy@mail.pl;
&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;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Few words about me</title>
      <link>https://gagor.pro/about/</link>
      <pubDate>Fri, 26 Aug 2011 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/about/</guid>
      <description>&lt;p&gt;My name is Tomasz Gągor.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a passionate day-to-day DevOps practitioner. I enjoy working with anything Linux-driven, especially containerized web services. I&amp;rsquo;m a security enthusiast who loves managing and scaling cloud systems.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m a generalist who has delved into many diverse topics throughout my career. I&amp;rsquo;ve discussed the advantages of one DB engine over another and how to tune them for better performance with DBAs. With network specialists, I&amp;rsquo;ve even debugged IKE protocol using raw packets. I never really coded anything serious in Java, but I&amp;rsquo;ve gained a reputation as a Java performance tuning specialist!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Rzecz o istocie informatyki</title>
      <link>https://gagor.pro/book/2010/rzecz-o-istocie-informatyki/</link>
      <pubDate>Fri, 10 Dec 2010 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2010/rzecz-o-istocie-informatyki/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Rzecz o istocie informatyki by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Rzecz o istocie informatyki&lt;/q&gt;&lt;p&gt;Algorytmika&lt;/p&gt;&lt;p&gt;Authors: David Harel,  Yishai Feldman&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Więcej perełek oprogramowania</title>
      <link>https://gagor.pro/book/2010/wiecej-perelek-oprogramowania/</link>
      <pubDate>Wed, 10 Feb 2010 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2010/wiecej-perelek-oprogramowania/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Więcej perełek oprogramowania by Jon Bentley&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Więcej perełek oprogramowania&lt;/q&gt;&lt;p&gt;Wyznania programisty&lt;/p&gt;&lt;p&gt;Author: Jon Bentley&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Krótka historia czasu</title>
      <link>https://gagor.pro/book/2009/krotka-historia-czasu/</link>
      <pubDate>Thu, 29 Oct 2009 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2009/krotka-historia-czasu/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Krótka historia czasu by Stephen Hawking&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Krótka historia czasu&lt;/q&gt;&lt;p&gt;Od Wielkiego Wybuchu do czarnych dziur&lt;/p&gt;&lt;p&gt;Author: Stephen Hawking&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Perełki oprogramowania</title>
      <link>https://gagor.pro/book/2009/perelki-oprogramowania/</link>
      <pubDate>Thu, 10 Sep 2009 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2009/perelki-oprogramowania/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Perełki oprogramowania by Jon Bentley&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Perełki oprogramowania&lt;/q&gt;&lt;p&gt;Seria Klasyka informatyki&lt;/p&gt;&lt;p&gt;Author: Jon Bentley&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve read few books about algorithms, but this one was my favorite. It&amp;rsquo;s not a handbook/manual style, where you have all algorithms explained - it&amp;rsquo;s rather a feast for though.&lt;/p&gt;
&lt;p&gt;From this book I learned principles like: &amp;ldquo;divide and conquer&amp;rdquo; (or how I prefer it: whatever you can, divide by two &amp;#x1f604;). It might not be that obvious at first, but practical use cases are unlimited. My personal favorite is hanging the curtains: you start at edges, then in the middle, then you divide again and again until you have them perfectly symmetric. Of course, the most common use case are sorting algorithms, but even with those understanding why Quick Sort is not the best one, and Heap Sort wins competition allowed me to surprise many people from DBAs to Senior Software Engineers - they didn&amp;rsquo;t know!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Zarządzanie czasem</title>
      <link>https://gagor.pro/book/2008/zarzadzanie-czasem/</link>
      <pubDate>Mon, 10 Mar 2008 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2008/zarzadzanie-czasem/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Zarządzanie czasem by Thomas Limoncelli&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Zarządzanie czasem&lt;/q&gt;&lt;p&gt;Strategie dla administratorów systemów&lt;/p&gt;&lt;p&gt;Author: Thomas Limoncelli&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This book was my first introduction to task management and &amp;ldquo;&lt;a href=&#34;https://gagor.pro/book/2012/getting-things-done/&#34; &gt;Getting Things Done&amp;rdquo;&lt;/a&gt;
 methodology.&lt;/p&gt;
&lt;p&gt;At this time I was still a student, and as it was referenced in this book I was performing backups of servers on the tapes (HP LTO). So this small tip on how often to change tapes, made my life easier.
I also implemented Nagios in the company where I was working to improve monitoring. I also&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deep Storm</title>
      <link>https://gagor.pro/book/2008/deep-storm/</link>
      <pubDate>Wed, 20 Feb 2008 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2008/deep-storm/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Głębia by Lincoln Child&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Głębia&lt;/q&gt;&lt;p&gt;Author: Lincoln Child&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I received this book as a present from my wife. It didn&amp;rsquo;t look exceptional, just something random, but she really hit the mark. Although I don&amp;rsquo;t remember the plot details perfectly after all these years, it was a very good book.&lt;/p&gt;
&lt;style type=&#34;text/css&#34;&gt;.notice{--root-color:#444;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#c33;--warning-content:#fee;--info-title:#fb7;--info-content:#fec;--note-title:#6be;--note-content:#e7f2fa;--tip-title:#5a5;--tip-content:#efe}@media (prefers-color-scheme:dark){.notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}}body.dark .notice{--root-color:#ddd;--root-background:#eff;--title-color:#fff;--title-background:#7bd;--warning-title:#800;--warning-content:#400;--info-title:#a50;--info-content:#420;--note-title:#069;--note-content:#023;--tip-title:#363;--tip-content:#121}.notice{padding:18px;line-height:24px;margin-bottom:24px;border-radius:4px;color:var(--root-color);background:var(--root-background)}.notice p:last-child{margin-bottom:0}.notice-title{margin:-18px -18px 12px;padding:4px 18px;border-radius:4px 4px 0 0;font-weight:700;color:var(--title-color);background:var(--title-background)}.notice.warning .notice-title{background:var(--warning-title)}.notice.warning{background:var(--warning-content)}.notice.info .notice-title{background:var(--info-title)}.notice.info{background:var(--info-content)}.notice.note .notice-title{background:var(--note-title)}.notice.note{background:var(--note-content)}.notice.tip .notice-title{background:var(--tip-title)}.notice.tip{background:var(--tip-content)}.icon-notice{display:inline-flex;align-self:center;margin-right:8px}.icon-notice img,.icon-notice svg{height:1em;width:1em;fill:currentColor}.icon-notice img,.icon-notice.baseline svg{top:.125em;position:relative}&lt;/style&gt;
&lt;div&gt;&lt;svg width=&#34;0&#34; height=&#34;0&#34; display=&#34;none&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&lt;symbol id=&#34;tip-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;note-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;warning-notice&#34; viewBox=&#34;0 0 576 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z&#34;/&gt;&lt;/symbol&gt;&lt;symbol id=&#34;info-notice&#34; viewBox=&#34;0 0 512 512&#34; preserveAspectRatio=&#34;xMidYMid meet&#34;&gt;&lt;path d=&#34;M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z&#34;/&gt;&lt;/symbol&gt;&lt;/svg&gt;&lt;/div&gt;&lt;div class=&#34;notice warning&#34; &gt;
&lt;p class=&#34;first notice-title&#34;&gt;&lt;span class=&#34;icon-notice baseline&#34;&gt;&lt;svg&gt;&lt;use href=&#34;#warning-notice&#34;&gt;&lt;/use&gt;&lt;/svg&gt;&lt;/span&gt;Warning&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bezpieczeństwo sieci</title>
      <link>https://gagor.pro/book/2007/bezpieczenstwo-sieci/</link>
      <pubDate>Sat, 10 Feb 2007 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2007/bezpieczenstwo-sieci/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Bezpieczeństwo sieci by &#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Bezpieczeństwo sieci&lt;/q&gt;&lt;p&gt;Narzędzia&lt;/p&gt;&lt;p&gt;Authors: Nitesh Dhanjani,  Justin Clarke&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Kurs Szybkiego Czytania</title>
      <link>https://gagor.pro/book/2006/kurs-szybkiego-czytania/</link>
      <pubDate>Tue, 04 Apr 2006 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2006/kurs-szybkiego-czytania/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Kurs Szybkiego Czytania by Jamruszkiewicz Jolanta&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Kurs Szybkiego Czytania&lt;/q&gt;&lt;p&gt;Author: Jamruszkiewicz Jolanta&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Władca Pierścieni</title>
      <link>https://gagor.pro/book/2005/wladca-pierscieni-druzyna-pierscienia/</link>
      <pubDate>Fri, 11 Mar 2005 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2005/wladca-pierscieni-druzyna-pierscienia/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Władca Pierścieni by J. R. R. Tolkien&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Władca Pierścieni&lt;/q&gt;&lt;p&gt;Drużyna pierścienia. Tom 1&lt;/p&gt;&lt;p&gt;Author: J. R. R. Tolkien&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Władca Pierścieni</title>
      <link>https://gagor.pro/book/2005/wladca-pierscieni-dwie-wieze/</link>
      <pubDate>Fri, 11 Mar 2005 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2005/wladca-pierscieni-dwie-wieze/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Władca Pierścieni by J. R. R. Tolkien&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Władca Pierścieni&lt;/q&gt;&lt;p&gt;Dwie wieże. Tom 2&lt;/p&gt;&lt;p&gt;Author: J. R. R. Tolkien&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>Władca Pierścieni</title>
      <link>https://gagor.pro/book/2005/wladca-pierscieni-powrot-krola/</link>
      <pubDate>Fri, 11 Mar 2005 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2005/wladca-pierscieni-powrot-krola/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Władca Pierścieni by J. R. R. Tolkien&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Władca Pierścieni&lt;/q&gt;&lt;p&gt;Powrót króla. Tom 3&lt;/p&gt;&lt;p&gt;Author: J. R. R. Tolkien&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;</description>
    </item>
    <item>
      <title>The Hobbit</title>
      <link>https://gagor.pro/book/2005/the-hobbit/</link>
      <pubDate>Fri, 11 Feb 2005 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2005/the-hobbit/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book The Hobbit by J.R.R. Tolkien&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;The Hobbit&lt;/q&gt;&lt;p&gt;There and Back Again&lt;/p&gt;&lt;p&gt;Author: J.R.R. Tolkien&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve read &amp;ldquo;Hobbit&amp;rdquo; for the first time back in high school, and then again years later with my kids. It was one of the first fantasy books I ever picked up-not exactly my favourite, but definitely a solid introduction to the genre.&lt;/p&gt;
&lt;p&gt;There were things that puzzled me at the time, like the difference between dwarfs and gnomes, or why &amp;ldquo;elfs&amp;rdquo; are called &amp;ldquo;elves&amp;rdquo; here. Luckily, I had friends who introduced me to the arcana of &amp;ldquo;Hobbit&amp;rdquo;,&amp;ldquo;The Lord of the Rings&amp;rdquo;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; and even the world of Forgotten Realms&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;. Thanks to them, I started to see the bigger picture and the connections between these universes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reporter</title>
      <link>https://gagor.pro/book/2002/reporter/</link>
      <pubDate>Sat, 27 Jul 2002 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2002/reporter/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Reporter by A. J. Quinnell&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Reporter&lt;/q&gt;&lt;p&gt;Author: A. J. Quinnell&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;It&amp;rsquo;s one of the first books I remember. First of this kind and was probably the first that I&amp;rsquo;ve read just for the fun of reading. I remember reading few more books about spies, but it&amp;rsquo;s this one that started it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Cuckoo&#39;s Egg</title>
      <link>https://gagor.pro/book/2000/the-cuckoos-egg/</link>
      <pubDate>Wed, 09 Feb 2000 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/book/2000/the-cuckoos-egg/</guid>
      <description>&lt;figure style=&#34;display:flex;&#34;&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;images/book-cover.webp&#34;
         alt=&#34;Cover of book Kukułcze jajo by Clifford Stoll&#34; width=&#34;220&#34;/&gt; &lt;figcaption style=&#34;margin-left: 1em; float: right;&#34;&gt;
            &lt;q&gt;Kukułcze jajo&lt;/q&gt;&lt;p&gt;Ekscytujące łowy na nieuchwytnego hackera&lt;/p&gt;&lt;p&gt;Author: Clifford Stoll&lt;/p&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;I&amp;rsquo;ve read it in Polish, so I kept polish picture.&lt;/p&gt;
&lt;p&gt;This book had a huge impact on how I perceive IT security. It was the way that shaped my fascination by Unix systems and probably impacted some of my decisions about my future &amp;#x1f609;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a fascinating lecture on the battle between &amp;ldquo;sys admin&amp;rdquo; (&lt;a href=&#34;https://en.wikipedia.org/wiki/Clifford_Stoll&#34;  target=&#34;_blank&#34;&gt;actually an astronomer&lt;span style=&#34;white-space: nowrap;&#34;&gt;&amp;thinsp;&lt;svg
            style=&#34;height: 0.7em; width: 0.7em;&#34; focusable=&#34;false&#34; data-prefix=&#34;fas&#34; data-icon=&#34;external-link-alt&#34;
            class=&#34;svg-inline--fa fa-external-link-alt fa-w-16&#34; role=&#34;img&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;
            viewBox=&#34;0 0 512 512&#34;&gt;
            &lt;title&gt;external link&lt;/title&gt;
            &lt;path fill=&#34;currentColor&#34;
                d=&#34;M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z&#34;&gt;
            &lt;/path&gt;
        &lt;/svg&gt;&lt;/span&gt; &lt;/a&gt;
 and kinda random guy, but with a skill) and a hacker. Cold war times. Quite &amp;ldquo;analog&amp;rdquo; IT systems, printers as terminals, etc. A time machine to the beginnings of networks and Internet. It was at a time when there was no encryption on services. Computers were powerful machines taking whole rooms and you could work with them only via terminal. A different world, but that&amp;rsquo;s how it all started.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My bookshelf</title>
      <link>https://gagor.pro/bookshelf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://gagor.pro/bookshelf/</guid>
      <description></description>
    </item>
  </channel>
</rss>
