rultor.com logo This build log was produced by rultor.com for yegor256/blog#489
+ set -e
+ set -o pipefail
++ dirname ./run.sh
+ cd .
+ echo 25082
+ echo '1.69.1 839260fab'
1.69.1 839260fab
+ date
Thu Jul  1 09:28:44 CEST 2021
+ uptime
 09:28:44 up 276 days, 17:34,  0 users,  load average: 4.01, 4.59, 4.82
+ head=git@github.com:yegor256/blog.git
+ image=yegor256/blog-image
+ head_branch=master
+ author=yegor256
+ vars=('--env=head=git@github.com:yegor256/blog.git' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/blog.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''sudo apt-get update'\'' '\'';'\'' '\''sudo apt-get install -y woff2'\'' '\'';'\'' '\''export GEM_HOME=~/.ruby'\'' '\'';'\'' '\''export GEM_PATH=$GEM_HOME:$GEM_PATH'\'' '\'';'\'' '\''bundle install'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 bundle exec rake'\'' '\'';'\'' '\''mkdir ~/.ssh'\'' '\'';'\'' '\''mv ../id_rsa ../id_rsa.pub ~/.ssh'\'' '\'';'\'' '\''chmod -R 600 ~/.ssh/*'\'' '\'';'\'' '\''echo -e "Host *\n  StrictHostKeyChecking no\n  UserKnownHostsFile=/dev/null" > ~/.ssh/config'\'' '\'';'\'' '\''git config --global user.email "rultor@yegor256.com"'\'' '\'';'\'' '\''git config --global user.name "Rultor"'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 jgd'\'' '\'';'\'' )' '--env=head_branch=master' '--env=author=yegor256')
+ scripts=('export '\''head=git@github.com:yegor256/blog.git'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=yegor256'\''' ';' 'sudo apt-get update' ';' 'sudo apt-get install -y woff2' ';' 'export GEM_HOME=~/.ruby' ';' 'export GEM_PATH=$GEM_HOME:$GEM_PATH' ';' 'bundle install' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 bundle exec rake' ';' 'mkdir ~/.ssh' ';' 'mv ../id_rsa ../id_rsa.pub ~/.ssh' ';' 'chmod -R 600 ~/.ssh/*' ';' 'echo -e "Host *\n  StrictHostKeyChecking no\n  UserKnownHostsFile=/dev/null" > ~/.ssh/config' ';' 'git config --global user.email "rultor@yegor256.com"' ';' 'git config --global user.name "Rultor"' ';' 'LC_ALL=en_US.UTF-8 jgd' ';')
+ directory=
+ container=yegor256_blog_489
+ as_root=false
+ mkdir -p /home/rultor/.ssh
+ echo -e 'Host github.com\n\tStrictHostKeyChecking no\n'
+ chmod 600 /home/rultor/.ssh/config
+ git clone git@github.com:yegor256/blog.git repo
Cloning into 'repo'...
+ cd repo
+ git config user.email me@rultor.com
+ git config user.name rultor
+ '[' -z 'export '\''head=git@github.com:yegor256/blog.git'\''' ']'
+ cd ..
+ cat
+ '[' false = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:yegor256/blog.git'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=yegor256'\''' ';' 'sudo apt-get update' ';' 'sudo apt-get install -y woff2' ';' 'export GEM_HOME=~/.ruby' ';' 'export GEM_PATH=$GEM_HOME:$GEM_PATH' ';' 'bundle install' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 bundle exec rake' ';' 'mkdir ~/.ssh' ';' 'mv ../id_rsa ../id_rsa.pub ~/.ssh' ';' 'chmod -R 600 ~/.ssh/*' ';' 'echo -e "Host *\n  StrictHostKeyChecking no\n  UserKnownHostsFile=/dev/null" > ~/.ssh/config' ';' 'git config --global user.email "rultor@yegor256.com"' ';' 'git config --global user.name "Rultor"' ';' 'LC_ALL=en_US.UTF-8 jgd' ';'
+ rm -rf .gpg
+ cd repo
+ docker_when_possible
+ true
++ uptime
++ sed 's/ /\n/g'
++ tail -n 1
+ load=4.89
++ echo 4.89 '>' 30
++ bc
+ '[' 0 -eq 1 ']'
+ echo 'load average is 4.89, low enough to run a new Docker container'
load average is 4.89, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=yegor256/blog-image
+ docker pull yegor256/blog-image
Using default tag: latest
latest: Pulling from yegor256/blog-image
5bed26d33875: Pulling fs layer
f11b29a9c730: Pulling fs layer
930bda195c84: Pulling fs layer
78bf9a5ad49e: Pulling fs layer
bd92b3300a5c: Pulling fs layer
a4e411970f61: Pulling fs layer
cd3950cd7df2: Pulling fs layer
8f530b1cfb92: Pulling fs layer
812074e49c42: Pulling fs layer
3a5f1edc3977: Pulling fs layer
bee1a1b6364d: Pulling fs layer
f6bfd9b2cfd9: Pulling fs layer
f150775b93f0: Pulling fs layer
2fa35ef3e60f: Pulling fs layer
7697dc9f50cb: Pulling fs layer
baab9a0785c0: Pulling fs layer
63f489a107a7: Pulling fs layer
8a395104028e: Pulling fs layer
49f7433ed3e1: Pulling fs layer
27b75b92e685: Pulling fs layer
49573aff720b: Pulling fs layer
6c7a6acc15a7: Pulling fs layer
2fcd87bfa5db: Pulling fs layer
0549ec9ec8ed: Pulling fs layer
70bdcfc588ca: Pulling fs layer
3b367e0aa6a5: Pulling fs layer
310891b65deb: Pulling fs layer
e952cc8d0d06: Pulling fs layer
e1f8d03dec7c: Pulling fs layer
ea7a80f93fc1: Pulling fs layer
651b29c05a00: Pulling fs layer
626d0c5ac31a: Pulling fs layer
d754c2ad8be4: Pulling fs layer
fb1dd424c12b: Pulling fs layer
b2fd42dd5192: Pulling fs layer
e979ac5cce31: Pulling fs layer
e44ef4a65df1: Pulling fs layer
c2402650a657: Pulling fs layer
e16aacca3a83: Pulling fs layer
750d215cc49e: Pulling fs layer
95e961502b9e: Pulling fs layer
0c5399d68307: Pulling fs layer
1964038e9550: Pulling fs layer
038d715c9222: Pulling fs layer
b461db88856f: Pulling fs layer
78bf9a5ad49e: Waiting
bd92b3300a5c: Waiting
a4e411970f61: Waiting
cd3950cd7df2: Waiting
8f530b1cfb92: Waiting
812074e49c42: Waiting
3a5f1edc3977: Waiting
bee1a1b6364d: Waiting
ea7a80f93fc1: Waiting
f6bfd9b2cfd9: Waiting
e16aacca3a83: Waiting
f150775b93f0: Waiting
750d215cc49e: Waiting
2fa35ef3e60f: Waiting
651b29c05a00: Waiting
7697dc9f50cb: Waiting
626d0c5ac31a: Waiting
95e961502b9e: Waiting
d754c2ad8be4: Waiting
fb1dd424c12b: Waiting
0c5399d68307: Waiting
b2fd42dd5192: Waiting
1964038e9550: Waiting
baab9a0785c0: Waiting
038d715c9222: Waiting
e979ac5cce31: Waiting
b461db88856f: Waiting
63f489a107a7: Waiting
e44ef4a65df1: Waiting
c2402650a657: Waiting
8a395104028e: Waiting
70bdcfc588ca: Waiting
49f7433ed3e1: Waiting
6c7a6acc15a7: Waiting
27b75b92e685: Waiting
2fcd87bfa5db: Waiting
0549ec9ec8ed: Waiting
3b367e0aa6a5: Waiting
49573aff720b: Waiting
310891b65deb: Waiting
e952cc8d0d06: Waiting
e1f8d03dec7c: Waiting
930bda195c84: Verifying Checksum
930bda195c84: Download complete
f11b29a9c730: Verifying Checksum
f11b29a9c730: Download complete
78bf9a5ad49e: Verifying Checksum
78bf9a5ad49e: Download complete
bd92b3300a5c: Download complete
a4e411970f61: Verifying Checksum
a4e411970f61: Download complete
5bed26d33875: Download complete
5bed26d33875: Pull complete
cd3950cd7df2: Verifying Checksum
cd3950cd7df2: Download complete
f11b29a9c730: Pull complete
812074e49c42: Verifying Checksum
812074e49c42: Download complete
930bda195c84: Pull complete
78bf9a5ad49e: Pull complete
bd92b3300a5c: Pull complete
a4e411970f61: Pull complete
cd3950cd7df2: Pull complete
bee1a1b6364d: Download complete
3a5f1edc3977: Verifying Checksum
3a5f1edc3977: Download complete
f6bfd9b2cfd9: Verifying Checksum
f6bfd9b2cfd9: Download complete
8f530b1cfb92: Verifying Checksum
8f530b1cfb92: Download complete
2fa35ef3e60f: Verifying Checksum
2fa35ef3e60f: Download complete
7697dc9f50cb: Verifying Checksum
7697dc9f50cb: Download complete
f150775b93f0: Verifying Checksum
f150775b93f0: Download complete
8a395104028e: Verifying Checksum
8a395104028e: Download complete
8f530b1cfb92: Pull complete
812074e49c42: Pull complete
3a5f1edc3977: Pull complete
bee1a1b6364d: Pull complete
49f7433ed3e1: Verifying Checksum
49f7433ed3e1: Download complete
f6bfd9b2cfd9: Pull complete
27b75b92e685: Verifying Checksum
27b75b92e685: Download complete
f150775b93f0: Pull complete
2fa35ef3e60f: Pull complete
7697dc9f50cb: Pull complete
49573aff720b: Verifying Checksum
49573aff720b: Download complete
6c7a6acc15a7: Verifying Checksum
6c7a6acc15a7: Download complete
2fcd87bfa5db: Verifying Checksum
2fcd87bfa5db: Download complete
0549ec9ec8ed: Verifying Checksum
0549ec9ec8ed: Download complete
70bdcfc588ca: Verifying Checksum
70bdcfc588ca: Download complete
63f489a107a7: Verifying Checksum
63f489a107a7: Download complete
310891b65deb: Verifying Checksum
310891b65deb: Download complete
e952cc8d0d06: Verifying Checksum
e952cc8d0d06: Download complete
baab9a0785c0: Verifying Checksum
baab9a0785c0: Download complete
e1f8d03dec7c: Verifying Checksum
e1f8d03dec7c: Download complete
651b29c05a00: Verifying Checksum
651b29c05a00: Download complete
ea7a80f93fc1: Verifying Checksum
ea7a80f93fc1: Download complete
d754c2ad8be4: Verifying Checksum
d754c2ad8be4: Download complete
626d0c5ac31a: Verifying Checksum
626d0c5ac31a: Download complete
3b367e0aa6a5: Verifying Checksum
3b367e0aa6a5: Download complete
fb1dd424c12b: Verifying Checksum
fb1dd424c12b: Download complete
baab9a0785c0: Pull complete
e979ac5cce31: Verifying Checksum
e979ac5cce31: Download complete
c2402650a657: Verifying Checksum
c2402650a657: Download complete
b2fd42dd5192: Verifying Checksum
b2fd42dd5192: Download complete
63f489a107a7: Pull complete
8a395104028e: Pull complete
e44ef4a65df1: Verifying Checksum
e44ef4a65df1: Download complete
750d215cc49e: Download complete
e16aacca3a83: Verifying Checksum
e16aacca3a83: Download complete
95e961502b9e: Verifying Checksum
95e961502b9e: Download complete
0c5399d68307: Verifying Checksum
0c5399d68307: Download complete
1964038e9550: Verifying Checksum
1964038e9550: Download complete
038d715c9222: Verifying Checksum
038d715c9222: Download complete
49f7433ed3e1: Pull complete
27b75b92e685: Pull complete
b461db88856f: Verifying Checksum
b461db88856f: Download complete
49573aff720b: Pull complete
6c7a6acc15a7: Pull complete
2fcd87bfa5db: Pull complete
0549ec9ec8ed: Pull complete
70bdcfc588ca: Pull complete
3b367e0aa6a5: Pull complete
310891b65deb: Pull complete
e952cc8d0d06: Pull complete
e1f8d03dec7c: Pull complete
ea7a80f93fc1: Pull complete
651b29c05a00: Pull complete
626d0c5ac31a: Pull complete
d754c2ad8be4: Pull complete
fb1dd424c12b: Pull complete
b2fd42dd5192: Pull complete
e979ac5cce31: Pull complete
e44ef4a65df1: Pull complete
c2402650a657: Pull complete
e16aacca3a83: Pull complete
750d215cc49e: Pull complete
95e961502b9e: Pull complete
0c5399d68307: Pull complete
1964038e9550: Pull complete
038d715c9222: Pull complete
b461db88856f: Pull complete
Digest: sha256:c0913f7feebc3fa3d18bda40e2874f92ef0799dbe95febefcf2e38209bf1d8c5
Status: Downloaded newer image for yegor256/blog-image:latest
+ docker ps --filter=status=exited
+ grep --quiet '\syegor256_blog_489\s*$'
+ ls -al .
total 728
drwx--x--x  3 rultor rultor   4096 Jul  1 09:30 .
drwxrwxrwt 11 root   root   684032 Jul  1 09:30 ..
-rw-rw-r--  1 rultor rultor    444 Jul  1 09:32 end.sh
-rwxrwxr-x  1 rultor rultor    363 Jul  1 09:30 entry.sh
-rw-rw-r--  1 rultor rultor   1679 Jul  1 09:28 id_rsa
-rw-rw-r--  1 rultor rultor    396 Jul  1 09:28 id_rsa.pub
-rw-rw-r--  1 rultor rultor      6 Jul  1 09:28 pid
drwxrwxr-x 26 rultor rultor   4096 Jul  1 09:30 repo
-rwxrwxr-x  1 rultor rultor   4980 Jul  1 09:28 run.sh
-rw-rw-r--  1 rultor rultor    722 Jul  1 09:30 script.sh
-rw-rw-r--  1 rultor rultor     57 Jul  1 09:28 secrets.yml
-rw-rw-r--  1 rultor rultor  10323 Jul  1 09:32 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-UDqT:/main --env=head=git@github.com:yegor256/blog.git '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/blog.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''sudo apt-get update'\'' '\'';'\'' '\''sudo apt-get install -y woff2'\'' '\'';'\'' '\''export GEM_HOME=~/.ruby'\'' '\'';'\'' '\''export GEM_PATH=$GEM_HOME:$GEM_PATH'\'' '\'';'\'' '\''bundle install'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 bundle exec rake'\'' '\'';'\'' '\''mkdir ~/.ssh'\'' '\'';'\'' '\''mv ../id_rsa ../id_rsa.pub ~/.ssh'\'' '\'';'\'' '\''chmod -R 600 ~/.ssh/*'\'' '\'';'\'' '\''echo -e "Host *\n  StrictHostKeyChecking no\n  UserKnownHostsFile=/dev/null" > ~/.ssh/config'\'' '\'';'\'' '\''git config --global user.email "rultor@yegor256.com"'\'' '\'';'\'' '\''git config --global user.name "Rultor"'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 jgd'\'' '\'';'\'' )' --env=head_branch=master --env=author=yegor256 --hostname=docker --privileged --memory=6g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-UDqT/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_blog_489 yegor256/blog-image /main/entry.sh
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
+ usermod -s /bin/bash r
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bashrc /root/.cache /root/.composer /root/.config /root/.gem /root/.gnupg /root/.m2 /root/.npm /root/.profile /root/texmf /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./id_rsa ./id_rsa.pub ./pid ./repo ./run.sh ./script.sh ./secrets.yml ./stdout /home/r
+ rm -rf repo
+ chown -R r:r /home/r
+ chmod a+x /home/r/script.sh
+ su --login r --command /home/r/script.sh
mesg: cannot open /dev/pts/0: Permission denied
+ set -e
+ set -o pipefail
+ shopt -s expand_aliases
+ alias 'sudo=sudo -i'
+ export HOME=/home/r
+ HOME=/home/r
+ cd /home/r/repo
+ export head=git@github.com:yegor256/blog.git
+ head=git@github.com:yegor256/blog.git
+ export head_branch=master
+ head_branch=master
+ export author=yegor256
+ author=yegor256
+ sudo -i apt-get update
Get:1ohttp://ppa.launchpad.net/deadsnakes/ppa/ubuntu bionic InRelease [15.9 kB]
Hit:2ahttp://archive.ubuntu.com/ubuntuobioniciInRelease.com (91.189.91.39)] [1
Get:3ohttp://archive.ubuntu.com/ubuntu(bionic-updates InReleasea[88.7.kB]B/15.9
Get:4 http://archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:5 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
Get:6 http://ppa.launchpad.net/git-core/ppa/ubuntu bionic InRelease [20.8 kB]
Get:7 http://ppa.launchpad.net/ondrej/php/ubuntu bionic InRelease [20.8 kB]
Get:8 https://deb.nodesource.com/node_10.x bionic InRelease [4,584 B]
Get:9 http://archive.ubuntu.com/ubuntuebionic-updates/main1amd64BPackages [2,656 kB]
Get:10Ihttp://ppa.launchpad.net/deadsnakes/ppa/ubuntu6bionic/main9amd64ePackages [40.9 kB]
Get:11Phttp://archive.ubuntu.com/ubuntugbionic-updates/multiverse8amd64rPackages [33.5 kB]
Get:12Phttp://archive.ubuntu.com/ubuntugbionic-updates/restricted amd64kPackages [506 kB]
Get:13Phttp://ppa.launchpad.net/git-core/ppa/ubuntu]bionic/maineamd64ePackagesB[3,163 B]
Get:14Phttp://archive.ubuntu.com/ubuntugbionic-updates/universeoamd64dPackagesI[2,188 kB]
Get:15Phttps://deb.nodesource.com/node_10.x bionic/main4amd64aPackages4[767,B]8
Get:16Phttp://ppa.launchpad.net/ondrej/php/ubuntu8bionic/main5amd64lPackages7[157 kB]
Get:174http://security.ubuntu.com/ubuntugbionic-security/universesamd64kPackages [1,418 kB]
Get:187http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages [2,221 kB]
Get:19ohttp://security.ubuntu.com/ubuntu bionic-security/multiverse amd64 Packages [24.7 kB]
Get:208http://security.ubuntu.com/ubuntu bionic-security/restricted amd64 Packages [473 kB]
Fetchedo10.0gMBeins2sr(4,426kkB/s)]kages 3224kB/4733kBB68%]]
Reading package lists... Done
+ sudo -i apt-get install -y woff2
Reading package lists... Done
Building dependency tree... 50%
Reading state information... Done
woff2 is already the newest version (1.0.2-1build0.1).
0 upgraded, 0 newly installed, 0 to remove and 234 not upgraded.
+ export GEM_HOME=/home/r/.ruby
+ GEM_HOME=/home/r/.ruby
+ export GEM_PATH=/home/r/.ruby:/usr/local/rvm/gems/ruby-2.6.0:/usr/local/rvm/gems/ruby-2.6.0@global
+ GEM_PATH=/home/r/.ruby:/usr/local/rvm/gems/ruby-2.6.0:/usr/local/rvm/gems/ruby-2.6.0@global
+ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 12.3.2
32mFetching concurrent-ruby 1.1.90m
32mInstalling concurrent-ruby 1.1.90m
32mFetching i18n 1.8.100m
32mInstalling i18n 1.8.100m
32mFetching minitest 5.14.40m
32mInstalling minitest 5.14.40m
32mFetching thread_safe 0.3.60m
32mInstalling thread_safe 0.3.60m
32mFetching tzinfo 1.2.90m
32mInstalling tzinfo 1.2.90m
32mFetching activesupport 5.2.60m
32mInstalling activesupport 5.2.60m
Using public_suffix 4.0.6
Using addressable 2.7.0
32mFetching ast 2.4.20m
32mInstalling ast 2.4.20m
Using bundler 2.1.4
Using colorator 1.1.0
32mFetching colorize 0.8.10m
32mInstalling colorize 0.8.10m
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
32mFetching ffi 1.15.30m
32mInstalling ffi 1.15.3 with native extensions0m
32mFetching ethon 0.14.00m
32mInstalling ethon 0.14.00m
32mFetching faraday-em_http 1.0.00m
32mInstalling faraday-em_http 1.0.00m
32mFetching faraday-em_synchrony 1.0.00m
32mInstalling faraday-em_synchrony 1.0.00m
32mFetching faraday-excon 1.1.00m
32mInstalling faraday-excon 1.1.00m
32mFetching faraday-net_http 1.0.10m
32mInstalling faraday-net_http 1.0.10m
32mFetching faraday-net_http_persistent 1.1.00m
32mInstalling faraday-net_http_persistent 1.1.00m
32mFetching multipart-post 2.1.10m
32mInstalling multipart-post 2.1.10m
32mFetching ruby2_keywords 0.0.40m
32mInstalling ruby2_keywords 0.0.40m
32mFetching faraday 1.4.30m
32mInstalling faraday 1.4.30m
32mFetching fastimage 2.1.50m
32mInstalling fastimage 2.1.50m
32mFetching json 1.8.60m
32mInstalling json 1.8.6 with native extensions0m
32mFetching rb-fsevent 0.11.00m
32mInstalling rb-fsevent 0.11.00m
Using rb-inotify 0.10.1
32mFetching listen 3.5.10m
32mInstalling listen 3.5.10m
32mFetching thor 0.20.30m
32mInstalling thor 0.20.30m
GemWrappers: Can not wrap missing file: thor
32mFetching fontcustom 2.0.00m
32mInstalling fontcustom 2.0.00m
GemWrappers: Can not wrap missing file: fontcustom
Using forwardable-extended 2.6.0
32mFetching mercenary 0.3.60m
32mInstalling mercenary 0.3.60m
Using mini_portile2 2.4.0
32mFetching nokogiri 1.9.10m
32mInstalling nokogiri 1.9.1 with native extensions0m
32mFetching parallel 1.20.10m
32mInstalling parallel 1.20.10m
32mFetching typhoeus 0.8.00m
32mInstalling typhoeus 0.8.00m
32mFetching yell 2.2.20m
32mInstalling yell 2.2.20m
32mFetching html-proofer 3.7.50m
32mInstalling html-proofer 3.7.50m
GemWrappers: Can not wrap missing file: htmlproofer
32mFetching jaro_winkler 1.5.40m
32mInstalling jaro_winkler 1.5.4 with native extensions0m
Using sassc 2.4.0
Using jekyll-sass-converter 2.1.0
Using jekyll-watch 2.2.1
32mFetching kramdown 2.1.00m
32mInstalling kramdown 2.1.00m
Using kramdown-parser-gfm 1.1.0
32mFetching liquid 4.0.10m
32mInstalling liquid 4.0.10m
Using pathutil 0.16.2
32mFetching rouge 3.26.00m
32mInstalling rouge 3.26.00m
Using safe_yaml 1.0.5
32mFetching unicode-display_width 1.4.10m
32mInstalling unicode-display_width 1.4.10m
Using terminal-table 1.8.0
32mFetching jekyll 4.0.10m
32mInstalling jekyll 4.0.10m
32mFetching jekyll-bits 0.150m
32mInstalling jekyll-bits 0.150m
32mFetching jekyll-feed 0.15.10m
32mInstalling jekyll-feed 0.15.10m
32mFetching sawyer 0.8.20m
32mInstalling sawyer 0.8.20m
32mFetching octokit 4.21.00m
32mInstalling octokit 4.21.00m
32mFetching jekyll-gist 1.5.00m
32mInstalling jekyll-gist 1.5.00m
32mFetching jekyll-paginate 1.1.00m
32mInstalling jekyll-paginate 1.1.00m
32mFetching jekyll-plantuml 1.3.40m
32mInstalling jekyll-plantuml 1.3.40m
32mFetching jekyll-redirect-from 0.16.00m
32mInstalling jekyll-redirect-from 0.16.00m
32mFetching sass-listen 4.0.00m
32mInstalling sass-listen 4.0.00m
32mFetching sass 3.7.20m
32mInstalling sass 3.7.20m
GemWrappers: Can not wrap missing file: sass
GemWrappers: Can not wrap missing file: sass-convert
GemWrappers: Can not wrap missing file: scss
32mFetching jekyll-sass 1.1.00m
32mInstalling jekyll-sass 1.1.00m
32mFetching jekyll-sitemap 1.4.00m
32mInstalling jekyll-sitemap 1.4.00m
32mFetching jslint 1.2.00m
32mInstalling jslint 1.2.00m
GemWrappers: Can not wrap missing file: jslint
32mFetching mini_mime 1.1.00m
32mInstalling mini_mime 1.1.00m
32mFetching mail 2.7.10m
32mInstalling mail 2.7.10m
32mFetching multi_json 1.15.00m
32mInstalling multi_json 1.15.00m
32mFetching nuggets 1.6.00m
32mInstalling nuggets 1.6.00m
32mFetching parser 3.0.1.10m
32mInstalling parser 3.0.1.10m
GemWrappers: Can not wrap missing file: ruby-parse
GemWrappers: Can not wrap missing file: ruby-rewrite
32mFetching powerpack 0.1.30m
32mInstalling powerpack 0.1.30m
32mFetching pygments.rb 1.2.10m
32mInstalling pygments.rb 1.2.10m
32mFetching rainbow 2.2.20m
32mInstalling rainbow 2.2.2 with native extensions0m
32mFetching redcarpet 3.4.00m
32mInstalling redcarpet 3.4.0 with native extensions0m
GemWrappers: Can not wrap missing file: redcarpet
32mFetching ruby-progressbar 1.11.00m
32mInstalling ruby-progressbar 1.11.00m
32mFetching rubocop 0.62.00m
32mInstalling rubocop 0.62.00m
GemWrappers: Can not wrap missing file: rubocop
32mFetching rubocop-rspec 1.30.10m
32mInstalling rubocop-rspec 1.30.10m
32mFetching scss_lint 0.57.10m
32mInstalling scss_lint 0.57.10m
GemWrappers: Can not wrap missing file: scss-lint
32mFetching trollop 2.9.90m
32mInstalling trollop 2.9.90m
32mFetching uuidtools 2.1.50m
32mInstalling uuidtools 2.1.50m
32mFetching w3c_validators 1.3.40m
32mInstalling w3c_validators 1.3.40m
32mBundle complete! 30 Gemfile dependencies, 83 gems now installed.0m
32mUse `bundle info [gemname]` to see where a bundled gem is installed.0m
32mPost-install message from fontcustom:0m
>> Thanks for installing Font Custom! Please ensure that fontforge is installed before compiling any icons. Visit <http://fontcustom.com> for instructions.
32mPost-install message from jekyll:0m
-------------------------------------------------------------------------------------
Jekyll 4.0 comes with some major changes, notably:

  * Our `link` tag now comes with the `relative_url` filter incorporated into it.
    You should no longer prepend `{{ site.baseurl }}` to `{% link foo.md %}`
    For further details: https://github.com/jekyll/jekyll/pull/6727

  * Our `post_url` tag now comes with the `relative_url` filter incorporated into it.
    You shouldn't prepend `{{ site.baseurl }}` to `{% post_url 2019-03-27-hello %}`
    For further details: https://github.com/jekyll/jekyll/pull/7589

  * Support for deprecated configuration options has been removed. We will no longer
    output a warning and gracefully assign their values to the newer counterparts
    internally.
-------------------------------------------------------------------------------------
32mPost-install message from sass:0m

Ruby Sass is deprecated and will be unmaintained as of 26 March 2019.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  http://sass.logdown.com/posts/7081811

32mPost-install message from nuggets:0m

nuggets-1.6.0 [2018-07-12]:

* Added <tt>JSON.*_{multi,canonical}</tt>.

32mPost-install message from trollop:0m
!    The 'trollop' gem has been deprecated and has been replaced by 'optimist'.
!    See: https://rubygems.org/gems/optimist
!    And: https://github.com/ManageIQ/optimist
+ export JEKYLL_ENV=production
+ JEKYLL_ENV=production
+ LC_ALL=en_US.UTF-8
+ bundle exec rake
Building Jekyll site...
Configuration file: /home/r/repo/_config.yml
            Source: /home/r/repo
       Destination: /home/r/repo/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
WARN: No front image in /2010/03/04/pdd.html
WARN: No front image in /2013/12/29/proto.html
WARN: No front image in /2014/04/06/introduction.html
WARN: No front image in /2014/04/06/movies-for-thanasis.html
WARN: No front image in /2014/04/06/phandom.html
WARN: No front image in /2014/04/09/xembly-intro.html
WARN: No front image in /2014/04/11/jcabi-http-intro.html
WARN: No front image in /2014/04/14/jcabi-dynamo-java-api-of-aws-dynamodb.html
WARN: No front image in /2014/04/15/definition-of-done.html
WARN: No front image in /2014/04/15/github-guidelines.html
WARN: No front image in /2014/04/18/jcabi-http-server-mocking.html
WARN: No front image in /2014/04/20/how-hourly-rate-is-calculated.html
WARN: No front image in /2014/04/21/s3-http-basic-auth.html
WARN: No front image in /2014/04/24/java-xml-parsing-and-traversing.html
WARN: No front image in /2014/04/26/incremental-requirements-with-requs.html
WARN: No front image in /2014/04/27/typical-mistakes-in-java-code.html
WARN: No front image in /2014/04/28/xml-xpath-hamcrest-matchers.html
WARN: No front image in /2014/04/29/w3c-java-validators.html
WARN: No front image in /2014/05/01/dynamodb-local-maven-plugin.html
WARN: No front image in /2014/05/05/oop-alternative-to-utility-classes.html
WARN: No front image in /2014/05/13/why-null-is-bad.html
WARN: No front image in /2014/05/14/object-oriented-github-java-sdk.html
WARN: No front image in /2014/05/18/cloud-autoincrement-counters.html
WARN: No front image in /2014/05/21/mysql-maven-plugin.html
WARN: No front image in /2014/05/23/avoid-java-static-logger.html
WARN: No front image in /2014/05/26/amazon-s3-java-oop-adapter.html
WARN: No front image in /2014/06/01/aop-aspectj-java-method-logging.html
WARN: No front image in /2014/06/09/objects-should-be-immutable.html
WARN: No front image in /2014/06/19/avoid-string-concatenation.html
WARN: No front image in /2014/06/20/limit-method-execution-time.html
WARN: No front image in /2014/06/21/casperjs-with-maven.html
WARN: No front image in /2014/06/24/jekyll-github-deploy.html
WARN: No front image in /2014/06/25/xml-and-xslt-in-browser.html
WARN: No front image in /2014/06/26/sass-in-java-webapp.html
WARN: No front image in /2014/06/29/custom-lexer-in-jekyll.html
WARN: No front image in /2014/07/03/how-to-read-manifest-mf.html
WARN: No front image in /2014/07/20/liquibase-in-maven.html
WARN: No front image in /2014/07/21/read-only-master-branch.html
WARN: No front image in /2014/07/24/rultor-automated-merging.html
WARN: No front image in /2014/07/29/docker-in-rultor.html
WARN: No front image in /2014/07/31/travis-and-rultor.html
WARN: No front image in /2014/08/03/cacheable-java-annotation.html
WARN: No front image in /2014/08/15/retry-java-method-on-exception.html
WARN: No front image in /2014/08/18/fluent-jdbc-decorator.html
WARN: No front image in /2014/08/19/how-to-release-to-maven-central.html
WARN: No front image in /2014/08/22/art-of-software-testing.html
WARN: No front image in /2014/08/25/deploy-to-cloudbees.html
WARN: No front image in /2014/08/26/publish-to-rubygems.html
WARN: No front image in /2014/08/29/docker-non-root.html
WARN: No front image in /2014/09/02/java-ssh-client.html
WARN: No front image in /2014/09/10/anti-patterns-in-oop.html
WARN: No front image in /2014/09/13/deploying-to-heroku.html
WARN: No front image in /2014/09/22/remote-programming-interview.html
WARN: No front image in /2014/09/23/built-in-fake-objects.html
WARN: No front image in /2014/09/24/why-monetary-awards-dont-work.html
WARN: No front image in /2014/10/03/di-containers-are-evil.html
WARN: No front image in /2014/10/05/ten-hosted-continuous-integration-services.html
WARN: No front image in /2014/10/06/software-project-lifecycle.html
WARN: No front image in /2014/10/08/continuous-integration-is-dead.html
WARN: No front image in /2014/10/21/incremental-billing.html
WARN: No front image in /2014/10/23/paired-brackets-notation.html
WARN: No front image in /2014/10/26/hacker-vs-programmer-mentality.html
WARN: No front image in /2014/11/03/empty-line-code-smell.html
WARN: No front image in /2014/11/07/how-immutability-helps.html
WARN: No front image in /2014/11/14/hits-of-code.html
WARN: No front image in /2014/11/20/seven-virtues-of-good-object.html
WARN: No front image in /2015/01/10/windows-appveyor-maven.html
WARN: No front image in /2015/01/21/if-then-throw-else.html
WARN: No front image in /2015/02/02/xsl-transformations-in-java.html
WARN: No front image in /2015/02/05/jcabi-parent-maven-pom.html
WARN: No front image in /2015/03/26/jaxb-vs-xembly.html
WARN: No front image in /2015/03/29/rultor-with-appveyor.html
WARN: No front image in /2015/04/13/tacit-css-framework-for-dummies.html
WARN: No front image in /2015/04/22/favorite-software-books.html
WARN: No front image in /2015/04/30/iterating-adapter.html
WARN: No front image in /2015/05/18/cookie-based-authentication.html
WARN: No front image in /2015/06/08/deadly-sins-software-project.html
WARN: No front image in /2015/06/11/wikipedia-bug-definition.html
WARN: No front image in /2015/06/25/xml-data-xsl-views-takes-framework.html
WARN: No front image in /2015/08/18/multiple-return-statements-in-oop.html
WARN: No front image in /2015/09/07/maven-repository-amazon-s3.html
WARN: No front image in /2015/11/03/chatbot-better-than-ui-for-microservice.html
WARN: No front image in /2016/03/15/wring-dispatcher-github-notifications.html
WARN: No front image in /2016/03/30/jare-instant-free-cdn.html
WARN: No front image in /2016/11/18/software-conferences-to-attend.html
WARN: No front image in /2017/06/13/dynamodb-rack-maven.html
WARN: No front image in /2017/06/22/object-oriented-input-output-in-cactoos.html
WARN: No front image in /2017/06/27/my-environment.html
WARN: No front image in /2017/07/25/my-favorite-websites.html
WARN: No front image in /2017/09/05/rehttp-http-repeater.html
WARN: No front image in /2018/10/30/mailanes.html
WARN: No front image in /2018/11/06/ruby-threads.html
WARN: No front image in /2019/02/03/cloudrepo.html
WARN: No front image in /2019/02/05/zache.html
WARN: No front image in /2019/04/17/nutch-from-java.html
WARN: No front image in /2019/06/26/syncem.html
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
File /home/r/repo/uml/d892698103dc5669949527a8754c5f26.svg created (3442 bytes)
YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video 7EytYc7K5JA found: eXtremely Distributed Software Development, at DevTernity
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles)
File /home/r/repo/uml/52d3d016f2264bbf660a23d5bbe84203.svg created (8675 bytes)
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27)
YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles)
YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video EDKbYVEInMU found: Built-in Fake Objects
YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video MNxG1xcA2uA found: How to Inject Less?
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video GS45LzE3LPQ found: How Much Do You Cost?
YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles)
YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern
YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video oiNI2jF46h0 found: Make Customers Trust You
YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project
YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles)
YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5)
YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have
YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project
YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project
YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48)
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making
YouTube video ODxm7w2DE-g found: #NoSalaries
File /home/r/repo/uml/19b92d0465e2e819ffcf88cf46c6e333.svg created (3984 bytes)
YouTube video QMcDa2eyRBY found: Need Robust Software? Make It Fragile
YouTube video nCGBgI1MNwE found: Need It Robust? Make It Fragile!
YouTube video wd-SA1HVmLg found: How Do You Know When Your Product is Ready to be Shipped?
YouTube video ZVn7ufg-tk0 found: Micromanagement (in Russian with English subtitles)
YouTube video 0Jte_LGR5Zk found: M32: Micromanagement happens when tasks are big and motivation is not explicit
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video 9j5pq71BS5U found: Software Outsourcing, 10 Years Ahead (in Russian with English subtitles)
YouTube video mHCwlZSlZeU found: Chat Bots are the new UI
File /home/r/repo/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg created (3469 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg created (4627 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code
YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
File /home/r/repo/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg created (4512 bytes)
File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (5570 bytes)
YouTube video _Q0cNykXB04 found: Printers Instead of Getters in OOP (webinar #18)
YouTube video g1ctRcW214w found: Java Annotations Are a Big Mistake (webinar #14)
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video cv23Z6xpwDw found: Java Annotations Are a Bad Idea
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video Xk9tIqwca3k found: Smart Classes and Functionality-Poor Interfaces (webinar #16)
YouTube video zaKTNK8g2-M found: Who Is a Project Manager? (webinar #19)
YouTube video sZoJ3gO4PSo found: Who Manages Who? (in Russian with English subtitles)
YouTube video cGcCcxx4xrg found: Java vs OOP (JavaDay Kyiv)
File /home/r/repo/uml/653125b6c32d12b7325dba52054c09ca.svg created (3536 bytes)
File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (3481 bytes)
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
YouTube video DjrA7_Uymok found: Inheritance vs. Subtyping (webinar #24)
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video Nm274dGikFc found: Naked Data in OOP (webinar #22)
File /home/r/repo/uml/45d05ab3bd9a93ad88ec209352b62f60.svg created (3256 bytes)
YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more
YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31)
YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles)
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests
YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests
YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs
YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good!
YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52)
YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28)
YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30)
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video uhDmHkMAYnM found: Micro-management vs. micro-tasking (webinar #25)
YouTube video tHeXxLdGqqI found: M19: Want to pay-by-result? You have to do microtasking first, otherwise nothing will work.
YouTube video 1rmZN3r5SWg found: M27: Microtasking enables more accurate and precise estimates of a software project's future
YouTube video F3bjFXFRsI8 found: M20: Reporting bugs and deciding whether they should be fixed are two separate activities!
YouTube video 55mwAbuDrV8 found: Quality vs. Quantity (in Russian)
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video GozQCUH2D0I found: M22: Both full-time hiring and outsourcing will lead your project to failure, Zerocracy won't.
YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
YouTube video vXUwE3FGfpg found: #NoAltruism
YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill
YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35)
YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36)
YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out.
YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose
YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37)
YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea!
YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video ezE0hRH9BnQ found: M54: Make sure you control your programmers and do it explicitly and openly
YouTube video fVMml2vpP-Y found: M13: A message without a context is unprofessional and very annoying for the listener; don't do it!
YouTube video 2oAW9LmYJI4 found: M8: Since most tech editors have no idea what they are doing, ignore them
YouTube video gMJNz9AWbQE found: M1: Your enthusiasm may only harm the project if you can't deliver it incrementally
YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making
YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak
YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way
YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42)
YouTube video YXqHaZJD9R8 found: Yegor Bugayenko
YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project
YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong
YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete
YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49)
YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source)
File /home/r/repo/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg created (13795 bytes)
File /home/r/repo/uml/930f06f36724929287c1ee82fd95c77b.svg created (8633 bytes)
YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51)
File /home/r/repo/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg created (18168 bytes)
YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills
YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50)
YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics
YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative
360 AMP pages generated in 36.43s

places.txt generated
tags.txt generated

stats.svg generated
+ unset BUNDLE_GEMFILE
+ cd /tmp
++ readlink --canonicalize-existing /home/r/repo/_glyphs/compile.sh
+ x=/home/r/repo/_glyphs/compile.sh
++ dirname /home/r/repo/_glyphs/compile.sh
+ dir=/home/r/repo/_glyphs
+ target=/home/r/repo/_temp/icons
+ mkdir -p /home/r/repo/_temp/icons
+ fontcustom compile /home/r/repo/_glyphs --output=/home/r/repo/_temp/icons --font-name=icons --templates=css --no-hash --force --autowidth
+ cat /home/r/repo/_temp/icons/icons.css
++ date +%s
+ sed -E 's|"./icons([^"]+)"|"https://www.yegor256.com/css/icons\1?1625124909"|g'
      create  .fontcustom-manifest.json
      status  Forcing compile.
      create  /home/r/repo/_temp/icons/icons.ttf
              /home/r/repo/_temp/icons/icons.svg
              /home/r/repo/_temp/icons/icons.woff
              /home/r/repo/_temp/icons/icons.eot
              /home/r/repo/_temp/icons/icons.woff2
      create  /home/r/repo/_temp/icons/icons.css
       Jekyll Feed: Generating feed for posts
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
......YouTube video qRZYJGYdrwk found: XDSD: management without meetings
.Configuration file: /home/r/repo/_config.yml
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
.YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
File /home/r/repo/uml/d892698103dc5669949527a8754c5f26.svg already exists (3442 bytes)
.YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
.YouTube video qRZYJGYdrwk found: XDSD: management without meetings
..YouTube video qRZYJGYdrwk found: XDSD: management without meetings
..YouTube video 7EytYc7K5JA found: eXtremely Distributed Software Development, at DevTernity
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team
..........YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
.YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
......YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles)
File /home/r/repo/uml/52d3d016f2264bbf660a23d5bbe84203.svg already exists (8675 bytes)
.YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
..........YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
.YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
.......YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27)
........YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release
..YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles)
..YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video EDKbYVEInMU found: Built-in Fake Objects
.YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
.YouTube video MNxG1xcA2uA found: How to Inject Less?
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
...YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video LB_YLWhGrco found: Meetings-free Programming
.YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
....YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
.YouTube video GS45LzE3LPQ found: How Much Do You Cost?
YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers?
..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
.YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate
.YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
.YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
.YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles)
YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern
YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern
..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
.YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
.YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video oiNI2jF46h0 found: Make Customers Trust You
YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project
YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager
.YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
.YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client?
.YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers
YouTube video pt9uHp35fwM found: Meetings Or Discipline
...YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
.......YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
.YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
..YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
.YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles)
.YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5)
..YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
....YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017
.....YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
..YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
.YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
..YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have
.YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project
YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project
.....YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
..YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48)
..YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making
..YouTube video ODxm7w2DE-g found: #NoSalaries
..File /home/r/repo/uml/19b92d0465e2e819ffcf88cf46c6e333.svg already exists (3984 bytes)
..YouTube video QMcDa2eyRBY found: Need Robust Software? Make It Fragile
YouTube video nCGBgI1MNwE found: Need It Robust? Make It Fragile!
...YouTube video wd-SA1HVmLg found: How Do You Know When Your Product is Ready to be Shipped?
..YouTube video ZVn7ufg-tk0 found: Micromanagement (in Russian with English subtitles)
YouTube video 0Jte_LGR5Zk found: M32: Micromanagement happens when tasks are big and motivation is not explicit
......YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video 9j5pq71BS5U found: Software Outsourcing, 10 Years Ahead (in Russian with English subtitles)
.YouTube video mHCwlZSlZeU found: Chat Bots are the new UI
File /home/r/repo/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg already exists (3469 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg already exists (4627 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
....YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code
.....YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
.YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
....YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
.YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
.....YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
..File /home/r/repo/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg already exists (4512 bytes)
File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg already exists (5570 bytes)
.YouTube video _Q0cNykXB04 found: Printers Instead of Getters in OOP (webinar #18)
..YouTube video g1ctRcW214w found: Java Annotations Are a Big Mistake (webinar #14)
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video cv23Z6xpwDw found: Java Annotations Are a Bad Idea
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
..YouTube video Xk9tIqwca3k found: Smart Classes and Functionality-Poor Interfaces (webinar #16)
....YouTube video zaKTNK8g2-M found: Who Is a Project Manager? (webinar #19)
.......YouTube video sZoJ3gO4PSo found: Who Manages Who? (in Russian with English subtitles)
........YouTube video cGcCcxx4xrg found: Java vs OOP (JavaDay Kyiv)
..File /home/r/repo/uml/653125b6c32d12b7325dba52054c09ca.svg already exists (3536 bytes)
File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg already exists (3481 bytes)
.YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
.YouTube video DjrA7_Uymok found: Inheritance vs. Subtyping (webinar #24)
..YouTube video AwrMKTFyohg found: #NoMagic
.YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
...YouTube video Nm274dGikFc found: Naked Data in OOP (webinar #22)
...File /home/r/repo/uml/45d05ab3bd9a93ad88ec209352b62f60.svg already exists (3256 bytes)
..YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more
..YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
..YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31)
...YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles)
.....YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
.......YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests
YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests
.YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs
.........YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good!
.YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52)
.......YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28)
...YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30)
.YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
..YouTube video uhDmHkMAYnM found: Micro-management vs. micro-tasking (webinar #25)
YouTube video tHeXxLdGqqI found: M19: Want to pay-by-result? You have to do microtasking first, otherwise nothing will work.
YouTube video 1rmZN3r5SWg found: M27: Microtasking enables more accurate and precise estimates of a software project's future
.........YouTube video F3bjFXFRsI8 found: M20: Reporting bugs and deciding whether they should be fixed are two separate activities!
...YouTube video 55mwAbuDrV8 found: Quality vs. Quantity (in Russian)
.YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
.YouTube video AwrMKTFyohg found: #NoMagic
YouTube video GozQCUH2D0I found: M22: Both full-time hiring and outsourcing will lead your project to failure, Zerocracy won't.
.YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
...YouTube video vXUwE3FGfpg found: #NoAltruism
.YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill
...YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35)
...YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36)
.YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out.
.YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose
.YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37)
..YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea!
.YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough
..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
.YouTube video ezE0hRH9BnQ found: M54: Make sure you control your programmers and do it explicitly and openly
.YouTube video fVMml2vpP-Y found: M13: A message without a context is unprofessional and very annoying for the listener; don't do it!
....YouTube video 2oAW9LmYJI4 found: M8: Since most tech editors have no idea what they are doing, ignore them
.....YouTube video gMJNz9AWbQE found: M1: Your enthusiasm may only harm the project if you can't deliver it incrementally
.YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making
.YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak
......YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way
.YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42)
YouTube video YXqHaZJD9R8 found: Yegor Bugayenko
....YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project
..YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong
..YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete
.YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results
...........YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49)
.....YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source)
..File /home/r/repo/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg already exists (13795 bytes)
File /home/r/repo/uml/930f06f36724929287c1ee82fd95c77b.svg already exists (8633 bytes)
YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51)
.File /home/r/repo/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg already exists (18168 bytes)
.YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills
..YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50)
.YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics
.....YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team
..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
.....YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative
...................................................304,965 words in the entire blog, 12,642 uniques
/home/r/repo/_site/buffer.rss created (169831 bytes)
/home/r/repo/_site/gnuplot/2014/11/hoc-vs-loc.svg created (59224 bytes)
/home/r/repo/_site/places.txt created (940 bytes)
/home/r/repo/_site/tags.txt created (1236 bytes)
/home/r/repo/_site/stats.svg created (48107 bytes)
/home/r/repo/_site/words.txt created (81722 bytes)
/home/r/repo/_site/css/icons.svg created (24015 bytes)
/home/r/repo/_site/css/icons.ttf created (9732 bytes)
/home/r/repo/_site/css/icons.woff created (6724 bytes)
/home/r/repo/_site/css/icons.eot created (9898 bytes)
/home/r/repo/_site/css/icons.css created (3291 bytes)
                    done in 149.179 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
Jekyll site generated without issues

All files are in place

There is no garbage

scss-lint found no lints
Typos in _site/index.html:
& ICCQ 15 737: IC CQ, IC-CQ, ICC, IQ, GCC, ICU, IRC, INC, ICKY, INCA, IRAQ, ACCT, ECCL, ICAL, ICON
& ICCQ 15 1076: IC CQ, IC-CQ, ICC, IQ, GCC, ICU, IRC, INC, ICKY, INCA, IRAQ, ACCT, ECCL, ICAL, ICON
& imposters 16 1345: im posters, im-posters, impost ers, impost-ers, impostors, imposts, imposers, impostor's, impost's, importers, impostures, imposer's, imposes, importer's, impostor, imposture's
& dataization 8 1788: Datamation, taxation, digitization, detonation, dedication, titivation, detestation, deodorization
& Zilles 89 4872: Zil les, Zil-les, Sillies, Sills, Sill's, Sullies, Zulus, Soles, Ills, Lille's, Billies, Dillies, Fillers, Fillies, Gillies, Killers, Millers, Tillers, Willies, Sellers, Zola's, Zulu's, Isles, Sallies, Silly's, Giles, Miles, Mills, Wiles, Bills, Dills, Files, Fills, Gills, Hills, Ill's, Illus, Kills, Piles, Pills, Riles, Rills, Tiles, Tills, Wills, Zines, Silas, Cells, Sales, Sells, Silos, Sloes, Slues, Zillow, Aisles, Sidles, Bill's, Gill's, Hill's, Jill's, Mill's, Will's, Dill's, Fill's, Kill's, Pill's, Rill's, Till's, Cell's, Sell's, Silo's, Zeal's, Sole's, Billie's, Lillie's, Miller's, Millie's, Willie's, Filler's, Killer's, Tiller's, Sallie's, Isle's, Seller's, Nile's, Bile's, File's, Mile's, Pile's
& Booch 49 5889: Bo och, Bo-och, Boo ch, Boo-ch, Botch, Brooch, Birch, Bitch, Bach, Bosh, Bloch, Bosch, Booth, Hooch, Mooch, Pooch, Beach, Burch, Batch, Beech, Butch, Bitchy, Boo, Och, Blotch, Broach, Botcher, Betcha, Boor, Foch, Koch, Bock, Boob, Book, Boom, Boon, Boos, Boot, Both, Ouch, Bush, Bash, Busch, Belch, Bench, Bough, Bunch, Boo's, Botch's
& Booch 49 6192: Bo och, Bo-och, Boo ch, Boo-ch, Botch, Brooch, Birch, Bitch, Bach, Bosh, Bloch, Bosch, Booth, Hooch, Mooch, Pooch, Beach, Burch, Batch, Beech, Butch, Bitchy, Boo, Och, Blotch, Broach, Botcher, Betcha, Boor, Foch, Koch, Bock, Boob, Book, Boom, Boon, Boos, Boot, Both, Ouch, Bush, Bash, Busch, Belch, Bench, Bough, Bunch, Boo's, Botch's
& Lamport 25 7297: Lam port, Lam-port, Lamp ort, Lamp-ort, Limpet, Lamppost, Lamont, Import, Lambert, Comport, Lampoon, Lappet, Rampart, Lamprey, Lamp, Limped, Limpid, Lumped, Lamps, Limper, Impart, Lament, Lamest, Lamp's, Limpest
Recruiters  you know what we programmers think about you  do not you  Read this and this  to get the full picture. You are still here because we still do not have good tools and we still enjoy being enslaved. One day this will be over and you will stop exploiting our drawbacks  will lose your “Senior Recruiter” jobs  and start doing something useful and meaningful. However  until this day comes  here is some advice  to help you be a less annoying better head hunter. Continue... First  let me clarify what kind of conference we are talking about. There are two types  professional and academic. The difference is huge. My understanding is that professional conferences are for practitioners  while academic ones are for researchers. ICCQ  which we organized this year  was an academic conference. I have not had any expertise in organizing such things  and had to go through it all for the first time. Here is a more or less detailed description of the journey. Feel free to learn from it and make a better conference yourself. We will try to make a better one next year  ICCQ 2022. Continue... The time of objectivity is fading out. Meritocracy is now a rude word. Metrics in management will soon be considered as harassment. Productivity is already a false objective. It  time to start taking advantage of this era of nonsense. The era of imposters is coming  Do not miss the opportunity to become a great one. Here is a quick summary of key techniques to make you highly successful in any argument you may have in your flat democratic organizations of the future without any skills  knowledge  education  or real achievements. Just pure love and emotions. Continue... There are three things in EOLANG (and the 𝜑-calculus which we based it on)  data  atoms  and objects. There is a dataization function  which puts all three together in order to make an EO program alive. Here is how it works together with Java  for example. Continue... You have an objective  a budget  and a team. You are a manager and you want the project to be done. You get your team together in a meeting room to discuss the plan. You tell them what needs to be done and ask them how fast they can do it. Then  you do the motivational dance and beg ask them to commit. They nod and go back to their cubicles. Of course  after a few months of “hard work” all the milestones are missed and you get back to the planning meeting. And  yes  you pay their salaries anyway. Continue... You got into a company that believes in democratic values  does not measure performance  does not judge  does not control  does not force  and does not blame  however  at the end of the year they tell you that your performance was not as high as expected. Why  “Just work better  my friend  we count on you ” Bad luck  you are in a teal self-managing organization. They have already killed the management  but still did not dare to kill the managers. They do not know how to measure  but still have people who are supposed to do it regularly  in order to distribute monetary rewards. What do you do before you quit  Here is a survival recipe. Continue... We are in trouble. On the one hand  most managers are weak and incompetent. Their mistakes destroy our motivation  decrease productivity  and lead to business failures. As a result  many of us believe that managers are evil. On the other hand  there is a new idea that self-managing organizations are the future. Its proponents are trying to convince us that chaos is better than management mistakes. They want us to believe that subordination  hierarchy  control  and order are new bad words to be prohibited in a respectful society. We must stop them  Continue... How do you create objects in your object-oriented language  Let  take something classic  like C++  Java  or C . First you define a class  and then you make an instance of it. The first step is known as abstraction  and the second one as instantiation. A similar pair of operations exist in functional programming  declaring a function is abstraction  while calling it with specific arguments is application. The question is  why does OOP need classes and objects  while FP survives with just functions  Continue... What do you think an object is in OOP  No matter what language you are programming with  you will most probably agree with Bruce Eckel  the author of Thinking in Java  who said that “each object has a state and operations that you can ask it to perform ” or Benjamin Evans  the author of Java in a Nutshell  who claimed that it is “a collection of data fields that hold values and methods that operate on those values.” However  hold on… What if I told you that an object may have no “operations” and still be a perfect “equivalent of the quanta from which the universe is constructed &rdquo; as David West suggested in his great book Object Thinking  Continue... In 1974  Liskov and Zilles defined a strongly-typed language as one in which “whenever an object is passed from a calling function to a called function  its type must be compatible with the type declared in the called function.” Strong type checking  without doubt  decreases the amount of type errors  which leads to higher quality. However  the question is  do we really need types in order to strongly enforce typing  Continue... A few days ago I asked my Twitter followers to vote in a simple poll. They did  screaming in comments that only a stupid incompetent manager would ask programmers to send daily reports  while everything they do can easily be tracked in tickets  Git history  and so on. Indeed  why on earth would a sane manager ask software engineers  already very busy with coding  to spend time on writing these ridiculous reporting emails  Let me try to give you a good reason. Continue... Encapsulation  as you know  is one of the four key principles in object-oriented programming. Encapsulation  according to Grady Booch et al.  is “the process of hiding all the secrets of an object that do not contribute to its essential characteristics.” Practically speaking  it  about those attributes that we use in Java and C++  they are not visible to the users of our objects  that  why they ca not be modified or even read. Booch et al. believe that the purpose of encapsulation is “to provide explicit barriers among different abstractions ” which leads to “a clear separation of concerns.” However  does it really work as planned  Do we really have explicit barriers between objects  Let  see. Continue... Do you know the most typical mistake startup founders make when they pitch their ideas to investors  According to Jake Mendel from Silicon Valley Bank  they often focus on the solution they propose instead of the problem they are trying to solve. Inability to identify the problem is the common cause of startup failures. However  it  not only them. Look at your project and try to answer “What  wrong with the world now ” and then “How is this product fixing it ” Continue... Do you use LaTeX for your academic and technical writings  You do not  Well you should  It  the most only professional instrument for making properly formatted PDF documents. MS Word and Apple Pages are for secretaries non-tech people  while LaTeX is serious. It  perfect in so many ways  thanks to Donald Knuth (the creator of TeX) and Leslie Lamport (the author of LaTeX)  but it lacks one very convenient feature  spell checking. The only solution I have found so far  which works perfectly for my documents  is GNU aspell. Continue... Here is a short list of common courtesy rules for open source software development. Actually  they apply elsewhere also  but they are most visible when you do GitHub-based coding. I strongly believe that sooner or later all programming will be open source and these rules will apply to everybody. Consequently  it makes sense to start following them now  whether you are an active Apache contributor or a happy owner of the “Java for Dummies” book. Continue...
+ mkdir /home/r/.ssh
+ mv ../id_rsa ../id_rsa.pub /home/r/.ssh
+ chmod -R 600 /home/r/.ssh/id_rsa /home/r/.ssh/id_rsa.pub
+ echo -e 'Host *\n  StrictHostKeyChecking no\n  UserKnownHostsFile=/dev/null'
+ git config --global user.email rultor@yegor256.com
+ git config --global user.name Rultor
+ LC_ALL=en_US.UTF-8
+ jgd
+ set -e
+ set -o pipefail
+ URL=git@github.com:yegor256/blog.git
++ pwd
+ SRC=/home/r/repo
++ mktemp -d -t jgd-XXX
+ TEMP=/tmp/jgd-3Il
+ trap 'rm -rf /tmp/jgd-3Il' EXIT
+ CLONE=/tmp/jgd-3Il/clone
+ COPY=/tmp/jgd-3Il/copy
+ echo -e 'Cloning Github repository:'
Cloning Github repository:
+ git clone git@github.com:yegor256/blog.git /tmp/jgd-3Il/clone
Cloning into '/tmp/jgd-3Il/clone'...
Warning: Permanently added 'github.com,140.82.121.3' (RSA) to the list of known hosts.
remote: Enumerating objects: 1393831, done.K
remote: Counting objects: 100% (9445/9445), done.K
remote: Compressing objects: 100% (2212/2212), done.K
remote:nTotale13938319(delta97546),9reused383789(delta|6921),Mpack-reused 1384386K
Receiving objects: 100% (1393831/1393831), 574.19 MiB | 10.71 MiB/s, done.
Resolving deltas: 100% (1098851/1098851), done.
+ cp -R /tmp/jgd-3Il/clone /tmp/jgd-3Il/copy
+ cd /tmp/jgd-3Il/clone
+ echo -e '\nBuilding Jekyll site:'

Building Jekyll site:
+ rm -rf _site
+ '[' -r _config-deploy.yml ']'
+ jekyll build
Configuration file: /tmp/jgd-3Il/clone/_config.yml
            Source: /tmp/jgd-3Il/clone
       Destination: /tmp/jgd-3Il/clone/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
WARN: No front image in /2010/03/04/pdd.html
WARN: No front image in /2013/12/29/proto.html
WARN: No front image in /2014/04/06/introduction.html
WARN: No front image in /2014/04/06/movies-for-thanasis.html
WARN: No front image in /2014/04/06/phandom.html
WARN: No front image in /2014/04/09/xembly-intro.html
WARN: No front image in /2014/04/11/jcabi-http-intro.html
WARN: No front image in /2014/04/14/jcabi-dynamo-java-api-of-aws-dynamodb.html
WARN: No front image in /2014/04/15/definition-of-done.html
WARN: No front image in /2014/04/15/github-guidelines.html
WARN: No front image in /2014/04/18/jcabi-http-server-mocking.html
WARN: No front image in /2014/04/20/how-hourly-rate-is-calculated.html
WARN: No front image in /2014/04/21/s3-http-basic-auth.html
WARN: No front image in /2014/04/24/java-xml-parsing-and-traversing.html
WARN: No front image in /2014/04/26/incremental-requirements-with-requs.html
WARN: No front image in /2014/04/27/typical-mistakes-in-java-code.html
WARN: No front image in /2014/04/28/xml-xpath-hamcrest-matchers.html
WARN: No front image in /2014/04/29/w3c-java-validators.html
WARN: No front image in /2014/05/01/dynamodb-local-maven-plugin.html
WARN: No front image in /2014/05/05/oop-alternative-to-utility-classes.html
WARN: No front image in /2014/05/13/why-null-is-bad.html
WARN: No front image in /2014/05/14/object-oriented-github-java-sdk.html
WARN: No front image in /2014/05/18/cloud-autoincrement-counters.html
WARN: No front image in /2014/05/21/mysql-maven-plugin.html
WARN: No front image in /2014/05/23/avoid-java-static-logger.html
WARN: No front image in /2014/05/26/amazon-s3-java-oop-adapter.html
WARN: No front image in /2014/06/01/aop-aspectj-java-method-logging.html
WARN: No front image in /2014/06/09/objects-should-be-immutable.html
WARN: No front image in /2014/06/19/avoid-string-concatenation.html
WARN: No front image in /2014/06/20/limit-method-execution-time.html
WARN: No front image in /2014/06/21/casperjs-with-maven.html
WARN: No front image in /2014/06/24/jekyll-github-deploy.html
WARN: No front image in /2014/06/25/xml-and-xslt-in-browser.html
WARN: No front image in /2014/06/26/sass-in-java-webapp.html
WARN: No front image in /2014/06/29/custom-lexer-in-jekyll.html
WARN: No front image in /2014/07/03/how-to-read-manifest-mf.html
WARN: No front image in /2014/07/20/liquibase-in-maven.html
WARN: No front image in /2014/07/21/read-only-master-branch.html
WARN: No front image in /2014/07/24/rultor-automated-merging.html
WARN: No front image in /2014/07/29/docker-in-rultor.html
WARN: No front image in /2014/07/31/travis-and-rultor.html
WARN: No front image in /2014/08/03/cacheable-java-annotation.html
WARN: No front image in /2014/08/15/retry-java-method-on-exception.html
WARN: No front image in /2014/08/18/fluent-jdbc-decorator.html
WARN: No front image in /2014/08/19/how-to-release-to-maven-central.html
WARN: No front image in /2014/08/22/art-of-software-testing.html
WARN: No front image in /2014/08/25/deploy-to-cloudbees.html
WARN: No front image in /2014/08/26/publish-to-rubygems.html
WARN: No front image in /2014/08/29/docker-non-root.html
WARN: No front image in /2014/09/02/java-ssh-client.html
WARN: No front image in /2014/09/10/anti-patterns-in-oop.html
WARN: No front image in /2014/09/13/deploying-to-heroku.html
WARN: No front image in /2014/09/22/remote-programming-interview.html
WARN: No front image in /2014/09/23/built-in-fake-objects.html
WARN: No front image in /2014/09/24/why-monetary-awards-dont-work.html
WARN: No front image in /2014/10/03/di-containers-are-evil.html
WARN: No front image in /2014/10/05/ten-hosted-continuous-integration-services.html
WARN: No front image in /2014/10/06/software-project-lifecycle.html
WARN: No front image in /2014/10/08/continuous-integration-is-dead.html
WARN: No front image in /2014/10/21/incremental-billing.html
WARN: No front image in /2014/10/23/paired-brackets-notation.html
WARN: No front image in /2014/10/26/hacker-vs-programmer-mentality.html
WARN: No front image in /2014/11/03/empty-line-code-smell.html
WARN: No front image in /2014/11/07/how-immutability-helps.html
WARN: No front image in /2014/11/14/hits-of-code.html
WARN: No front image in /2014/11/20/seven-virtues-of-good-object.html
WARN: No front image in /2015/01/10/windows-appveyor-maven.html
WARN: No front image in /2015/01/21/if-then-throw-else.html
WARN: No front image in /2015/02/02/xsl-transformations-in-java.html
WARN: No front image in /2015/02/05/jcabi-parent-maven-pom.html
WARN: No front image in /2015/03/26/jaxb-vs-xembly.html
WARN: No front image in /2015/03/29/rultor-with-appveyor.html
WARN: No front image in /2015/04/13/tacit-css-framework-for-dummies.html
WARN: No front image in /2015/04/22/favorite-software-books.html
WARN: No front image in /2015/04/30/iterating-adapter.html
WARN: No front image in /2015/05/18/cookie-based-authentication.html
WARN: No front image in /2015/06/08/deadly-sins-software-project.html
WARN: No front image in /2015/06/11/wikipedia-bug-definition.html
WARN: No front image in /2015/06/25/xml-data-xsl-views-takes-framework.html
WARN: No front image in /2015/08/18/multiple-return-statements-in-oop.html
WARN: No front image in /2015/09/07/maven-repository-amazon-s3.html
WARN: No front image in /2015/11/03/chatbot-better-than-ui-for-microservice.html
WARN: No front image in /2016/03/15/wring-dispatcher-github-notifications.html
WARN: No front image in /2016/03/30/jare-instant-free-cdn.html
WARN: No front image in /2016/11/18/software-conferences-to-attend.html
WARN: No front image in /2017/06/13/dynamodb-rack-maven.html
WARN: No front image in /2017/06/22/object-oriented-input-output-in-cactoos.html
WARN: No front image in /2017/06/27/my-environment.html
WARN: No front image in /2017/07/25/my-favorite-websites.html
WARN: No front image in /2017/09/05/rehttp-http-repeater.html
WARN: No front image in /2018/10/30/mailanes.html
WARN: No front image in /2018/11/06/ruby-threads.html
WARN: No front image in /2019/02/03/cloudrepo.html
WARN: No front image in /2019/02/05/zache.html
WARN: No front image in /2019/04/17/nutch-from-java.html
WARN: No front image in /2019/06/26/syncem.html
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
File /tmp/jgd-3Il/clone/uml/d892698103dc5669949527a8754c5f26.svg created (3442 bytes)
YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video 7EytYc7K5JA found: eXtremely Distributed Software Development, at DevTernity
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles)
File /tmp/jgd-3Il/clone/uml/52d3d016f2264bbf660a23d5bbe84203.svg created (8675 bytes)
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27)
YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles)
YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video EDKbYVEInMU found: Built-in Fake Objects
YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video MNxG1xcA2uA found: How to Inject Less?
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video GS45LzE3LPQ found: How Much Do You Cost?
YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles)
YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern
YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video oiNI2jF46h0 found: Make Customers Trust You
YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project
YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles)
YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5)
YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have
YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project
YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project
YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48)
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making
YouTube video ODxm7w2DE-g found: #NoSalaries
File /tmp/jgd-3Il/clone/uml/19b92d0465e2e819ffcf88cf46c6e333.svg created (3984 bytes)
YouTube video QMcDa2eyRBY found: Need Robust Software? Make It Fragile
YouTube video nCGBgI1MNwE found: Need It Robust? Make It Fragile!
YouTube video wd-SA1HVmLg found: How Do You Know When Your Product is Ready to be Shipped?
YouTube video ZVn7ufg-tk0 found: Micromanagement (in Russian with English subtitles)
YouTube video 0Jte_LGR5Zk found: M32: Micromanagement happens when tasks are big and motivation is not explicit
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video 9j5pq71BS5U found: Software Outsourcing, 10 Years Ahead (in Russian with English subtitles)
YouTube video mHCwlZSlZeU found: Chat Bots are the new UI
File /tmp/jgd-3Il/clone/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg created (3469 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /tmp/jgd-3Il/clone/uml/d103661ebf8494340e260442970bf4af.svg created (4627 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code
YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
File /tmp/jgd-3Il/clone/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg created (4512 bytes)
File /tmp/jgd-3Il/clone/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (5570 bytes)
YouTube video _Q0cNykXB04 found: Printers Instead of Getters in OOP (webinar #18)
YouTube video g1ctRcW214w found: Java Annotations Are a Big Mistake (webinar #14)
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video cv23Z6xpwDw found: Java Annotations Are a Bad Idea
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video Xk9tIqwca3k found: Smart Classes and Functionality-Poor Interfaces (webinar #16)
YouTube video zaKTNK8g2-M found: Who Is a Project Manager? (webinar #19)
YouTube video sZoJ3gO4PSo found: Who Manages Who? (in Russian with English subtitles)
YouTube video cGcCcxx4xrg found: Java vs OOP (JavaDay Kyiv)
File /tmp/jgd-3Il/clone/uml/653125b6c32d12b7325dba52054c09ca.svg created (3536 bytes)
File /tmp/jgd-3Il/clone/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (3481 bytes)
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
YouTube video DjrA7_Uymok found: Inheritance vs. Subtyping (webinar #24)
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video Nm274dGikFc found: Naked Data in OOP (webinar #22)
File /tmp/jgd-3Il/clone/uml/45d05ab3bd9a93ad88ec209352b62f60.svg created (3256 bytes)
YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more
YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31)
YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles)
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests
YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests
YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs
YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good!
YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52)
YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28)
YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30)
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
YouTube video uhDmHkMAYnM found: Micro-management vs. micro-tasking (webinar #25)
YouTube video tHeXxLdGqqI found: M19: Want to pay-by-result? You have to do microtasking first, otherwise nothing will work.
YouTube video 1rmZN3r5SWg found: M27: Microtasking enables more accurate and precise estimates of a software project's future
YouTube video F3bjFXFRsI8 found: M20: Reporting bugs and deciding whether they should be fixed are two separate activities!
YouTube video 55mwAbuDrV8 found: Quality vs. Quantity (in Russian)
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video GozQCUH2D0I found: M22: Both full-time hiring and outsourcing will lead your project to failure, Zerocracy won't.
YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
YouTube video vXUwE3FGfpg found: #NoAltruism
YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill
YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35)
YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36)
YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out.
YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose
YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37)
YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea!
YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video ezE0hRH9BnQ found: M54: Make sure you control your programmers and do it explicitly and openly
YouTube video fVMml2vpP-Y found: M13: A message without a context is unprofessional and very annoying for the listener; don't do it!
YouTube video 2oAW9LmYJI4 found: M8: Since most tech editors have no idea what they are doing, ignore them
YouTube video gMJNz9AWbQE found: M1: Your enthusiasm may only harm the project if you can't deliver it incrementally
YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making
YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak
YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way
YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42)
YouTube video YXqHaZJD9R8 found: Yegor Bugayenko
YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project
YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong
YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete
YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49)
YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source)
File /tmp/jgd-3Il/clone/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg created (13795 bytes)
File /tmp/jgd-3Il/clone/uml/930f06f36724929287c1ee82fd95c77b.svg created (8633 bytes)
YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51)
File /tmp/jgd-3Il/clone/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg created (18168 bytes)
YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills
YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50)
YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics
YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team
YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative
360 AMP pages generated in 42.47s

places.txt generated
tags.txt generated

stats.svg generated
+ unset BUNDLE_GEMFILE
+ cd /tmp
++ readlink --canonicalize-existing /tmp/jgd-3Il/clone/_glyphs/compile.sh
+ x=/tmp/jgd-3Il/clone/_glyphs/compile.sh
++ dirname /tmp/jgd-3Il/clone/_glyphs/compile.sh
+ dir=/tmp/jgd-3Il/clone/_glyphs
+ target=/tmp/jgd-3Il/clone/_temp/icons
+ mkdir -p /tmp/jgd-3Il/clone/_temp/icons
+ fontcustom compile /tmp/jgd-3Il/clone/_glyphs --output=/tmp/jgd-3Il/clone/_temp/icons --font-name=icons --templates=css --no-hash --force --autowidth
+ cat /tmp/jgd-3Il/clone/_temp/icons/icons.css
++ date +%s
+ sed -E 's|"./icons([^"]+)"|"https://www.yegor256.com/css/icons\1?1625125153"|g'
      status  Forcing compile.
      create  /tmp/jgd-3Il/clone/_temp/icons/icons.ttf
              /tmp/jgd-3Il/clone/_temp/icons/icons.svg
              /tmp/jgd-3Il/clone/_temp/icons/icons.woff
              /tmp/jgd-3Il/clone/_temp/icons/icons.eot
              /tmp/jgd-3Il/clone/_temp/icons/icons.woff2
      create  /tmp/jgd-3Il/clone/_temp/icons/icons.css
       Jekyll Feed: Generating feed for posts
YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
......YouTube video qRZYJGYdrwk found: XDSD: management without meetings
.Configuration file: /tmp/jgd-3Il/clone/_config.yml
YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
.YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
YouTube video LmSaC_OjIbQ found: M28: Microtasking works only if you can decompose tasks, PDD helps you do exactly that
File /tmp/jgd-3Il/clone/uml/d892698103dc5669949527a8754c5f26.svg already exists (3442 bytes)
.YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
.YouTube video qRZYJGYdrwk found: XDSD: management without meetings
..YouTube video qRZYJGYdrwk found: XDSD: management without meetings
..YouTube video 7EytYc7K5JA found: eXtremely Distributed Software Development, at DevTernity
YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team
..........YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
.YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
......YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles)
File /tmp/jgd-3Il/clone/uml/52d3d016f2264bbf660a23d5bbe84203.svg already exists (8675 bytes)
.YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
..........YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
.YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
.......YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27)
........YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor.
YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release
..YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles)
..YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
YouTube video EDKbYVEInMU found: Built-in Fake Objects
.YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
.YouTube video MNxG1xcA2uA found: How to Inject Less?
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
...YouTube video qRZYJGYdrwk found: XDSD: management without meetings
YouTube video LB_YLWhGrco found: Meetings-free Programming
.YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead
YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects
YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
....YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
.YouTube video GS45LzE3LPQ found: How Much Do You Cost?
YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers?
..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
.YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate
.YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
.YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17)
.YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles)
YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern
YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern
..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
.YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
.YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
YouTube video oiNI2jF46h0 found: Make Customers Trust You
YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project
YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager
.YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough?
YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2)
YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles)
.YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client?
.YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers
YouTube video pt9uHp35fwM found: Meetings Or Discipline
...YouTube video b6r2W3P9vgY found: Blame the Project
YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
.......YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15)
.YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6)
..YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1)
.YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles)
.YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5)
..YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
....YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017
.....YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video PNSezrlemsY found: Hacker vs Designer Mentality
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
.YouTube video 0fuEgmibJc4 found: Who Is a Software Architect?
YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13)
..YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster
.YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8)
..YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have
.YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project
YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project
.....YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12)
..YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48)
..YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
YouTube video LB_YLWhGrco found: Meetings-free Programming
YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects
YouTube video AwrMKTFyohg found: #NoMagic
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making
..YouTube video ODxm7w2DE-g found: #NoSalaries
..File /tmp/jgd-3Il/clone/uml/19b92d0465e2e819ffcf88cf46c6e333.svg already exists (3984 bytes)
..YouTube video QMcDa2eyRBY found: Need Robust Software? Make It Fragile
YouTube video nCGBgI1MNwE found: Need It Robust? Make It Fragile!
...YouTube video wd-SA1HVmLg found: How Do You Know When Your Product is Ready to be Shipped?
..YouTube video ZVn7ufg-tk0 found: Micromanagement (in Russian with English subtitles)
YouTube video 0Jte_LGR5Zk found: M32: Micromanagement happens when tasks are big and motivation is not explicit
......YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video 9j5pq71BS5U found: Software Outsourcing, 10 Years Ahead (in Russian with English subtitles)
.YouTube video mHCwlZSlZeU found: Chat Bots are the new UI
File /tmp/jgd-3Il/clone/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg already exists (3469 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /tmp/jgd-3Il/clone/uml/d103661ebf8494340e260442970bf4af.svg already exists (4627 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
....YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code
.....YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko
YouTube video pt9uHp35fwM found: Meetings Or Discipline
YouTube video b6r2W3P9vgY found: Blame the Project
.YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work?
YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11)
....YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10)
.YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
.....YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
..File /tmp/jgd-3Il/clone/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg already exists (4512 bytes)
File /tmp/jgd-3Il/clone/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg already exists (5570 bytes)
.YouTube video _Q0cNykXB04 found: Printers Instead of Getters in OOP (webinar #18)
..YouTube video g1ctRcW214w found: Java Annotations Are a Big Mistake (webinar #14)
YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9)
YouTube video cv23Z6xpwDw found: Java Annotations Are a Bad Idea
YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4)
..YouTube video Xk9tIqwca3k found: Smart Classes and Functionality-Poor Interfaces (webinar #16)
....YouTube video zaKTNK8g2-M found: Who Is a Project Manager? (webinar #19)
.......YouTube video sZoJ3gO4PSo found: Who Manages Who? (in Russian with English subtitles)
........YouTube video cGcCcxx4xrg found: Java vs OOP (JavaDay Kyiv)
..File /tmp/jgd-3Il/clone/uml/653125b6c32d12b7325dba52054c09ca.svg already exists (3536 bytes)
File /tmp/jgd-3Il/clone/uml/cad4de541e1ab10d3d9d751c661fe63f.svg already exists (3481 bytes)
.YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20)
.YouTube video DjrA7_Uymok found: Inheritance vs. Subtyping (webinar #24)
..YouTube video AwrMKTFyohg found: #NoMagic
.YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
...YouTube video Nm274dGikFc found: Naked Data in OOP (webinar #22)
...File /tmp/jgd-3Il/clone/uml/45d05ab3bd9a93ad88ec209352b62f60.svg already exists (3256 bytes)
..YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more
..YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
..YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31)
...YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles)
.....YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23)
.......YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests
YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests
.YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs
.........YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good!
.YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52)
.......YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28)
...YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30)
.YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
..YouTube video uhDmHkMAYnM found: Micro-management vs. micro-tasking (webinar #25)
YouTube video tHeXxLdGqqI found: M19: Want to pay-by-result? You have to do microtasking first, otherwise nothing will work.
YouTube video 1rmZN3r5SWg found: M27: Microtasking enables more accurate and precise estimates of a software project's future
.........YouTube video F3bjFXFRsI8 found: M20: Reporting bugs and deciding whether they should be fixed are two separate activities!
...YouTube video 55mwAbuDrV8 found: Quality vs. Quantity (in Russian)
.YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33)
.YouTube video AwrMKTFyohg found: #NoMagic
YouTube video GozQCUH2D0I found: M22: Both full-time hiring and outsourcing will lead your project to failure, Zerocracy won't.
.YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32)
...YouTube video vXUwE3FGfpg found: #NoAltruism
.YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill
...YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35)
...YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36)
.YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out.
.YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose
.YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37)
..YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea!
.YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough
..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
.YouTube video ezE0hRH9BnQ found: M54: Make sure you control your programmers and do it explicitly and openly
.YouTube video fVMml2vpP-Y found: M13: A message without a context is unprofessional and very annoying for the listener; don't do it!
....YouTube video 2oAW9LmYJI4 found: M8: Since most tech editors have no idea what they are doing, ignore them
.....YouTube video gMJNz9AWbQE found: M1: Your enthusiasm may only harm the project if you can't deliver it incrementally
.YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making
.YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak
......YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way
.YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42)
YouTube video YXqHaZJD9R8 found: Yegor Bugayenko
....YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project
..YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong
..YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete
.YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results
...........YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
..YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49)
.....YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source)
..File /tmp/jgd-3Il/clone/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg already exists (13795 bytes)
File /tmp/jgd-3Il/clone/uml/930f06f36724929287c1ee82fd95c77b.svg already exists (8633 bytes)
YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51)
.File /tmp/jgd-3Il/clone/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg already exists (18168 bytes)
.YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills
..YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50)
.YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics
.....YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team
..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29)
.....YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative
...................................................304,965 words in the entire blog, 12,642 uniques
/tmp/jgd-3Il/clone/_site/buffer.rss created (169841 bytes)
/tmp/jgd-3Il/clone/_site/gnuplot/2014/11/hoc-vs-loc.svg created (59224 bytes)
/tmp/jgd-3Il/clone/_site/places.txt created (940 bytes)
/tmp/jgd-3Il/clone/_site/tags.txt created (1236 bytes)
/tmp/jgd-3Il/clone/_site/stats.svg created (48107 bytes)
/tmp/jgd-3Il/clone/_site/words.txt created (81722 bytes)
/tmp/jgd-3Il/clone/_site/css/icons.svg created (24015 bytes)
/tmp/jgd-3Il/clone/_site/css/icons.ttf created (9732 bytes)
/tmp/jgd-3Il/clone/_site/css/icons.woff created (6724 bytes)
/tmp/jgd-3Il/clone/_site/css/icons.eot created (9898 bytes)
/tmp/jgd-3Il/clone/_site/css/icons.css created (3291 bytes)
                    done in 129.104 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
+ '[' '!' -e _site ']'
+ cp -R _site /tmp/jgd-3Il
+ cd /tmp/jgd-3Il
+ rm -rf /tmp/jgd-3Il/clone
+ mv /tmp/jgd-3Il/copy /tmp/jgd-3Il/clone
+ cd /tmp/jgd-3Il/clone
+ echo -e '\nPreparing gh-pages branch:'

Preparing gh-pages branch:
++ git branch -a
++ grep origin/gh-pages
+ '[' -z '  remotes/origin/gh-pages' ']'
+ git checkout gh-pages
Branch 'gh-pages' set up to track remote branch 'gh-pages' from 'origin'.
Switched to a new branch 'gh-pages'
+ echo -e '\nDeploying into gh-pages branch:'

Deploying into gh-pages branch:
+ rm -rf 2009 2010 2013 2014 2015 2016 2017 2018 2019 2020 2021 256-bloghacks.html 404.html about-me.html ads.txt agenda.html award.html best.html bin boilerplate.html books.html buffer.rss CNAME code-ahead.html contents.html css elegant-objects.html eo-reviews.html favicon.ico fiction.html fonts gnuplot images index.html jcg.html js junior-objects.html movies.html non-fiction.html opensearch.html opensearch.xml p paintings.html papers.html pdf pets.html places.txt podcast quotes.html redirects.json robots.txt rss rss-jcg.xml rss.xml seen.html shift-m shift-m.html sitemap.xml stats.svg subscribed.html tag tags.txt talks.html testimonials.html trainings.html txt uml videos.html webinars.html words.txt
+ cp -R /tmp/jgd-3Il/_site/2009 /tmp/jgd-3Il/_site/2010 /tmp/jgd-3Il/_site/2013 /tmp/jgd-3Il/_site/2014 /tmp/jgd-3Il/_site/2015 /tmp/jgd-3Il/_site/2016 /tmp/jgd-3Il/_site/2017 /tmp/jgd-3Il/_site/2018 /tmp/jgd-3Il/_site/2019 /tmp/jgd-3Il/_site/2020 /tmp/jgd-3Il/_site/2021 /tmp/jgd-3Il/_site/256-bloghacks.html /tmp/jgd-3Il/_site/404.html /tmp/jgd-3Il/_site/about-me.html /tmp/jgd-3Il/_site/ads.txt /tmp/jgd-3Il/_site/agenda.html /tmp/jgd-3Il/_site/award.html /tmp/jgd-3Il/_site/best.html /tmp/jgd-3Il/_site/bin /tmp/jgd-3Il/_site/boilerplate.html /tmp/jgd-3Il/_site/books.html /tmp/jgd-3Il/_site/buffer.rss /tmp/jgd-3Il/_site/CNAME /tmp/jgd-3Il/_site/code-ahead.html /tmp/jgd-3Il/_site/contents.html /tmp/jgd-3Il/_site/css /tmp/jgd-3Il/_site/elegant-objects.html /tmp/jgd-3Il/_site/eo-reviews.html /tmp/jgd-3Il/_site/favicon.ico /tmp/jgd-3Il/_site/fiction.html /tmp/jgd-3Il/_site/fonts /tmp/jgd-3Il/_site/gnuplot /tmp/jgd-3Il/_site/images /tmp/jgd-3Il/_site/index.html /tmp/jgd-3Il/_site/jcg.html /tmp/jgd-3Il/_site/js /tmp/jgd-3Il/_site/junior-objects.html /tmp/jgd-3Il/_site/movies.html /tmp/jgd-3Il/_site/non-fiction.html /tmp/jgd-3Il/_site/opensearch.html /tmp/jgd-3Il/_site/opensearch.xml /tmp/jgd-3Il/_site/p /tmp/jgd-3Il/_site/paintings.html /tmp/jgd-3Il/_site/papers.html /tmp/jgd-3Il/_site/pdf /tmp/jgd-3Il/_site/pets.html /tmp/jgd-3Il/_site/places.txt /tmp/jgd-3Il/_site/podcast /tmp/jgd-3Il/_site/quotes.html /tmp/jgd-3Il/_site/redirects.json /tmp/jgd-3Il/_site/robots.txt /tmp/jgd-3Il/_site/rss /tmp/jgd-3Il/_site/rss-jcg.xml /tmp/jgd-3Il/_site/rss.xml /tmp/jgd-3Il/_site/seen.html /tmp/jgd-3Il/_site/shift-m /tmp/jgd-3Il/_site/shift-m.html /tmp/jgd-3Il/_site/sitemap.xml /tmp/jgd-3Il/_site/stats.svg /tmp/jgd-3Il/_site/subscribed.html /tmp/jgd-3Il/_site/tag /tmp/jgd-3Il/_site/tags.txt /tmp/jgd-3Il/_site/talks.html /tmp/jgd-3Il/_site/testimonials.html /tmp/jgd-3Il/_site/trainings.html /tmp/jgd-3Il/_site/txt /tmp/jgd-3Il/_site/uml /tmp/jgd-3Il/_site/videos.html /tmp/jgd-3Il/_site/webinars.html /tmp/jgd-3Il/_site/words.txt .
+ rm -f README.md
+ git add .
++ date
+ git commit -am 'new version Thu Jul  1 07:40:38 UTC 2021' --allow-empty
[gh-pages 2ae51922746] new version Thu Jul  1 07:40:38 UTC 2021
 535 files changed, 3468 insertions(+), 3447 deletions(-)
 rewrite css/layout.css (73%)
+ git push origin gh-pages
+ sed 's|git@github.com:yegor256/blog.git|[skipped]|g'
Warning: Permanently added 'github.com,140.82.121.4' (RSA) to the list of known hosts.
remote:
remote: GitHub found 8 vulnerabilities on yegor256/blog's default branch (3 high, 5 moderate). To find out more, visit:
remote:      https://github.com/yegor256/blog/security/dependabot
remote:
To github.com:yegor256/blog.git
   4a056df8b3f..2ae51922746  gh-pages -> gh-pages
+ echo -e '\nCleaning up:'

Cleaning up:
+ rm -rf /tmp/jgd-3Il/clone
+ rm -rf ''
+ rm -rf /tmp/jgd-3Il
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R rultor repo
+ cd repo
container 03e05fc9bb31f9373647ee8d120b647ebde95f0431e04295507f80fe4c90ca0b is dead
Thu Jul  1 09:41:12 CEST 2021