+ set -e
+ set -o pipefail
++ dirname ./run.sh
+ cd .
+ echo 19700
+ echo '1.68.2 70c246ce3'
1.68.2 70c246ce3
+ date
Sun Apr 21 16:20:29 CEST 2019
+ uptime
16:20:29 up 127 days, 5:50, 0 users, load average: 4.94, 4.96, 5.07
+ head=git@github.com:yegor256/blog.git
+ image=yegor256/blog
+ 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'\''\'\'''\'''\'' '\'';'\'' '\''export GEM_HOME=~/.ruby'\'' '\'';'\'' '\''export GEM_PATH=$GEM_HOME:$GEM_PATH'\'' '\'';'\'' '\''bundle install'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 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'\''' ';' 'export GEM_HOME=~/.ruby' ';' 'export GEM_PATH=$GEM_HOME:$GEM_PATH' ';' 'bundle install' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 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_252
+ 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'\''' ';' 'export GEM_HOME=~/.ruby' ';' 'export GEM_PATH=$GEM_HOME:$GEM_PATH' ';' 'bundle install' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 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
++ tail -n 1
++ sed 's/ /\n/g'
+ load=5.30
++ echo 5.30 '>' 30
++ bc
+ '[' 0 -eq 1 ']'
+ echo 'load average is 5.30, low enough to run a new Docker container'
load average is 5.30, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=yegor256/blog
+ docker pull yegor256/blog
Using default tag: latest
latest: Pulling from yegor256/blog
Digest: sha256:c3e7227ba5aaf510d6c76bfe95afe79bcf50edd025368abb5d91cbcb5948634d
Status: Image is up to date for yegor256/blog:latest
+ docker ps --filter=status=exited
+ grep --quiet '\syegor256_blog_252\s*$'
+ ls -al .
total 720
drwx--x--x 3 rultor rultor 4096 Apr 21 16:21 .
drwxrwxrwt 14 root root 684032 Apr 21 16:21 ..
-rw-rw-r-- 1 rultor rultor 444 Apr 21 16:20 end.sh
-rwxrwxr-x 1 rultor rultor 338 Apr 21 16:21 entry.sh
-rw-rw-r-- 1 rultor rultor 1679 Apr 21 16:20 id_rsa
-rw-rw-r-- 1 rultor rultor 396 Apr 21 16:20 id_rsa.pub
-rw-rw-r-- 1 rultor rultor 6 Apr 21 16:20 pid
drwxrwxr-x 26 rultor rultor 4096 Apr 21 16:21 repo
-rwxrwxr-x 1 rultor rultor 4777 Apr 21 16:20 run.sh
-rw-rw-r-- 1 rultor rultor 656 Apr 21 16:21 script.sh
-rw-rw-r-- 1 rultor rultor 57 Apr 21 16:20 secrets.yml
-rw-rw-r-- 1 rultor rultor 3672 Apr 21 16:21 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-jUVY:/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'\''\'\'''\'''\'' '\'';'\'' '\''export GEM_HOME=~/.ruby'\'' '\'';'\'' '\''export GEM_PATH=$GEM_HOME:$GEM_PATH'\'' '\'';'\'' '\''bundle install'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 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-jUVY/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_blog_252 yegor256/blog /main/entry.sh
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bashrc /root/.composer /root/.gem /root/.gnupg /root/.m2 /root/.npm /root/.oracle_jre_usage /root/.profile /root/texmf /root/.wget-hsts /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: change /dev/pts/0 mode failed: Operation not permitted
+ 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
+ export GEM_HOME=/home/r/.ruby
+ GEM_HOME=/home/r/.ruby
+ export GEM_PATH=/home/r/.ruby:/usr/local/rvm/gems/ruby-2.3.3:/usr/local/rvm/gems/ruby-2.3.3@global
+ GEM_PATH=/home/r/.ruby:/usr/local/rvm/gems/ruby-2.3.3:/usr/local/rvm/gems/ruby-2.3.3@global
+ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies....
32mFetching rake 12.3.20m
32mInstalling rake 12.3.20m
32mFetching concurrent-ruby 1.1.50m
32mInstalling concurrent-ruby 1.1.50m
32mFetching i18n 1.6.00m
32mInstalling i18n 1.6.00m
32mFetching minitest 5.11.30m
32mInstalling minitest 5.11.30m
32mFetching thread_safe 0.3.60m
32mInstalling thread_safe 0.3.60m
32mFetching tzinfo 1.2.50m
32mInstalling tzinfo 1.2.50m
32mFetching activesupport 5.2.30m
32mInstalling activesupport 5.2.30m
Using public_suffix 3.0.3
Using addressable 2.5.2
32mFetching ast 2.4.00m
32mInstalling ast 2.4.00m
Using bundler 1.16.5
32mFetching hitimes 1.3.10m
32mInstalling hitimes 1.3.1 with native extensions0m
32mFetching timers 4.0.40m
32mInstalling timers 4.0.40m
32mFetching celluloid 0.16.00m
32mInstalling celluloid 0.16.00m
Using colorator 1.1.0
32mFetching colorize 0.8.10m
32mInstalling colorize 0.8.10m
32mFetching ffi 1.10.00m
32mInstalling ffi 1.10.0 with native extensions0m
32mFetching ethon 0.12.00m
32mInstalling ethon 0.12.00m
32mFetching multipart-post 2.0.00m
32mInstalling multipart-post 2.0.00m
32mFetching faraday 0.15.40m
32mInstalling faraday 0.15.40m
32mFetching fastimage 2.1.50m
32mInstalling fastimage 2.1.50m
32mFetching json 1.8.60m
32mInstalling json 1.8.6 with native extensions0m
Using rb-fsevent 0.10.3
32mFetching rb-inotify 0.10.00m
32mInstalling rb-inotify 0.10.00m
32mFetching listen 2.10.10m
32mInstalling listen 2.10.10m
32mFetching thor 0.20.30m
32mInstalling thor 0.20.30m
GemWrappers: Can not wrap missing file: thor
32mFetching fontcustom 1.3.80m
32mInstalling fontcustom 1.3.80m
GemWrappers: Can not wrap missing file: fontcustom
Using forwardable-extended 2.6.0
Using mercenary 0.3.6
32mFetching mini_portile2 2.4.00m
32mInstalling mini_portile2 2.4.00m
32mFetching nokogiri 1.9.10m
32mInstalling nokogiri 1.9.1 with native extensions0m
GemWrappers: Can not wrap missing file: nokogiri
32mFetching parallel 1.17.00m
32mInstalling parallel 1.17.00m
32mFetching typhoeus 0.8.00m
32mInstalling typhoeus 0.8.00m
32mFetching yell 2.1.00m
32mInstalling yell 2.1.00m
32mFetching html-proofer 3.7.50m
32mInstalling html-proofer 3.7.50m
GemWrappers: Can not wrap missing file: htmlproofer
32mFetching jaro_winkler 1.5.20m
32mInstalling jaro_winkler 1.5.2 with native extensions0m
Using sass-listen 4.0.0
32mFetching sass 3.7.20m
32mInstalling sass 3.7.20m
Using jekyll-sass-converter 1.5.2
32mFetching jekyll-watch 1.2.10m
32mInstalling jekyll-watch 1.2.10m
Using kramdown 1.17.0
32mFetching liquid 4.0.10m
32mInstalling liquid 4.0.10m
32mFetching pathutil 0.16.20m
32mInstalling pathutil 0.16.20m
32mFetching rouge 2.2.10m
32mInstalling rouge 2.2.10m
32mFetching safe_yaml 1.0.50m
32mInstalling safe_yaml 1.0.50m
32mFetching jekyll 3.6.30m
32mInstalling jekyll 3.6.30m
32mFetching jekyll-bits 0.150m
32mInstalling jekyll-bits 0.150m
32mFetching jekyll-feed 0.11.00m
32mInstalling jekyll-feed 0.11.00m
32mFetching sawyer 0.8.10m
32mInstalling sawyer 0.8.10m
32mFetching octokit 4.14.00m
32mInstalling octokit 4.14.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.30m
32mInstalling jekyll-plantuml 1.3.30m
32mFetching jekyll-redirect-from 0.14.00m
32mInstalling jekyll-redirect-from 0.14.00m
32mFetching jekyll-sass 1.1.00m
32mInstalling jekyll-sass 1.1.00m
32mFetching jekyll-sitemap 1.2.00m
32mInstalling jekyll-sitemap 1.2.00m
32mFetching jslint 1.2.00m
32mInstalling jslint 1.2.00m
GemWrappers: Can not wrap missing file: jslint
32mFetching mini_mime 1.0.10m
32mInstalling mini_mime 1.0.10m
32mFetching mail 2.7.10m
32mInstalling mail 2.7.10m
32mFetching multi_json 1.13.10m
32mInstalling multi_json 1.13.10m
32mFetching nuggets 1.6.00m
32mInstalling nuggets 1.6.00m
32mFetching parser 2.6.2.10m
32mInstalling parser 2.6.2.10m
GemWrappers: Can not wrap missing file: ruby-parse
GemWrappers: Can not wrap missing file: ruby-rewrite
32mFetching powerpack 0.1.20m
32mInstalling powerpack 0.1.20m
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.10.00m
32mInstalling ruby-progressbar 1.10.00m
32mFetching unicode-display_width 1.4.10m
32mInstalling unicode-display_width 1.4.10m
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, 74 gems now installed.0m
32mUse `bundle info [gemname]` to see where a bundled gem is installed.0m
32mPost-install message from i18n:0m
HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.
Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.
For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
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 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
+ 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
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 (2702 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 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
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 (6824 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 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 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 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 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 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 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 (2863 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 (2492 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg created (3687 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
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 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 (3278 bytes)
File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (4098 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 (2912 bytes)
File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (2711 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 (2365 bytes)
YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
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 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 -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
314 AMP pages generated in 36.03s
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
++ date +%s
+ sed -i -E 's|"./icons([^"]+)"|"https://www.yegor256.com/css/icons\1?1555856627"|g' /home/r/repo/_temp/icons/icons.css
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
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 (2702 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 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
....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 (6824 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 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 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 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 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 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 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 (2863 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 (2492 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg already exists (3687 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
.........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 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 (3278 bytes)
File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg already exists (4098 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 (2912 bytes)
File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg already exists (2711 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 (2365 bytes)
..YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
..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 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 -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
....................................................265,116 words in the entire blog, 11,555 uniques
/home/r/repo/_site/buffer.rss created (149484 bytes)
/home/r/repo/_site/gnuplot/2014/11/hoc-vs-loc.svg created (59981 bytes)
/home/r/repo/_site/places.txt created (773 bytes)
/home/r/repo/_site/tags.txt created (1248 bytes)
/home/r/repo/_site/stats.svg created (46368 bytes)
/home/r/repo/_site/words.txt created (74336 bytes)
/home/r/repo/_site/css/icons.svg created (23968 bytes)
/home/r/repo/_site/css/icons.ttf created (9880 bytes)
/home/r/repo/_site/css/icons.woff created (6692 bytes)
/home/r/repo/_site/css/icons.eot created (10044 bytes)
/home/r/repo/_site/css/icons.css created (3208 bytes)
done in 166.027 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/2019/01/29/dependency-hell.html:
& suprise 23 498: sup rise, sup-rise, surprise, spires, sunrise, superuser, surprised, surprises, supervise, sprees, upraise, spruce, suppose, apprise, sucrose, suppress, Sprite, sprite, reprise, supreme, surprise's, spire's, spree's
& Gemfile 22 3233: Gem file, Gem-file, Gmail, Gamble, Compile, Armful, Gleeful, Muffle, Gumbel, Camille, Comfier, Gambler, Gambol, Gumboil, Compiler, Gruffly, Gamely, Comfit, Gadfly, Jumble, Gumball, Jumpily
Do you specify exact versions of your dependencies I mean when your software package depends on another one do you write down in your or what have you its version as or just I always thought that it was better to use exact version numbers to avoid the so called dependency hell and I was not alone. However very soon I realized that dynamic versions like give more flexibility. Just a few weeks ago I realized that neither approach is right and found myself a hybrid formula. No suprise I again saw that I was not alone. First let me explain what wrong with fixed dependencies. Say I create a library X which depends on for example a logging facility which is a third-party library not mine. Thus my library X has a dependency. The logging library has a version number such as . I put this text into the file of X Many advocates of fixed dependencies argue that it very important to stick to the version instead of using a more flexible dynamic one (i.e. any version provided it is or newer). Why Because future versions may introduce something that will break the build of X. They may change interfaces rename classes or methods or delete something that I’m using. You never know what the authors of this library might do. That why it better to hard-wire ourselves to and call it a day. This is true. But. What if the library X is used by another library Y which also depends on but needs version . Boom There will be a conflict in library Y Maven the package manager wo not be able to decide which version to use. It will be necessary to resolve the conflict somehow. In the case of Maven it resolvable in the case of for example Rake it not (to my knowledge). To resolve this problem library Y will have to explicitly say which version has to be used. But it ca not be sure that will work correctly with library X. To confirm that it does it would have to be tested by the authors of library X. So the best the creators of library Y can do is to try it and hope for the best. With other build tools like Rake the authors will have no choice but to ask the authors of library X to upgrade to and release a new version. Then library Y will be able to use library X. This problem would not exist if library X depended on instead. But as I mentioned above in that case its authors would be planting a time bomb—eventually one of the future versions will definitely break the build. So what is the solution Here is my formula If you trust the authors of the library use dynamic versioning if you do not use a fixed version. What I mean is do you trust that they are professional enough to think about backward compatibility and to follow the principles of semantic versioning If they are careful enough to not delete or modify something that may affect future versions without also changing the major number of the version then you can trust them. How do you know who to trust I do not trust anyone except my own libraries and a very small number of other libraries which I have reviewed in GitHub and checked the quality of their repositories. Of course you ca not fully trust anyone but this is the formula I have for myself now. You can see how it works in this Gemfile for example. Pay attention to the version numbers. Those that start with or are dynamic while others are fixed. It a hybrid approach but it works for me. Maybe it will help you too.
+ 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
[DEPRECATION] This gem has been renamed to optimist and will no longer be supported. Please switch to optimist as soon as possible.
+ 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-ziE
+ trap 'rm -rf /tmp/jgd-ziE' EXIT
+ CLONE=/tmp/jgd-ziE/clone
+ COPY=/tmp/jgd-ziE/copy
+ echo -e 'Cloning Github repository:'
Cloning Github repository:
+ git clone git@github.com:yegor256/blog.git /tmp/jgd-ziE/clone
Cloning into '/tmp/jgd-ziE/clone'...
Warning: Permanently added 'github.com,140.82.118.4' (RSA) to the list of known hosts.
remote: Enumerating objects: 2824, done.K
remote: Counting objects: 100% (2824/2824),Kdone.K
remote: Compressing objects: 100% (1171/1171),Kdone.K
remote:nTotale12721299(delta02022),7reused319928(delta|1574),Mpack-reused 1269305K
Receiving objects: 100% (1272129/1272129), 518.28 MiB | 10.71 MiB/s, done.
Resolving deltas: 100% (995258/995258), done.
+ cp -R /tmp/jgd-ziE/clone /tmp/jgd-ziE/copy
+ cd /tmp/jgd-ziE/clone
+ echo -e '\nBuilding Jekyll site:'
Building Jekyll site:
+ rm -rf _site
+ '[' -r _config-deploy.yml ']'
+ jekyll build
Configuration file: /tmp/jgd-ziE/clone/_config.yml
Source: /tmp/jgd-ziE/clone
Destination: /tmp/jgd-ziE/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
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-ziE/clone/uml/d892698103dc5669949527a8754c5f26.svg created (2702 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 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
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-ziE/clone/uml/52d3d016f2264bbf660a23d5bbe84203.svg created (6824 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 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 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 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 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 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 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-ziE/clone/uml/19b92d0465e2e819ffcf88cf46c6e333.svg created (2863 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-ziE/clone/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg created (2492 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /tmp/jgd-ziE/clone/uml/d103661ebf8494340e260442970bf4af.svg created (3687 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
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 Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
File /tmp/jgd-ziE/clone/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg created (3278 bytes)
File /tmp/jgd-ziE/clone/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (4098 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-ziE/clone/uml/653125b6c32d12b7325dba52054c09ca.svg created (2912 bytes)
File /tmp/jgd-ziE/clone/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (2711 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-ziE/clone/uml/45d05ab3bd9a93ad88ec209352b62f60.svg created (2365 bytes)
YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
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 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 -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
314 AMP pages generated in 41.22s
places.txt generated
tags.txt generated
stats.svg generated
+ unset BUNDLE_GEMFILE
+ cd /tmp
++ readlink --canonicalize-existing /tmp/jgd-ziE/clone/_glyphs/compile.sh
+ x=/tmp/jgd-ziE/clone/_glyphs/compile.sh
++ dirname /tmp/jgd-ziE/clone/_glyphs/compile.sh
+ dir=/tmp/jgd-ziE/clone/_glyphs
+ target=/tmp/jgd-ziE/clone/_temp/icons
+ mkdir -p /tmp/jgd-ziE/clone/_temp/icons
+ fontcustom compile /tmp/jgd-ziE/clone/_glyphs --output=/tmp/jgd-ziE/clone/_temp/icons --font-name=icons --templates=css --no-hash --force --autowidth
++ date +%s
+ sed -i -E 's|"./icons([^"]+)"|"https://www.yegor256.com/css/icons\1?1555856884"|g' /tmp/jgd-ziE/clone/_temp/icons/icons.css
status Forcing compile.
create /tmp/jgd-ziE/clone/_temp/icons/icons.ttf
/tmp/jgd-ziE/clone/_temp/icons/icons.svg
/tmp/jgd-ziE/clone/_temp/icons/icons.woff
/tmp/jgd-ziE/clone/_temp/icons/icons.eot
create /tmp/jgd-ziE/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-ziE/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-ziE/clone/uml/d892698103dc5669949527a8754c5f26.svg already exists (2702 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 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7)
....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-ziE/clone/uml/52d3d016f2264bbf660a23d5bbe84203.svg already exists (6824 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 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 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 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 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 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 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-ziE/clone/uml/19b92d0465e2e819ffcf88cf46c6e333.svg already exists (2863 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-ziE/clone/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg already exists (2492 bytes)
YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice?
File /tmp/jgd-ziE/clone/uml/d103661ebf8494340e260442970bf4af.svg already exists (3687 bytes)
YouTube video Xj226o2xI9Y found: Chat Bots vs UI
YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots
.........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 Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26)
.....YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3)
..File /tmp/jgd-ziE/clone/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg already exists (3278 bytes)
File /tmp/jgd-ziE/clone/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg already exists (4098 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-ziE/clone/uml/653125b6c32d12b7325dba52054c09ca.svg already exists (2912 bytes)
File /tmp/jgd-ziE/clone/uml/cad4de541e1ab10d3d9d751c661fe63f.svg already exists (2711 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-ziE/clone/uml/45d05ab3bd9a93ad88ec209352b62f60.svg already exists (2365 bytes)
..YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21)
..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 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 -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
....................................................265,116 words in the entire blog, 11,555 uniques
/tmp/jgd-ziE/clone/_site/buffer.rss created (149520 bytes)
/tmp/jgd-ziE/clone/_site/gnuplot/2014/11/hoc-vs-loc.svg created (59981 bytes)
/tmp/jgd-ziE/clone/_site/places.txt created (773 bytes)
/tmp/jgd-ziE/clone/_site/tags.txt created (1248 bytes)
/tmp/jgd-ziE/clone/_site/stats.svg created (46368 bytes)
/tmp/jgd-ziE/clone/_site/words.txt created (74336 bytes)
/tmp/jgd-ziE/clone/_site/css/icons.svg created (23968 bytes)
/tmp/jgd-ziE/clone/_site/css/icons.ttf created (9880 bytes)
/tmp/jgd-ziE/clone/_site/css/icons.woff created (6692 bytes)
/tmp/jgd-ziE/clone/_site/css/icons.eot created (10044 bytes)
/tmp/jgd-ziE/clone/_site/css/icons.css created (3208 bytes)
done in 143.536 seconds.
Auto-regeneration: disabled. Use --watch to enable.
+ '[' '!' -e _site ']'
+ cp -R _site /tmp/jgd-ziE
+ cd /tmp/jgd-ziE
+ rm -rf /tmp/jgd-ziE/clone
+ mv /tmp/jgd-ziE/copy /tmp/jgd-ziE/clone
+ cd /tmp/jgd-ziE/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 256-bloghacks.html 404.html about-me.html 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 get-a-training.html gnuplot images index.html jcg.html js 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 webinars.html words.txt
+ cp -R /tmp/jgd-ziE/_site/2009 /tmp/jgd-ziE/_site/2010 /tmp/jgd-ziE/_site/2013 /tmp/jgd-ziE/_site/2014 /tmp/jgd-ziE/_site/2015 /tmp/jgd-ziE/_site/2016 /tmp/jgd-ziE/_site/2017 /tmp/jgd-ziE/_site/2018 /tmp/jgd-ziE/_site/2019 /tmp/jgd-ziE/_site/256-bloghacks.html /tmp/jgd-ziE/_site/404.html /tmp/jgd-ziE/_site/about-me.html /tmp/jgd-ziE/_site/agenda.html /tmp/jgd-ziE/_site/award.html /tmp/jgd-ziE/_site/best.html /tmp/jgd-ziE/_site/bin /tmp/jgd-ziE/_site/boilerplate.html /tmp/jgd-ziE/_site/books.html /tmp/jgd-ziE/_site/buffer.rss /tmp/jgd-ziE/_site/CNAME /tmp/jgd-ziE/_site/code-ahead.html /tmp/jgd-ziE/_site/contents.html /tmp/jgd-ziE/_site/css /tmp/jgd-ziE/_site/elegant-objects.html /tmp/jgd-ziE/_site/eo-reviews.html /tmp/jgd-ziE/_site/favicon.ico /tmp/jgd-ziE/_site/fiction.html /tmp/jgd-ziE/_site/fonts /tmp/jgd-ziE/_site/get-a-training.html /tmp/jgd-ziE/_site/gnuplot /tmp/jgd-ziE/_site/images /tmp/jgd-ziE/_site/index.html /tmp/jgd-ziE/_site/jcg.html /tmp/jgd-ziE/_site/js /tmp/jgd-ziE/_site/movies.html /tmp/jgd-ziE/_site/non-fiction.html /tmp/jgd-ziE/_site/opensearch.html /tmp/jgd-ziE/_site/opensearch.xml /tmp/jgd-ziE/_site/p /tmp/jgd-ziE/_site/paintings.html /tmp/jgd-ziE/_site/papers.html /tmp/jgd-ziE/_site/pdf /tmp/jgd-ziE/_site/pets.html /tmp/jgd-ziE/_site/places.txt /tmp/jgd-ziE/_site/podcast /tmp/jgd-ziE/_site/quotes.html /tmp/jgd-ziE/_site/redirects.json /tmp/jgd-ziE/_site/robots.txt /tmp/jgd-ziE/_site/rss /tmp/jgd-ziE/_site/rss-jcg.xml /tmp/jgd-ziE/_site/rss.xml /tmp/jgd-ziE/_site/seen.html /tmp/jgd-ziE/_site/shift-m /tmp/jgd-ziE/_site/shift-m.html /tmp/jgd-ziE/_site/sitemap.xml /tmp/jgd-ziE/_site/stats.svg /tmp/jgd-ziE/_site/subscribed.html /tmp/jgd-ziE/_site/tag /tmp/jgd-ziE/_site/tags.txt /tmp/jgd-ziE/_site/talks.html /tmp/jgd-ziE/_site/testimonials.html /tmp/jgd-ziE/_site/trainings.html /tmp/jgd-ziE/_site/txt /tmp/jgd-ziE/_site/uml /tmp/jgd-ziE/_site/webinars.html /tmp/jgd-ziE/_site/words.txt .
+ rm -f README.md
+ git add .
++ date
+ git commit -am 'new version Sun Apr 21 14:29:45 UTC 2019' --allow-empty
[gh-pages aa7c2af8e06] new version Sun Apr 21 14:29:45 UTC 2019
483 files changed, 3065 insertions(+), 3059 deletions(-)
rewrite 2013/12/29/proto.html (62%)
rewrite 2014/04/11/cost-of-loc.html (64%)
rewrite 2014/04/12/puzzle-driven-development-by-roles.html (71%)
rewrite 2014/04/13/no-obligations-principle.html (62%)
rewrite 2014/04/17/how-xdsd-is-different.html (66%)
rewrite 2014/04/20/how-hourly-rate-is-calculated.html (63%)
rewrite 2014/04/21/s3-http-basic-auth.html (64%)
rewrite 2014/07/21/read-only-master-branch.html (67%)
rewrite 2014/08/22/art-of-software-testing.html (66%)
rewrite 2014/09/09/restful-web-sites.html (61%)
rewrite 2014/09/24/why-monetary-awards-dont-work.html (63%)
rewrite 2014/10/05/ten-hosted-continuous-integration-services.html (73%)
rewrite 2014/10/06/software-project-lifecycle.html (70%)
rewrite 2014/10/08/continuous-integration-is-dead.html (65%)
rewrite 2014/10/12/who-is-software-architect.html (63%)
rewrite 2014/10/21/incremental-billing.html (64%)
rewrite 2014/10/29/how-much-do-you-cost.html (77%)
rewrite 2014/11/24/principles-of-bug-tracking.html (70%)
rewrite 2014/12/18/independent-technical-reviews.html (72%)
rewrite 2015/01/05/how-to-be-honest-and-keep-customer.html (71%)
rewrite 2015/01/15/how-to-cut-corners.html (73%)
rewrite 2015/01/26/happy-boss-false-objective.html (62%)
rewrite 2015/02/09/serious-code-reviewer.html (70%)
rewrite 2015/02/16/it-is-not-a-school.html (67%)
rewrite 2015/03/02/team-morale-myths-and-reality.html (71%)
rewrite 2015/04/16/award.html (78%)
rewrite 2015/04/22/favorite-software-books.html (68%)
rewrite 2015/05/04/how-to-protect-business-idea.html (68%)
rewrite 2015/05/13/two-instruments-of-software-architect.html (60%)
rewrite 2015/06/02/how-to-estimate-software-cost.html (63%)
rewrite 2015/06/15/software-outsourcing-survival-guide.html (69%)
rewrite 2015/06/22/valid-reasons-to-reject-bug-fix.html (61%)
rewrite 2015/09/29/mayonnaise.html (66%)
rewrite 2015/10/06/how-to-be-good-office-slave.html (70%)
rewrite 2015/10/16/ridley-scott-and-joseph-goebbels.html (61%)
rewrite 2015/10/17/award-2016.html (67%)
rewrite 2015/10/27/outsourcing-doesnt-work.html (69%)
rewrite 2015/11/03/chatbot-better-than-ui-for-microservice.html (75%)
rewrite 2015/12/16/investors-are-too-scared.html (67%)
rewrite 2015/12/22/why-dont-you-contribute-to-open-source.html (63%)
rewrite 2015/12/29/turnover-is-good-for-maintainability.html (61%)
rewrite 2016/01/05/how-to-punish-employees.html (69%)
rewrite 2016/01/19/how-expensive-is-outsourcing.html (62%)
rewrite 2016/02/03/design-patterns-and-anti-patterns.html (66%)
rewrite 2016/03/01/how-we-interview-programmers.html (61%)
rewrite 2016/03/08/pimp-up-your-resume.html (75%)
rewrite 2016/03/28/unspoken-secrets-of-elevator-pitch.html (65%)
rewrite 2016/04/08/revenue-may-kill-startup.html (60%)
rewrite 2016/05/17/convertible-notes.html (70%)
rewrite 2016/05/24/who-is-project-manager.html (70%)
rewrite 2016/06/03/conference-mistakes.html (65%)
rewrite 2016/06/21/how-to-hire-programmer.html (63%)
rewrite 2016/07/11/mistakes-in-agile-manifesto.html (72%)
rewrite 2016/07/21/convince-me.html (60%)
rewrite 2016/08/05/distributed-teams-are-higher-quality.html (62%)
rewrite 2016/08/15/what-is-wrong-object-oriented-programming.html (66%)
rewrite 2016/12/06/how-to-pay-programmers-less.html (66%)
rewrite 2017/01/03/how-much-you-love-conflicts.html (67%)
rewrite 2017/01/24/career-advice.html (71%)
rewrite 2017/02/14/stackoverflow-is-your-tool.html (61%)
rewrite 2017/02/21/say-no-to-google-recruiters.html (62%)
rewrite 2017/02/28/too-many-classes.html (63%)
rewrite 2017/03/24/tdd-that-works.html (68%)
rewrite 2017/03/28/solid.html (63%)
rewrite 2017/05/02/remote-slaves.html (63%)
rewrite 2017/06/06/gluten-free-management.html (65%)
rewrite 2017/06/27/my-environment.html (70%)
rewrite 2017/07/04/sexism.html (60%)
rewrite 2017/07/18/sexual-harassment.html (60%)
rewrite 2017/07/25/my-favorite-websites.html (65%)
rewrite 2017/08/01/how-to-manage-a-manager.html (63%)
rewrite 2017/08/22/to-be-nice-or-not.html (63%)
rewrite 2017/09/19/what-motivates-me.html (68%)
rewrite 2017/10/03/java9.html (72%)
rewrite 2017/11/28/microtasking.html (74%)
rewrite 2018/01/09/micro-budgeting.html (62%)
rewrite 2018/01/23/sociotech-skills.html (61%)
rewrite 2018/03/06/speed-vs-quality.html (61%)
rewrite 2018/03/21/zerocracy-announcement.html (65%)
rewrite 2018/04/10/learning-by-refactoring.html (71%)
rewrite 2018/04/17/how-to-be-lazy.html (65%)
rewrite 2018/05/08/open-source-attributes.html (71%)
rewrite 2018/06/26/are-you-an-architect.html (72%)
rewrite 2018/08/14/seventy-percent.html (61%)
rewrite 2018/08/29/soft-skills.html (64%)
rewrite 2018/10/09/can-you-control-us.html (61%)
rewrite 2018/10/16/dont-make-me-guess.html (60%)
rewrite 2018/11/27/you-can-do-better.html (70%)
rewrite 2018/12/11/unit-testing-anti-patterns.html (64%)
rewrite 2018/12/18/silicon-valley-criticism.html (71%)
rewrite 2018/12/25/speaker-cheat-sheet.html (70%)
rewrite 2019/01/15/what-if-architect-is-wrong.html (64%)
rewrite 2019/01/22/10x-paychecks.html (63%)
rewrite 2019/02/12/silicon-valley-benefits.html (69%)
rewrite 2019/04/09/beg-them.html (62%)
rewrite contents.html (80%)
rewrite elegant-objects.html (83%)
rewrite index.html (75%)
rewrite jcg.html (77%)
rewrite movies.html (75%)
rewrite p/10/index.html (74%)
rewrite p/11/index.html (73%)
rewrite p/13/index.html (74%)
rewrite p/14/index.html (65%)
rewrite p/2/index.html (72%)
rewrite p/3/index.html (74%)
rewrite p/4/index.html (73%)
rewrite p/5/index.html (74%)
rewrite p/6/index.html (76%)
rewrite p/7/index.html (70%)
rewrite p/8/index.html (73%)
rewrite p/9/index.html (71%)
rewrite pets.html (63%)
rewrite podcast/2017/4.html (87%)
rewrite shift-m.html (63%)
rewrite shift-m/2017/6.html (88%)
rewrite shift-m/2017/7.html (88%)
rewrite shift-m/2018/27.html (88%)
rewrite shift-m/2018/28.html (85%)
rewrite shift-m/2018/29.html (87%)
rewrite shift-m/2018/30.html (86%)
rewrite shift-m/2018/31.html (86%)
rewrite shift-m/2018/32.html (88%)
rewrite shift-m/2018/33.html (84%)
rewrite shift-m/2018/34.html (88%)
rewrite shift-m/2018/35.html (88%)
rewrite shift-m/2018/36.html (87%)
rewrite shift-m/2018/37.html (87%)
rewrite shift-m/2018/38.html (87%)
rewrite tag/agile.html (60%)
rewrite tag/devops.html (62%)
rewrite tag/java.html (76%)
rewrite tag/jcabi.html (63%)
rewrite tag/management.html (74%)
rewrite tag/mood.html (62%)
rewrite tag/oop.html (69%)
rewrite tag/pets.html (60%)
copy tag/{devops.html => rultor.html} (65%)
rewrite tag/testing.html (60%)
rewrite talks.html (88%)
rewrite webinars.html (76%)
+ git push origin gh-pages
+ sed 's|git@github.com:yegor256/blog.git|[skipped]|g'
Warning: Permanently added 'github.com,140.82.118.4' (RSA) to the list of known hosts.
To github.com:yegor256/blog.git
4ef71ca2e05..aa7c2af8e06 gh-pages -> gh-pages
+ echo -e '\nCleaning up:'
Cleaning up:
+ rm -rf /tmp/jgd-ziE/clone
+ rm -rf ''
+ rm -rf /tmp/jgd-ziE
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R rultor repo
+ cd repo
container 06a3d6ef18e65cd2a0e94404197f4743912042d69737159f8f65e9f06c1ba71f is dead
Sun Apr 21 16:30:34 CEST 2019