+ set -e + set -o pipefail ++ dirname ./run.sh + cd . + echo 1465 + echo '2.0-SNAPSHOT BUILD' 2.0-SNAPSHOT BUILD + date Sun Apr 20 19:06:38 UTC 2025 + uptime 19:06:38 up 1 min, 0 users, load average: 1.51, 0.46, 0.16 + head=git@github.com:yegor256/blog.git + ff=default + image=yegor256/rultor-image + rebase=false + squash=false + 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'\''\'\'''\'''\'' '\'';'\'' '\''bundle lock --no-color'\'' '\'';'\'' '\''bundle install --no-color'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 bundle exec rake'\'' '\'';'\'' '\''mkdir ~/.ssh'\'' '\'';'\'' '\''mv ../id_rsa ../id_rsa.pub ~/.ssh'\'' '\'';'\'' '\''chmod -R 600 ~/.ssh/*'\'' '\'';'\'' '\''echo -e "Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null" > ~/.ssh/config'\'' '\'';'\'' '\''git config --global user.email "rultor@yegor256.com"'\'' '\'';'\'' '\''git config --global user.name "Rultor"'\'' '\'';'\'' '\''echo -e "chatgpt-translate:\n api_key_file: $(pwd)/../chatgpt-key.txt" > _config-deploy.yml'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 jgd'\'' '\'';'\'' '\''rvm default 2.7.6 && source /usr/local/rvm/scripts/rvm'\'' '\'';'\'' '\''ruby -v'\'' '\'';'\'' '\''gem install ffi -v 1.16.3'\'' '\'';'\'' '\''gem install fontcustom -v 2.0.0'\'' '\'';'\'' '\''fontcustom --version'\'' '\'';'\'' '\''"$(pwd)/_glyphs/compile.sh" /tmp/icons'\'' '\'';'\'' '\''git checkout gh-pages'\'' '\'';'\'' '\''git pull'\'' '\'';'\'' '\''for e in svg ttf woff eot css; do cp "/tmp/icons/icons.${e}" css; git add "css/icons.${e}"; done'\'' '\'';'\'' '\''git commit -am '\''\'\'''\''new glyphs'\''\'\'''\'' || echo no changes in glyphs'\'' '\'';'\'' '\''git push origin gh-pages'\'' '\'';'\'' )' '--env=head_branch=master' '--env=author=yegor256') + scripts=('export '\''head=git@github.com:yegor256/blog.git'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=yegor256'\''' ';' 'bundle lock --no-color' ';' 'bundle install --no-color' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 bundle exec rake' ';' 'mkdir ~/.ssh' ';' 'mv ../id_rsa ../id_rsa.pub ~/.ssh' ';' 'chmod -R 600 ~/.ssh/*' ';' 'echo -e "Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null" > ~/.ssh/config' ';' 'git config --global user.email "rultor@yegor256.com"' ';' 'git config --global user.name "Rultor"' ';' 'echo -e "chatgpt-translate:\n api_key_file: $(pwd)/../chatgpt-key.txt" > _config-deploy.yml' ';' 'LC_ALL=en_US.UTF-8 jgd' ';' 'rvm default 2.7.6 && source /usr/local/rvm/scripts/rvm' ';' 'ruby -v' ';' 'gem install ffi -v 1.16.3' ';' 'gem install fontcustom -v 2.0.0' ';' 'fontcustom --version' ';' '"$(pwd)/_glyphs/compile.sh" /tmp/icons' ';' 'git checkout gh-pages' ';' 'git pull' ';' 'for e in svg ttf woff eot css; do cp "/tmp/icons/icons.${e}" css; git add "css/icons.${e}"; done' ';' 'git commit -am '\''new glyphs'\'' || echo no changes in glyphs' ';' 'git push origin gh-pages' ';') + directory=repo + container=yegor256_blog_777 + as_root=false + hostname ip-172-31-26-220 + pwd /tmp/rultor-dSqa + git --version git version 2.34.1 + docker --version Docker version 25.0.3, build 4debf41 + mkdir -p /home/ubuntu/.ssh + echo -e 'Host github.com\n\tStrictHostKeyChecking no\n' + chmod 600 /home/ubuntu/.ssh/config + git clone git@github.com:yegor256/blog.git repo Cloning into 'repo'... Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. Updating files: 100% (1722/1722), done. + 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'\''' ';' 'bundle lock --no-color' ';' 'bundle install --no-color' ';' 'export JEKYLL_ENV=production' ';' 'LC_ALL=en_US.UTF-8 bundle exec rake' ';' 'mkdir ~/.ssh' ';' 'mv ../id_rsa ../id_rsa.pub ~/.ssh' ';' 'chmod -R 600 ~/.ssh/*' ';' 'echo -e "Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null" > ~/.ssh/config' ';' 'git config --global user.email "rultor@yegor256.com"' ';' 'git config --global user.name "Rultor"' ';' 'echo -e "chatgpt-translate:\n api_key_file: $(pwd)/../chatgpt-key.txt" > _config-deploy.yml' ';' 'LC_ALL=en_US.UTF-8 jgd' ';' 'rvm default 2.7.6 && source /usr/local/rvm/scripts/rvm' ';' 'ruby -v' ';' 'gem install ffi -v 1.16.3' ';' 'gem install fontcustom -v 2.0.0' ';' 'fontcustom --version' ';' '"$(pwd)/_glyphs/compile.sh" /tmp/icons' ';' 'git checkout gh-pages' ';' 'git pull' ';' 'for e in svg ttf woff eot css; do cp "/tmp/icons/icons.${e}" css; git add "css/icons.${e}"; done' ';' 'git commit -am '\''new glyphs'\'' || echo no changes in glyphs' ';' 'git push origin gh-pages' ';' + rm -rf .gnupg + set -ex + cd repo + docker_when_possible + true ++ tail -n 1 ++ sed 's/ /\n/g' ++ uptime + load=0.30 ++ bc ++ echo 0.30 '>' 30 + '[' 0 -eq 1 ']' + echo 'load average is 0.30, low enough to run a new Docker container' load average is 0.30, low enough to run a new Docker container + break + cd .. + '[' -n repo ']' ++ tr -cd a-z0-9 ++ head -c 8 ++ dd if=/dev/urandom bs=10k count=1 + use_image=yegor256/rultor-piyguk1a + docker build repo -t yegor256/rultor-piyguk1a #0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 1.16kB done #1 DONE 0.1s #2 [internal] load metadata for docker.io/yegor256/rultor-image:1.24.0 #2 DONE 0.3s #3 [internal] load .dockerignore #3 transferring context: 2B done #3 DONE 0.0s #4 [internal] load build context #4 transferring context: 27.32kB done #4 DONE 0.0s #5 [1/9] FROM docker.io/yegor256/rultor-image:1.24.0@sha256:183145a1ee07aff04b992ff3478c86b34eacc5f241c6d4a711c39e2687e07d0e #5 resolve docker.io/yegor256/rultor-image:1.24.0@sha256:183145a1ee07aff04b992ff3478c86b34eacc5f241c6d4a711c39e2687e07d0e 0.0s done #5 sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 11.64MB / 29.54MB 0.2s #5 sha256:183145a1ee07aff04b992ff3478c86b34eacc5f241c6d4a711c39e2687e07d0e 5.81kB / 5.81kB done #5 sha256:4fe06bbcf73e766230da42584c9dce5988a35100224414d3dd10035daa248e36 16.73kB / 16.73kB done #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 0B / 47.35MB 0.2s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 0B / 241.77MB 0.2s #5 sha256:6fdf9d57c7703822bb2609f60c4ce16cba8e9760d7f157447adad062cf127013 170B / 170B 0.1s done #5 sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 20.97MB / 29.54MB 0.4s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 7.57MB / 47.35MB 0.4s #5 sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 24.12MB / 29.54MB 0.5s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 10.64MB / 47.35MB 0.5s #5 sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 29.54MB / 29.54MB 0.7s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 15.73MB / 47.35MB 0.7s #5 sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 29.54MB / 29.54MB 0.7s done #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 18.87MB / 47.35MB 0.9s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 0B / 1.68GB 0.9s #5 extracting sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 24.12MB / 47.35MB 1.1s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 14.68MB / 241.77MB 1.1s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 28.31MB / 47.35MB 1.4s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 33.55MB / 47.35MB 1.7s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 36.70MB / 47.35MB 1.9s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 28.31MB / 241.77MB 2.0s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 40.89MB / 47.35MB 2.2s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 46.14MB / 47.35MB 2.4s #5 sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 47.35MB / 47.35MB 2.5s done #5 sha256:0989603b9c78f4a95c0908a3beb6bf0ddf9d292486f2ee743595cd16e8827dbf 0B / 3.49MB 2.6s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 41.94MB / 241.77MB 2.7s #5 sha256:0989603b9c78f4a95c0908a3beb6bf0ddf9d292486f2ee743595cd16e8827dbf 2.10MB / 3.49MB 3.0s #5 sha256:0989603b9c78f4a95c0908a3beb6bf0ddf9d292486f2ee743595cd16e8827dbf 3.49MB / 3.49MB 3.2s done #5 sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 0B / 12.36MB 3.2s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 54.53MB / 241.77MB 3.4s #5 sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 2.10MB / 12.36MB 3.5s #5 sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 6.29MB / 12.36MB 3.7s #5 sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 10.49MB / 12.36MB 3.9s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 67.11MB / 241.77MB 4.0s #5 sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 12.36MB / 12.36MB 4.0s done #5 sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 0B / 10.72MB 4.0s #5 extracting sha256:9cb31e2e37eab1bff50f727e979fcacb509e225fb853433a6fe21d2fb34e6305 3.1s done #5 extracting sha256:6fdf9d57c7703822bb2609f60c4ce16cba8e9760d7f157447adad062cf127013 done #5 sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 2.10MB / 10.72MB 4.4s #5 sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 5.24MB / 10.72MB 4.5s #5 sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 8.39MB / 10.72MB 4.6s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 85.98MB / 241.77MB 4.8s #5 sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 10.72MB / 10.72MB 4.7s done #5 extracting sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 #5 sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 0B / 12.62MB 4.8s #5 sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 3.35MB / 12.62MB 5.0s #5 sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 7.34MB / 12.62MB 5.1s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 100.66MB / 241.77MB 5.3s #5 sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 12.58MB / 12.62MB 5.3s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 90.18MB / 1.68GB 5.5s #5 sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 12.62MB / 12.62MB 5.4s done #5 sha256:206d2c40dab638ed69a858ea7d088c404e5158006727205205c414a28aac20a0 0B / 3.26MB 5.5s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 115.34MB / 241.77MB 5.7s #5 sha256:206d2c40dab638ed69a858ea7d088c404e5158006727205205c414a28aac20a0 1.05MB / 3.26MB 5.7s #5 sha256:206d2c40dab638ed69a858ea7d088c404e5158006727205205c414a28aac20a0 3.26MB / 3.26MB 5.8s done #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 0B / 376.04MB 5.8s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 130.02MB / 241.77MB 6.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 20.97MB / 376.04MB 6.7s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 144.70MB / 241.77MB 6.8s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 159.38MB / 241.77MB 7.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 42.99MB / 376.04MB 7.5s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 171.97MB / 241.77MB 7.8s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 62.91MB / 376.04MB 8.2s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 186.49MB / 241.77MB 8.3s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 176.16MB / 1.68GB 8.6s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 200.28MB / 241.77MB 8.9s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 81.79MB / 376.04MB 8.9s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 212.86MB / 241.77MB 9.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 103.81MB / 376.04MB 9.7s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 225.44MB / 241.77MB 9.8s #5 extracting sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 5.1s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 239.08MB / 241.77MB 10.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 123.73MB / 376.04MB 10.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 142.61MB / 376.04MB 10.8s #5 sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 241.77MB / 241.77MB 11.0s done #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 0B / 23.06MB 11.0s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 263.19MB / 1.68GB 11.4s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 161.48MB / 376.04MB 11.4s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 3.15MB / 23.06MB 11.4s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 7.33MB / 23.06MB 11.6s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 9.44MB / 23.06MB 11.7s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 13.63MB / 23.06MB 11.8s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 18.87MB / 23.06MB 12.0s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 185.60MB / 376.04MB 12.2s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 23.06MB / 23.06MB 12.2s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 207.74MB / 376.04MB 12.8s #5 sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 23.06MB / 23.06MB 12.9s done #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 0B / 342.93MB 13.1s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 228.59MB / 376.04MB 13.4s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 17.83MB / 342.93MB 13.9s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 350.22MB / 1.68GB 14.1s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 248.51MB / 376.04MB 14.2s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 36.70MB / 342.93MB 14.6s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 269.48MB / 376.04MB 14.9s #5 extracting sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 10.2s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 58.72MB / 342.93MB 15.3s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 288.36MB / 376.04MB 15.6s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 77.59MB / 342.93MB 15.9s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 308.79MB / 376.04MB 16.4s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 98.57MB / 342.93MB 16.6s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 435.16MB / 1.68GB 17.2s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 328.20MB / 376.04MB 17.2s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 120.59MB / 342.93MB 17.4s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 348.13MB / 376.04MB 17.9s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 139.46MB / 342.93MB 18.1s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 368.05MB / 376.04MB 18.7s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 160.43MB / 342.93MB 18.9s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 181.40MB / 342.93MB 19.5s #5 sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 376.04MB / 376.04MB 19.6s done #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 0B / 1.14GB 19.8s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 521.14MB / 1.68GB 20.0s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 199.68MB / 342.93MB 20.1s #5 extracting sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 15.4s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 218.10MB / 342.93MB 20.8s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 235.93MB / 342.93MB 21.4s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 59.77MB / 1.14GB 22.0s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 259.00MB / 342.93MB 22.2s #5 extracting sha256:b1b8e573ea09503745b70428cecac45aca25946dcc69cfb864be5dd6162273c2 17.8s done #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 279.97MB / 342.93MB 22.9s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 606.08MB / 1.68GB 23.0s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 297.80MB / 342.93MB 23.6s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 117.44MB / 1.14GB 24.2s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 316.67MB / 342.93MB 24.3s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 336.59MB / 342.93MB 25.0s #5 sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 342.93MB / 342.93MB 25.7s done #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 691.01MB / 1.68GB 25.9s #5 sha256:d8f398d41642fdd2d400e257d43eb341ba1a575388733e95a7a297bdc06341a1 0B / 1.07MB 25.9s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 178.26MB / 1.14GB 26.1s #5 sha256:d8f398d41642fdd2d400e257d43eb341ba1a575388733e95a7a297bdc06341a1 1.07MB / 1.07MB 26.0s done #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 0B / 63.73MB 26.1s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 7.34MB / 63.73MB 26.5s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 14.68MB / 63.73MB 26.7s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 24.12MB / 63.73MB 27.0s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 30.41MB / 63.73MB 27.2s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 35.04MB / 63.73MB 27.4s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 39.85MB / 63.73MB 27.6s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 44.04MB / 63.73MB 27.8s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 50.33MB / 63.73MB 28.0s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 236.98MB / 1.14GB 28.3s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 5.0s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 58.72MB / 63.73MB 28.3s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 63.73MB / 63.73MB 28.6s #5 sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 63.73MB / 63.73MB 28.6s done #5 sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 0B / 3.35MB 28.7s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 781.19MB / 1.68GB 28.9s #5 sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 2.10MB / 3.35MB 28.9s #5 sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 3.35MB / 3.35MB 29.1s #5 sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 3.35MB / 3.35MB 29.1s done #5 sha256:39620eda63295f8dc7d6ce1bff8650fe9ad1da90363fa6600d1083e34c149ff4 0B / 412B 29.3s #5 sha256:39620eda63295f8dc7d6ce1bff8650fe9ad1da90363fa6600d1083e34c149ff4 412B / 412B 29.3s done #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 0B / 18.90MB 29.6s #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 4.19MB / 18.90MB 29.7s #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 9.44MB / 18.90MB 29.9s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 295.96MB / 1.14GB 30.1s #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 14.68MB / 18.90MB 30.1s #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 18.90MB / 18.90MB 30.3s #5 sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 18.90MB / 18.90MB 30.8s done #5 sha256:bf2832135ec0676462a11f7e362d12bc6fec0303b5312dce0055ea010633b8ab 0B / 357B 31.0s #5 sha256:bf2832135ec0676462a11f7e362d12bc6fec0303b5312dce0055ea010633b8ab 357B / 357B 31.1s #5 sha256:bf2832135ec0676462a11f7e362d12bc6fec0303b5312dce0055ea010633b8ab 357B / 357B 31.1s done #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 0B / 33.27MB 31.4s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 868.22MB / 1.68GB 31.5s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 2.10MB / 33.27MB 31.7s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 5.24MB / 33.27MB 31.8s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 7.34MB / 33.27MB 31.9s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 9.44MB / 33.27MB 32.0s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 356.52MB / 1.14GB 32.2s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 13.63MB / 33.27MB 32.2s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 18.87MB / 33.27MB 32.4s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 20.97MB / 33.27MB 32.5s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 28.31MB / 33.27MB 32.7s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 30.41MB / 33.27MB 32.8s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 33.27MB / 33.27MB 32.9s #5 sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 33.27MB / 33.27MB 33.3s done #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 10.3s #5 sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 0B / 6.41MB 33.6s #5 sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 1.05MB / 6.41MB 33.7s #5 sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 5.24MB / 6.41MB 33.9s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 417.33MB / 1.14GB 34.1s #5 sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 6.41MB / 6.41MB 34.1s #5 sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 6.41MB / 6.41MB 34.1s done #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 955.25MB / 1.68GB 34.5s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 0B / 46.24MB 34.5s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 4.19MB / 46.24MB 34.8s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 11.53MB / 46.24MB 35.1s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 14.68MB / 46.24MB 35.2s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 17.83MB / 46.24MB 35.4s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 22.02MB / 46.24MB 35.6s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 28.31MB / 46.24MB 35.8s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 32.51MB / 46.24MB 36.0s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 36.70MB / 46.24MB 36.2s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 39.85MB / 46.24MB 36.4s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 476.05MB / 1.14GB 36.5s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 44.04MB / 46.24MB 36.5s #5 sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 46.24MB / 46.24MB 36.7s done #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 0B / 272.22MB 36.8s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 13.76MB / 272.22MB 37.4s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.04GB / 1.68GB 37.9s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 32.51MB / 272.22MB 38.1s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 533.73MB / 1.14GB 38.6s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 15.3s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 46.14MB / 272.22MB 38.6s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 60.82MB / 272.22MB 39.1s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 75.50MB / 272.22MB 39.6s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 94.37MB / 272.22MB 40.2s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 108.00MB / 272.22MB 40.7s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 595.21MB / 1.14GB 40.9s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.13GB / 1.68GB 41.1s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 124.78MB / 272.22MB 41.4s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 138.68MB / 272.22MB 41.9s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 158.33MB / 272.22MB 42.6s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 655.36MB / 1.14GB 43.1s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 171.97MB / 272.22MB 43.1s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 20.4s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 185.60MB / 272.22MB 43.6s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 200.28MB / 272.22MB 44.1s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.22GB / 1.68GB 44.2s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 218.10MB / 272.22MB 44.8s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 717.23MB / 1.14GB 45.4s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 233.83MB / 272.22MB 45.4s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 247.46MB / 272.22MB 45.9s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 262.14MB / 272.22MB 46.5s #5 sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 272.22MB / 272.22MB 46.9s done #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 0B / 119.44MB 47.0s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.30GB / 1.68GB 47.1s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 775.95MB / 1.14GB 47.4s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 6.32MB / 119.44MB 47.4s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 12.58MB / 119.44MB 47.6s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 19.92MB / 119.44MB 47.9s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 26.21MB / 119.44MB 48.1s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 33.55MB / 119.44MB 48.4s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 25.4s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 44.04MB / 119.44MB 48.7s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 52.43MB / 119.44MB 49.0s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 60.82MB / 119.44MB 49.3s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 833.62MB / 1.14GB 49.4s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 72.35MB / 119.44MB 49.7s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 81.79MB / 119.44MB 50.1s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.39GB / 1.68GB 50.2s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 89.13MB / 119.44MB 50.4s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 96.47MB / 119.44MB 50.6s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 103.81MB / 119.44MB 50.9s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 112.20MB / 119.44MB 51.2s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 118.49MB / 119.44MB 51.4s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 891.77MB / 1.14GB 51.5s #5 sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 119.44MB / 119.44MB 51.5s done #5 sha256:e5e0772939b22cf669993c8d0b2d0632da37946abe12b2067c29c53a90adc3ae 0B / 258B 51.5s #5 sha256:e5e0772939b22cf669993c8d0b2d0632da37946abe12b2067c29c53a90adc3ae 258B / 258B 51.5s done #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.48GB / 1.68GB 52.9s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 953.16MB / 1.14GB 53.0s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 30.5s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 1.01GB / 1.14GB 54.6s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.56GB / 1.68GB 55.2s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 1.07GB / 1.14GB 56.2s #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.65GB / 1.68GB 57.5s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 1.13GB / 1.14GB 57.8s #5 sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 1.14GB / 1.14GB 58.2s done #5 sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 1.68GB / 1.68GB 58.4s done #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 35.5s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 40.6s #5 extracting sha256:d98471df16b3de6f4ec5546d4f221eff18d109fdf318ccf6170639c142862f57 44.9s done #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 5.0s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 10.1s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 15.2s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 20.3s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 25.3s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 30.4s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 35.7s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 40.7s #5 extracting sha256:d91bad0881f60540efe4a5537ad90e9dffd304fc623174db085f3ae43ed8c2df 41.4s done #5 extracting sha256:0989603b9c78f4a95c0908a3beb6bf0ddf9d292486f2ee743595cd16e8827dbf #5 extracting sha256:0989603b9c78f4a95c0908a3beb6bf0ddf9d292486f2ee743595cd16e8827dbf 0.3s done #5 extracting sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 0.1s #5 extracting sha256:be0e4fe934acad62db81cea9fe81f3021a30c51cb6c2efb04ca59de497ff5afe 0.9s done #5 extracting sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 0.1s #5 extracting sha256:836583b1a84e64322181f49b403372ffb21c9b14ee5a6244905632b3b8de5d15 0.5s done #5 extracting sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e #5 extracting sha256:9a7a8a989f2165fb2333eeca57f972435da56af2df70c0efaa71ee473e700a7e 0.4s done #5 extracting sha256:206d2c40dab638ed69a858ea7d088c404e5158006727205205c414a28aac20a0 #5 extracting sha256:206d2c40dab638ed69a858ea7d088c404e5158006727205205c414a28aac20a0 0.5s done #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 5.0s #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 10.1s #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 15.1s #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 20.2s #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 26.3s #5 extracting sha256:7e814560871de806dd4782089691dec4387d288a97504433ef2dc8aa73b14fa1 27.4s done #5 extracting sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d #5 extracting sha256:3e6884fb6bef24d8e935a42d8be52161fd7f9e95ef0e437a491cc39e70dba89d 3.6s done #5 extracting sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 #5 extracting sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 5.1s #5 extracting sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 10.1s #5 extracting sha256:efc2cb2da4908100bb99f27016268405ade9bf48de0357f6ff79eb0780914950 14.5s done #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 5.1s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 10.2s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 15.2s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 20.3s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 25.3s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 30.4s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 35.4s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 40.4s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 45.4s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 50.5s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 55.6s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 60.7s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 65.7s #5 extracting sha256:a2685e4ec0a3d05f91c86f301885e23d601065bf6fd37420fb8ff457c7940cb9 69.9s done #5 extracting sha256:d8f398d41642fdd2d400e257d43eb341ba1a575388733e95a7a297bdc06341a1 #5 extracting sha256:d8f398d41642fdd2d400e257d43eb341ba1a575388733e95a7a297bdc06341a1 0.3s done #5 extracting sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 #5 extracting sha256:00d87e9826759d797bf347d84f61b90f403479e02e1af4532711e36b84f8ee53 3.0s done #5 extracting sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 0.1s #5 extracting sha256:0a47604816a95dc6022e390ecff3caa68826af1cbbc45f46e191841efcfd7b0f 0.3s done #5 extracting sha256:39620eda63295f8dc7d6ce1bff8650fe9ad1da90363fa6600d1083e34c149ff4 done #5 extracting sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 0.1s #5 extracting sha256:1e5066b6f93cd240bfed14a2b6dc7c09cfda064312cfccd925710bcdc8198756 0.3s done #5 extracting sha256:bf2832135ec0676462a11f7e362d12bc6fec0303b5312dce0055ea010633b8ab done #5 extracting sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 0.1s #5 extracting sha256:17c9f809a0ebbce0c734f2145e7da041dce4f31315b7d85afc4ffb92caa5b421 2.0s done #5 extracting sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd #5 extracting sha256:791d75dcb5dd1c470844ccb1e98c8b45f212b793dd061826e4232dcf53c85bdd 0.6s done #5 extracting sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb #5 extracting sha256:4d856b07c9bd516918924213a836ac74e03cffec98b4d9ebd4a151ba637832bb 2.7s done #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 5.0s #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 10.1s #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 15.4s #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 20.4s #5 extracting sha256:08fb6625faae48e4c5b41aa4f7c9c951c1d9fa9dc1dd858bac257153a4ad0eaa 20.5s done #5 extracting sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 #5 extracting sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 5.1s #5 extracting sha256:6fbcea1fd5f06ae330aa279baf5b0d01d0a8d992626edc33c69f2172500fb777 7.5s done #5 extracting sha256:e5e0772939b22cf669993c8d0b2d0632da37946abe12b2067c29c53a90adc3ae done #5 DONE 269.2s #6 [2/9] RUN apt-get -y update --fix-missing && apt-get -y install aspell aspell-en graphviz gnuplot s3cmd fontforge liblapack-dev cmake libxml2-utils shellcheck plantuml && plantuml -version && aspell --version && fontforge --version && gnuplot --version && cmake --version && shellcheck --version #6 5.015 Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease #6 5.016 Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] #6 5.016 Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB] #6 5.076 Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB] #6 5.121 Get:5 https://deb.nodesource.com/node_18.x nodistro InRelease [12.1 kB] #6 5.501 Get:6 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy InRelease [18.1 kB] #6 5.605 Get:7 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease [24.6 kB] #6 5.707 Get:8 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease [24.6 kB] #6 6.210 Get:9 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [47.7 kB] #6 6.363 Get:10 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [2,788 kB] #6 6.369 Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [4,246 kB] #6 6.481 Get:12 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1,243 kB] #6 6.522 Get:13 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [4,000 kB] #6 6.562 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1,542 kB] #6 6.618 Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [3,140 kB] #6 6.685 Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [55.7 kB] #6 6.819 Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [82.7 kB] #6 6.835 Get:18 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [35.2 kB] #6 6.959 Get:19 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages [11.6 kB] #6 7.406 Get:20 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy/main amd64 Packages [34.3 kB] #6 7.616 Get:21 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 Packages [4,109 B] #6 7.929 Get:22 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 Packages [233 kB] #6 8.625 Fetched 17.9 MB in 3s (5,504 kB/s) #6 8.625 Reading package lists... #6 10.05 Reading package lists... #6 11.20 Building dependency tree... #6 11.45 Reading state information... #6 11.66 aspell is already the newest version (0.60.8-4build1). #6 11.66 s3cmd is already the newest version (2.2.0-1). #6 11.66 cmake is already the newest version (3.22.1-1ubuntu1.22.04.2). #6 11.66 The following additional packages will be installed: #6 11.66 aglfn binfmt-support default-jre-headless ditaa fastjar fontforge-common #6 11.66 fonts-cantarell fonts-inconsolata fonts-liberation gnuplot-data gnuplot-qt #6 11.66 icc-profiles-free jarwrapper java-wrappers junit4 libann0 libapache-pom-java #6 11.66 libavalon-framework-java libbatik-java libblas-dev libblas3 libcdt5 #6 11.66 libcgraph6 libcommons-cli-java libcommons-io-java libcommons-logging-java #6 11.66 libcommons-parent-java libegl-mesa0 libegl1 libevdev2 libfontbox2-java #6 11.66 libfontforge4 libfop-java libgbm1 libgfortran5 libgts-0.7-5 libgts-bin #6 11.66 libgudev-1.0-0 libgvc6 libgvpr2 libhamcrest-java libinput-bin libinput10 #6 11.66 libjaxp1.3-java libjericho-html-java libjlatexmath-java liblab-gamut1 #6 11.66 liblapack3 liblua5.4-0 libmd4c0 libmtdev1 libnotify4 libpathplan4 #6 11.66 libpcre2-16-0 libqdox-java libqt5core5a libqt5dbus5 libqt5gui5 #6 11.66 libqt5network5 libqt5printsupport5 libqt5svg5 libqt5widgets5 libsaxon-java #6 11.66 libspiro1 libuninameslist1 libwacom-bin libwacom-common libwacom9 #6 11.66 libwayland-server0 libwoff1 libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 #6 11.66 libxalan2-java libxcb-icccm4 libxcb-image0 libxcb-keysyms1 #6 11.66 libxcb-render-util0 libxcb-util1 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 #6 11.66 libxerces2-java libxkbcommon-x11-0 libxml-commons-external-java #6 11.66 libxml-commons-resolver1.1-java libxmlgraphics-commons-java #6 11.66 qt5-gtk-platformtheme qttranslations5-l10n #6 11.66 Suggested packages: #6 11.66 default-jre fontforge-doc fontforge-extras potrace python3-fontforge #6 11.66 gnuplot-doc gsfonts graphviz-doc libavalon-framework-java-doc librhino-java #6 11.66 liblapack-doc libcommons-io-java-doc libcommons-logging-java-doc #6 11.66 libexcalibur-logkit-java liblog4j1.2-java gnome-shell | notification-daemon #6 11.67 libqdox-java-doc ant junit qt5-image-formats-plugins qtwayland5 #6 11.67 libjdom1-java libsaxon-java-doc libxalan2-java-doc libbsf-java libxsltc-java #6 11.67 libxerces2-java-doc libxml-commons-resolver1.1-java-doc #6 11.67 libxmlgraphics-commons-java-doc #6 11.98 The following NEW packages will be installed: #6 11.98 aglfn aspell-en binfmt-support default-jre-headless ditaa fastjar fontforge #6 11.98 fontforge-common fonts-cantarell fonts-inconsolata fonts-liberation gnuplot #6 11.98 gnuplot-data gnuplot-qt graphviz icc-profiles-free jarwrapper java-wrappers #6 11.98 junit4 libann0 libapache-pom-java libavalon-framework-java libbatik-java #6 11.98 libblas-dev libblas3 libcdt5 libcgraph6 libcommons-cli-java #6 11.98 libcommons-io-java libcommons-logging-java libcommons-parent-java #6 11.98 libegl-mesa0 libegl1 libevdev2 libfontbox2-java libfontforge4 libfop-java #6 11.98 libgbm1 libgfortran5 libgts-0.7-5 libgts-bin libgudev-1.0-0 libgvc6 libgvpr2 #6 11.98 libhamcrest-java libinput-bin libinput10 libjaxp1.3-java #6 11.98 libjericho-html-java libjlatexmath-java liblab-gamut1 liblapack-dev #6 11.98 liblapack3 liblua5.4-0 libmd4c0 libmtdev1 libnotify4 libpathplan4 #6 11.98 libpcre2-16-0 libqdox-java libqt5core5a libqt5dbus5 libqt5gui5 #6 11.98 libqt5network5 libqt5printsupport5 libqt5svg5 libqt5widgets5 libsaxon-java #6 11.98 libspiro1 libuninameslist1 libwacom-bin libwacom-common libwacom9 #6 11.98 libwayland-server0 libwoff1 libwxbase3.0-0v5 libwxgtk3.0-gtk3-0v5 #6 11.98 libxalan2-java libxcb-icccm4 libxcb-image0 libxcb-keysyms1 #6 11.98 libxcb-render-util0 libxcb-util1 libxcb-xinerama0 libxcb-xinput0 libxcb-xkb1 #6 11.98 libxerces2-java libxkbcommon-x11-0 libxml-commons-external-java #6 11.98 libxml-commons-resolver1.1-java libxmlgraphics-commons-java plantuml #6 11.98 qt5-gtk-platformtheme qttranslations5-l10n shellcheck #6 11.98 The following packages will be upgraded: #6 11.99 libxml2-utils #6 12.16 1 upgraded, 95 newly installed, 0 to remove and 83 not upgraded. #6 12.16 Need to get 75.3 MB of archives. #6 12.16 After this operation, 216 MB of additional disk space will be used. #6 12.16 Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5core5a amd64 5.15.3+dfsg-2ubuntu0.2 [2,006 kB] #6 12.47 Get:2 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 libpcre2-16-0 amd64 10.42-3+ubuntu22.04.1+deb.sury.org+1 [213 kB] #6 12.75 Get:3 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 libxml2-utils amd64 2.9.14+dfsg-0.1+ubuntu22.04.1+deb.sury.org+1 [119 kB] #6 12.81 Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libwayland-server0 amd64 1.20.0-1ubuntu0.1 [34.3 kB] #6 12.81 Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgbm1 amd64 23.2.1-1ubuntu3.1~22.04.3 [33.5 kB] #6 12.81 Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libegl-mesa0 amd64 23.2.1-1ubuntu3.1~22.04.3 [118 kB] #6 12.82 Get:7 http://archive.ubuntu.com/ubuntu jammy/main amd64 libegl1 amd64 1.4.0-1 [28.6 kB] #6 12.82 Get:8 http://archive.ubuntu.com/ubuntu jammy/main amd64 libevdev2 amd64 1.12.1+dfsg-1 [39.5 kB] #6 12.82 Get:9 http://archive.ubuntu.com/ubuntu jammy/main amd64 libmtdev1 amd64 1.1.6-1build4 [14.5 kB] #6 12.82 Get:10 http://archive.ubuntu.com/ubuntu jammy/main amd64 libgudev-1.0-0 amd64 1:237-2build1 [16.3 kB] #6 12.82 Get:11 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwacom-common all 2.2.0-1 [54.3 kB] #6 12.82 Get:12 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwacom9 amd64 2.2.0-1 [22.0 kB] #6 12.82 Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libinput-bin amd64 1.20.0-1ubuntu0.3 [19.9 kB] #6 12.89 Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libinput10 amd64 1.20.0-1ubuntu0.3 [131 kB] #6 12.97 Get:15 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libmd4c0 amd64 0.4.8-1 [42.0 kB] #6 12.97 Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5dbus5 amd64 5.15.3+dfsg-2ubuntu0.2 [222 kB] #6 12.97 Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5network5 amd64 5.15.3+dfsg-2ubuntu0.2 [731 kB] #6 12.99 Get:18 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-icccm4 amd64 0.4.1-1.1build2 [11.5 kB] #6 13.00 Get:19 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-util1 amd64 0.4.0-1build2 [11.4 kB] #6 13.00 Get:20 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-image0 amd64 0.4.0-2 [11.5 kB] #6 13.00 Get:21 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-keysyms1 amd64 0.4.0-1build3 [8,746 B] #6 13.00 Get:22 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-render-util0 amd64 0.3.9-1build3 [10.3 kB] #6 13.00 Get:23 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-xinerama0 amd64 1.14-3ubuntu3 [5,414 B] #6 13.04 Get:24 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-xinput0 amd64 1.14-3ubuntu3 [34.3 kB] #6 13.12 Get:25 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxcb-xkb1 amd64 1.14-3ubuntu3 [32.8 kB] #6 13.12 Get:26 http://archive.ubuntu.com/ubuntu jammy/main amd64 libxkbcommon-x11-0 amd64 1.4.0-1 [14.4 kB] #6 13.12 Get:27 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5gui5 amd64 5.15.3+dfsg-2ubuntu0.2 [3,722 kB] #6 13.29 Get:28 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5widgets5 amd64 5.15.3+dfsg-2ubuntu0.2 [2,561 kB] #6 13.42 Get:29 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libqt5svg5 amd64 5.15.3-1 [149 kB] #6 13.43 Get:30 http://archive.ubuntu.com/ubuntu jammy/main amd64 aspell-en all 2018.04.16-0-1 [299 kB] #6 13.43 Get:31 http://archive.ubuntu.com/ubuntu jammy/main amd64 binfmt-support amd64 2.2.1-2 [55.8 kB] #6 13.43 Get:32 http://archive.ubuntu.com/ubuntu jammy/main amd64 default-jre-headless amd64 2:1.11-72build2 [3,042 B] #6 13.43 Get:33 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fastjar amd64 2:0.98-7 [67.1 kB] #6 13.44 Get:34 http://archive.ubuntu.com/ubuntu jammy/universe amd64 jarwrapper all 0.78 [10.8 kB] #6 13.44 Get:35 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libhamcrest-java all 1.3-9 [386 kB] #6 13.45 Get:36 http://archive.ubuntu.com/ubuntu jammy/universe amd64 junit4 all 4.13.2-1 [344 kB] #6 13.46 Get:37 http://archive.ubuntu.com/ubuntu jammy/universe amd64 java-wrappers all 0.3 [9,560 B] #6 13.50 Get:38 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libjaxp1.3-java all 1.3.05-6 [227 kB] #6 13.53 Get:39 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libxml-commons-external-java all 1.4.01-5 [240 kB] #6 13.54 Get:40 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libxml-commons-resolver1.1-java all 1.2-11 [97.6 kB] #6 13.55 Get:41 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libxerces2-java all 2.12.1-1 [1,437 kB] #6 13.62 Get:42 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libxalan2-java all 2.7.2-4 [3,416 kB] #6 13.78 Get:43 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libapache-pom-java all 18-1 [4,720 B] #6 13.79 Get:44 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-parent-java all 43-1 [10.8 kB] #6 13.79 Get:45 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-io-java all 2.11.0-2 [297 kB] #6 13.80 Get:46 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-logging-java all 1.2-2 [60.3 kB] #6 13.80 Get:47 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libxmlgraphics-commons-java all 2.6-1 [612 kB] #6 13.83 Get:48 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libbatik-java all 1.14-1ubuntu0.2 [3,866 kB] #6 14.02 Get:49 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libcommons-cli-java all 1.4-2 [55.8 kB] #6 14.02 Get:50 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libjericho-html-java all 3.2-2 [185 kB] #6 14.03 Get:51 http://archive.ubuntu.com/ubuntu jammy/universe amd64 ditaa all 0.10+ds1-1.2 [129 kB] #6 14.03 Get:52 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 fontforge-common all 1:20201107~dfsg-4+deb11u1build0.22.04.1 [2,160 kB] #6 14.14 Get:53 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libspiro1 amd64 1:20200505-2 [17.1 kB] #6 14.14 Get:54 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libuninameslist1 amd64 20211114-1 [473 kB] #6 14.16 Get:55 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwoff1 amd64 1.0.2-1build4 [45.2 kB] #6 14.16 Get:56 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libfontforge4 amd64 1:20201107~dfsg-4+deb11u1build0.22.04.1 [2,167 kB] #6 14.27 Get:57 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 fontforge amd64 1:20201107~dfsg-4+deb11u1build0.22.04.1 [1,523 kB] #6 14.34 Get:58 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-cantarell all 0.303-2 [286 kB] #6 14.35 Get:59 http://archive.ubuntu.com/ubuntu jammy/universe amd64 fonts-inconsolata all 001.010-6build1 [61.4 kB] #6 14.35 Get:60 http://archive.ubuntu.com/ubuntu jammy/main amd64 fonts-liberation all 1:1.07.4-11 [822 kB] #6 14.40 Get:61 http://archive.ubuntu.com/ubuntu jammy/universe amd64 aglfn all 1.7+git20191031.4036a9c-2 [30.6 kB] #6 14.40 Get:62 http://archive.ubuntu.com/ubuntu jammy/universe amd64 gnuplot-data all 5.4.2+dfsg2-2 [75.3 kB] #6 14.40 Get:63 http://archive.ubuntu.com/ubuntu jammy/universe amd64 liblua5.4-0 amd64 5.4.4-1 [152 kB] #6 14.41 Get:64 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libqt5printsupport5 amd64 5.15.3+dfsg-2ubuntu0.2 [214 kB] #6 14.42 Get:65 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libwxbase3.0-0v5 amd64 3.0.5.1+dfsg-4 [881 kB] #6 14.46 Get:66 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libnotify4 amd64 0.7.9-3ubuntu5.22.04.1 [20.3 kB] #6 14.46 Get:67 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libwxgtk3.0-gtk3-0v5 amd64 3.0.5.1+dfsg-4 [4,368 kB] #6 14.67 Get:68 http://archive.ubuntu.com/ubuntu jammy/universe amd64 gnuplot-qt amd64 5.4.2+dfsg2-2 [1,156 kB] #6 14.73 Get:69 http://archive.ubuntu.com/ubuntu jammy/universe amd64 gnuplot all 5.4.2+dfsg2-2 [3,576 B] #6 14.73 Get:70 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libann0 amd64 1.1.2+doc-7build1 [26.0 kB] #6 14.73 Get:71 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libcdt5 amd64 2.42.2-6ubuntu0.1 [21.1 kB] #6 14.73 Get:72 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libcgraph6 amd64 2.42.2-6ubuntu0.1 [45.4 kB] #6 14.73 Get:73 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libgts-0.7-5 amd64 0.7.6+darcs121130-5 [164 kB] #6 14.74 Get:74 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libpathplan4 amd64 2.42.2-6ubuntu0.1 [23.4 kB] #6 14.74 Get:75 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libgvc6 amd64 2.42.2-6ubuntu0.1 [724 kB] #6 14.78 Get:76 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libgvpr2 amd64 2.42.2-6ubuntu0.1 [192 kB] #6 14.78 Get:77 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 liblab-gamut1 amd64 2.42.2-6ubuntu0.1 [1,965 kB] #6 14.88 Get:78 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 graphviz amd64 2.42.2-6ubuntu0.1 [653 kB] #6 14.91 Get:79 http://archive.ubuntu.com/ubuntu jammy/main amd64 icc-profiles-free all 2.0.1+dfsg-1.1 [214 kB] #6 14.92 Get:80 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libavalon-framework-java all 4.2.0-10 [71.3 kB] #6 14.92 Get:81 http://archive.ubuntu.com/ubuntu jammy/main amd64 libblas3 amd64 3.10.0-2ubuntu1 [228 kB] #6 14.93 Get:82 http://archive.ubuntu.com/ubuntu jammy/main amd64 libblas-dev amd64 3.10.0-2ubuntu1 [164 kB] #6 14.94 Get:83 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libfontbox2-java all 2.0.25-1 [1,502 kB] #6 15.01 Get:84 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libqdox-java all 1.12.1-3 [172 kB] #6 15.02 Get:85 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libfop-java all 1:2.6-2 [10.1 MB] #6 15.52 Get:86 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgfortran5 amd64 12.3.0-1ubuntu1~22.04 [879 kB] #6 15.55 Get:87 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libgts-bin amd64 0.7.6+darcs121130-5 [44.3 kB] #6 15.56 Get:88 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libjlatexmath-java all 1.0.7-3 [990 kB] #6 15.60 Get:89 http://archive.ubuntu.com/ubuntu jammy/main amd64 liblapack3 amd64 3.10.0-2ubuntu1 [2,504 kB] #6 15.72 Get:90 http://archive.ubuntu.com/ubuntu jammy/main amd64 liblapack-dev amd64 3.10.0-2ubuntu1 [4,774 kB] #6 15.96 Get:91 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libsaxon-java all 1:6.5.5-12 [574 kB] #6 15.98 Get:92 http://archive.ubuntu.com/ubuntu jammy/main amd64 libwacom-bin amd64 2.2.0-1 [13.6 kB] #6 15.98 Get:93 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 plantuml all 1:1.2020.2+ds-1ubuntu0.1 [8,022 kB] #6 16.37 Get:94 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 qt5-gtk-platformtheme amd64 5.15.3+dfsg-2ubuntu0.2 [130 kB] #6 16.38 Get:95 http://archive.ubuntu.com/ubuntu jammy/universe amd64 qttranslations5-l10n all 5.15.3-1 [1,983 kB] #6 16.47 Get:96 http://archive.ubuntu.com/ubuntu jammy/universe amd64 shellcheck amd64 0.8.0-2 [2,359 kB] #6 18.64 debconf: delaying package configuration, since apt-utils is not installed #6 18.68 Fetched 75.3 MB in 5s (16.4 MB/s) #6 18.87 Selecting previously unselected package libpcre2-16-0:amd64. (Reading database ...a93612.files and directories currently installed.) #6 19.38 Preparing to unpack .../00-libpcre2-16-0_10.42-3+ubuntu22.04.1+deb.sury.org+1_amd64.deb ... #6 19.40 Unpacking libpcre2-16-0:amd64 (10.42-3+ubuntu22.04.1+deb.sury.org+1) ... #6 19.68 Selecting previously unselected package libqt5core5a:amd64. #6 19.69 Preparing to unpack .../01-libqt5core5a_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 19.71 Unpacking libqt5core5a:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 19.93 Selecting previously unselected package libwayland-server0:amd64. #6 19.94 Preparing to unpack .../02-libwayland-server0_1.20.0-1ubuntu0.1_amd64.deb ... #6 19.95 Unpacking libwayland-server0:amd64 (1.20.0-1ubuntu0.1) ... #6 20.01 Selecting previously unselected package libgbm1:amd64. #6 20.02 Preparing to unpack .../03-libgbm1_23.2.1-1ubuntu3.1~22.04.3_amd64.deb ... #6 20.03 Unpacking libgbm1:amd64 (23.2.1-1ubuntu3.1~22.04.3) ... #6 20.09 Selecting previously unselected package libegl-mesa0:amd64. #6 20.10 Preparing to unpack .../04-libegl-mesa0_23.2.1-1ubuntu3.1~22.04.3_amd64.deb ... #6 20.11 Unpacking libegl-mesa0:amd64 (23.2.1-1ubuntu3.1~22.04.3) ... #6 20.17 Selecting previously unselected package libegl1:amd64. #6 20.18 Preparing to unpack .../05-libegl1_1.4.0-1_amd64.deb ... #6 20.19 Unpacking libegl1:amd64 (1.4.0-1) ... #6 20.25 Selecting previously unselected package libevdev2:amd64. #6 20.25 Preparing to unpack .../06-libevdev2_1.12.1+dfsg-1_amd64.deb ... #6 20.26 Unpacking libevdev2:amd64 (1.12.1+dfsg-1) ... #6 20.32 Selecting previously unselected package libmtdev1:amd64. #6 20.33 Preparing to unpack .../07-libmtdev1_1.1.6-1build4_amd64.deb ... #6 20.34 Unpacking libmtdev1:amd64 (1.1.6-1build4) ... #6 20.46 Selecting previously unselected package libgudev-1.0-0:amd64. #6 20.47 Preparing to unpack .../08-libgudev-1.0-0_1%3a237-2build1_amd64.deb ... #6 20.47 Unpacking libgudev-1.0-0:amd64 (1:237-2build1) ... #6 20.52 Selecting previously unselected package libwacom-common. #6 20.53 Preparing to unpack .../09-libwacom-common_2.2.0-1_all.deb ... #6 20.54 Unpacking libwacom-common (2.2.0-1) ... #6 20.64 Selecting previously unselected package libwacom9:amd64. #6 20.65 Preparing to unpack .../10-libwacom9_2.2.0-1_amd64.deb ... #6 20.66 Unpacking libwacom9:amd64 (2.2.0-1) ... #6 20.70 Selecting previously unselected package libinput-bin. #6 20.71 Preparing to unpack .../11-libinput-bin_1.20.0-1ubuntu0.3_amd64.deb ... #6 20.72 Unpacking libinput-bin (1.20.0-1ubuntu0.3) ... #6 20.78 Selecting previously unselected package libinput10:amd64. #6 20.79 Preparing to unpack .../12-libinput10_1.20.0-1ubuntu0.3_amd64.deb ... #6 20.80 Unpacking libinput10:amd64 (1.20.0-1ubuntu0.3) ... #6 20.86 Selecting previously unselected package libmd4c0:amd64. #6 20.87 Preparing to unpack .../13-libmd4c0_0.4.8-1_amd64.deb ... #6 20.87 Unpacking libmd4c0:amd64 (0.4.8-1) ... #6 20.93 Selecting previously unselected package libqt5dbus5:amd64. #6 20.94 Preparing to unpack .../14-libqt5dbus5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 20.95 Unpacking libqt5dbus5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 21.01 Selecting previously unselected package libqt5network5:amd64. #6 21.02 Preparing to unpack .../15-libqt5network5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 21.03 Unpacking libqt5network5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 21.10 Selecting previously unselected package libxcb-icccm4:amd64. #6 21.11 Preparing to unpack .../16-libxcb-icccm4_0.4.1-1.1build2_amd64.deb ... #6 21.11 Unpacking libxcb-icccm4:amd64 (0.4.1-1.1build2) ... #6 21.17 Selecting previously unselected package libxcb-util1:amd64. #6 21.18 Preparing to unpack .../17-libxcb-util1_0.4.0-1build2_amd64.deb ... #6 21.18 Unpacking libxcb-util1:amd64 (0.4.0-1build2) ... #6 21.24 Selecting previously unselected package libxcb-image0:amd64. #6 21.25 Preparing to unpack .../18-libxcb-image0_0.4.0-2_amd64.deb ... #6 21.26 Unpacking libxcb-image0:amd64 (0.4.0-2) ... #6 21.31 Selecting previously unselected package libxcb-keysyms1:amd64. #6 21.32 Preparing to unpack .../19-libxcb-keysyms1_0.4.0-1build3_amd64.deb ... #6 21.33 Unpacking libxcb-keysyms1:amd64 (0.4.0-1build3) ... #6 21.39 Selecting previously unselected package libxcb-render-util0:amd64. #6 21.40 Preparing to unpack .../20-libxcb-render-util0_0.3.9-1build3_amd64.deb ... #6 21.41 Unpacking libxcb-render-util0:amd64 (0.3.9-1build3) ... #6 21.46 Selecting previously unselected package libxcb-xinerama0:amd64. #6 21.47 Preparing to unpack .../21-libxcb-xinerama0_1.14-3ubuntu3_amd64.deb ... #6 21.48 Unpacking libxcb-xinerama0:amd64 (1.14-3ubuntu3) ... #6 21.53 Selecting previously unselected package libxcb-xinput0:amd64. #6 21.54 Preparing to unpack .../22-libxcb-xinput0_1.14-3ubuntu3_amd64.deb ... #6 21.55 Unpacking libxcb-xinput0:amd64 (1.14-3ubuntu3) ... #6 21.61 Selecting previously unselected package libxcb-xkb1:amd64. #6 21.62 Preparing to unpack .../23-libxcb-xkb1_1.14-3ubuntu3_amd64.deb ... #6 21.62 Unpacking libxcb-xkb1:amd64 (1.14-3ubuntu3) ... #6 21.68 Selecting previously unselected package libxkbcommon-x11-0:amd64. #6 21.69 Preparing to unpack .../24-libxkbcommon-x11-0_1.4.0-1_amd64.deb ... #6 21.70 Unpacking libxkbcommon-x11-0:amd64 (1.4.0-1) ... #6 21.77 Selecting previously unselected package libqt5gui5:amd64. #6 21.78 Preparing to unpack .../25-libqt5gui5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 21.80 Unpacking libqt5gui5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 21.94 Selecting previously unselected package libqt5widgets5:amd64. #6 21.95 Preparing to unpack .../26-libqt5widgets5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 21.96 Unpacking libqt5widgets5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 22.05 Selecting previously unselected package libqt5svg5:amd64. #6 22.06 Preparing to unpack .../27-libqt5svg5_5.15.3-1_amd64.deb ... #6 22.07 Unpacking libqt5svg5:amd64 (5.15.3-1) ... #6 22.13 Selecting previously unselected package aspell-en. #6 22.14 Preparing to unpack .../28-aspell-en_2018.04.16-0-1_all.deb ... #6 22.15 Unpacking aspell-en (2018.04.16-0-1) ... #6 22.24 Selecting previously unselected package binfmt-support. #6 22.25 Preparing to unpack .../29-binfmt-support_2.2.1-2_amd64.deb ... #6 22.26 Unpacking binfmt-support (2.2.1-2) ... #6 22.43 Selecting previously unselected package default-jre-headless. #6 22.44 Preparing to unpack .../30-default-jre-headless_2%3a1.11-72build2_amd64.deb ... #6 22.45 Unpacking default-jre-headless (2:1.11-72build2) ... #6 22.50 Selecting previously unselected package fastjar. #6 22.51 Preparing to unpack .../31-fastjar_2%3a0.98-7_amd64.deb ... #6 22.52 Unpacking fastjar (2:0.98-7) ... #6 22.62 Selecting previously unselected package jarwrapper. #6 22.63 Preparing to unpack .../32-jarwrapper_0.78_all.deb ... #6 22.63 Unpacking jarwrapper (0.78) ... #6 22.68 Selecting previously unselected package libhamcrest-java. #6 22.69 Preparing to unpack .../33-libhamcrest-java_1.3-9_all.deb ... #6 22.69 Unpacking libhamcrest-java (1.3-9) ... #6 22.78 Selecting previously unselected package junit4. #6 22.79 Preparing to unpack .../34-junit4_4.13.2-1_all.deb ... #6 22.80 Unpacking junit4 (4.13.2-1) ... #6 22.84 Selecting previously unselected package java-wrappers. #6 22.85 Preparing to unpack .../35-java-wrappers_0.3_all.deb ... #6 22.86 Unpacking java-wrappers (0.3) ... #6 22.90 Selecting previously unselected package libjaxp1.3-java. #6 22.91 Preparing to unpack .../36-libjaxp1.3-java_1.3.05-6_all.deb ... #6 22.92 Unpacking libjaxp1.3-java (1.3.05-6) ... #6 22.99 Selecting previously unselected package libxml-commons-external-java. #6 23.00 Preparing to unpack .../37-libxml-commons-external-java_1.4.01-5_all.deb ... #6 23.00 Unpacking libxml-commons-external-java (1.4.01-5) ... #6 23.07 Selecting previously unselected package libxml-commons-resolver1.1-java. #6 23.08 Preparing to unpack .../38-libxml-commons-resolver1.1-java_1.2-11_all.deb ... #6 23.09 Unpacking libxml-commons-resolver1.1-java (1.2-11) ... #6 23.14 Selecting previously unselected package libxerces2-java. #6 23.16 Preparing to unpack .../39-libxerces2-java_2.12.1-1_all.deb ... #6 23.16 Unpacking libxerces2-java (2.12.1-1) ... #6 23.33 Selecting previously unselected package libxalan2-java. #6 23.34 Preparing to unpack .../40-libxalan2-java_2.7.2-4_all.deb ... #6 23.35 Unpacking libxalan2-java (2.7.2-4) ... #6 23.68 Selecting previously unselected package libapache-pom-java. #6 23.69 Preparing to unpack .../41-libapache-pom-java_18-1_all.deb ... #6 23.70 Unpacking libapache-pom-java (18-1) ... #6 23.74 Selecting previously unselected package libcommons-parent-java. #6 23.75 Preparing to unpack .../42-libcommons-parent-java_43-1_all.deb ... #6 23.76 Unpacking libcommons-parent-java (43-1) ... #6 23.80 Selecting previously unselected package libcommons-io-java. #6 23.81 Preparing to unpack .../43-libcommons-io-java_2.11.0-2_all.deb ... #6 23.82 Unpacking libcommons-io-java (2.11.0-2) ... #6 23.86 Selecting previously unselected package libcommons-logging-java. #6 23.87 Preparing to unpack .../44-libcommons-logging-java_1.2-2_all.deb ... #6 23.88 Unpacking libcommons-logging-java (1.2-2) ... #6 23.97 Selecting previously unselected package libxmlgraphics-commons-java. #6 23.98 Preparing to unpack .../45-libxmlgraphics-commons-java_2.6-1_all.deb ... #6 23.99 Unpacking libxmlgraphics-commons-java (2.6-1) ... #6 24.04 Selecting previously unselected package libbatik-java. #6 24.05 Preparing to unpack .../46-libbatik-java_1.14-1ubuntu0.2_all.deb ... #6 24.06 Unpacking libbatik-java (1.14-1ubuntu0.2) ... #6 24.18 Selecting previously unselected package libcommons-cli-java. #6 24.19 Preparing to unpack .../47-libcommons-cli-java_1.4-2_all.deb ... #6 24.19 Unpacking libcommons-cli-java (1.4-2) ... #6 24.24 Selecting previously unselected package libjericho-html-java. #6 24.25 Preparing to unpack .../48-libjericho-html-java_3.2-2_all.deb ... #6 24.26 Unpacking libjericho-html-java (3.2-2) ... #6 24.32 Selecting previously unselected package ditaa. #6 24.33 Preparing to unpack .../49-ditaa_0.10+ds1-1.2_all.deb ... #6 24.34 Unpacking ditaa (0.10+ds1-1.2) ... #6 24.39 Selecting previously unselected package fontforge-common. #6 24.40 Preparing to unpack .../50-fontforge-common_1%3a20201107~dfsg-4+deb11u1build0.22.04.1_all.deb ... #6 24.41 Unpacking fontforge-common (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 25.96 Selecting previously unselected package libspiro1:amd64. #6 25.97 Preparing to unpack .../51-libspiro1_1%3a20200505-2_amd64.deb ... #6 25.98 Unpacking libspiro1:amd64 (1:20200505-2) ... #6 26.03 Selecting previously unselected package libuninameslist1:amd64. #6 26.04 Preparing to unpack .../52-libuninameslist1_20211114-1_amd64.deb ... #6 26.05 Unpacking libuninameslist1:amd64 (20211114-1) ... #6 26.12 Selecting previously unselected package libwoff1:amd64. #6 26.13 Preparing to unpack .../53-libwoff1_1.0.2-1build4_amd64.deb ... #6 26.13 Unpacking libwoff1:amd64 (1.0.2-1build4) ... #6 26.19 Selecting previously unselected package libfontforge4:amd64. #6 26.20 Preparing to unpack .../54-libfontforge4_1%3a20201107~dfsg-4+deb11u1build0.22.04.1_amd64.deb ... #6 26.21 Unpacking libfontforge4:amd64 (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 26.29 Selecting previously unselected package fontforge. #6 26.30 Preparing to unpack .../55-fontforge_1%3a20201107~dfsg-4+deb11u1build0.22.04.1_amd64.deb ... #6 26.31 Unpacking fontforge (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 26.40 Selecting previously unselected package fonts-cantarell. #6 26.41 Preparing to unpack .../56-fonts-cantarell_0.303-2_all.deb ... #6 26.42 Unpacking fonts-cantarell (0.303-2) ... #6 26.48 Selecting previously unselected package fonts-inconsolata. #6 26.49 Preparing to unpack .../57-fonts-inconsolata_001.010-6build1_all.deb ... #6 26.49 Unpacking fonts-inconsolata (001.010-6build1) ... #6 26.54 Selecting previously unselected package fonts-liberation. #6 26.55 Preparing to unpack .../58-fonts-liberation_1%3a1.07.4-11_all.deb ... #6 26.56 Unpacking fonts-liberation (1:1.07.4-11) ... #6 26.69 Selecting previously unselected package aglfn. #6 26.69 Preparing to unpack .../59-aglfn_1.7+git20191031.4036a9c-2_all.deb ... #6 26.70 Unpacking aglfn (1.7+git20191031.4036a9c-2) ... #6 26.75 Selecting previously unselected package gnuplot-data. #6 26.76 Preparing to unpack .../60-gnuplot-data_5.4.2+dfsg2-2_all.deb ... #6 26.77 Unpacking gnuplot-data (5.4.2+dfsg2-2) ... #6 26.83 Selecting previously unselected package liblua5.4-0:amd64. #6 26.84 Preparing to unpack .../61-liblua5.4-0_5.4.4-1_amd64.deb ... #6 26.84 Unpacking liblua5.4-0:amd64 (5.4.4-1) ... #6 26.90 Selecting previously unselected package libqt5printsupport5:amd64. #6 26.91 Preparing to unpack .../62-libqt5printsupport5_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 26.92 Unpacking libqt5printsupport5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 26.97 Selecting previously unselected package libwxbase3.0-0v5:amd64. #6 26.98 Preparing to unpack .../63-libwxbase3.0-0v5_3.0.5.1+dfsg-4_amd64.deb ... #6 26.99 Unpacking libwxbase3.0-0v5:amd64 (3.0.5.1+dfsg-4) ... #6 27.06 Selecting previously unselected package libnotify4:amd64. #6 27.07 Preparing to unpack .../64-libnotify4_0.7.9-3ubuntu5.22.04.1_amd64.deb ... #6 27.08 Unpacking libnotify4:amd64 (0.7.9-3ubuntu5.22.04.1) ... #6 27.13 Selecting previously unselected package libwxgtk3.0-gtk3-0v5:amd64. #6 27.14 Preparing to unpack .../65-libwxgtk3.0-gtk3-0v5_3.0.5.1+dfsg-4_amd64.deb ... #6 27.15 Unpacking libwxgtk3.0-gtk3-0v5:amd64 (3.0.5.1+dfsg-4) ... #6 27.30 Selecting previously unselected package gnuplot-qt. #6 27.31 Preparing to unpack .../66-gnuplot-qt_5.4.2+dfsg2-2_amd64.deb ... #6 27.32 Unpacking gnuplot-qt (5.4.2+dfsg2-2) ... #6 27.38 Selecting previously unselected package gnuplot. #6 27.39 Preparing to unpack .../67-gnuplot_5.4.2+dfsg2-2_all.deb ... #6 27.40 Unpacking gnuplot (5.4.2+dfsg2-2) ... #6 27.45 Selecting previously unselected package libann0. #6 27.46 Preparing to unpack .../68-libann0_1.1.2+doc-7build1_amd64.deb ... #6 27.47 Unpacking libann0 (1.1.2+doc-7build1) ... #6 27.52 Selecting previously unselected package libcdt5:amd64. #6 27.53 Preparing to unpack .../69-libcdt5_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.54 Unpacking libcdt5:amd64 (2.42.2-6ubuntu0.1) ... #6 27.59 Selecting previously unselected package libcgraph6:amd64. #6 27.60 Preparing to unpack .../70-libcgraph6_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.60 Unpacking libcgraph6:amd64 (2.42.2-6ubuntu0.1) ... #6 27.66 Selecting previously unselected package libgts-0.7-5:amd64. #6 27.67 Preparing to unpack .../71-libgts-0.7-5_0.7.6+darcs121130-5_amd64.deb ... #6 27.68 Unpacking libgts-0.7-5:amd64 (0.7.6+darcs121130-5) ... #6 27.74 Selecting previously unselected package libpathplan4:amd64. #6 27.75 Preparing to unpack .../72-libpathplan4_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.75 Unpacking libpathplan4:amd64 (2.42.2-6ubuntu0.1) ... #6 27.81 Selecting previously unselected package libgvc6. #6 27.82 Preparing to unpack .../73-libgvc6_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.83 Unpacking libgvc6 (2.42.2-6ubuntu0.1) ... #6 27.90 Selecting previously unselected package libgvpr2:amd64. #6 27.90 Preparing to unpack .../74-libgvpr2_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.91 Unpacking libgvpr2:amd64 (2.42.2-6ubuntu0.1) ... #6 27.97 Selecting previously unselected package liblab-gamut1:amd64. #6 27.98 Preparing to unpack .../75-liblab-gamut1_2.42.2-6ubuntu0.1_amd64.deb ... #6 27.99 Unpacking liblab-gamut1:amd64 (2.42.2-6ubuntu0.1) ... #6 28.05 Selecting previously unselected package graphviz. #6 28.06 Preparing to unpack .../76-graphviz_2.42.2-6ubuntu0.1_amd64.deb ... #6 28.07 Unpacking graphviz (2.42.2-6ubuntu0.1) ... #6 28.14 Selecting previously unselected package icc-profiles-free. #6 28.15 Preparing to unpack .../77-icc-profiles-free_2.0.1+dfsg-1.1_all.deb ... #6 28.16 Unpacking icc-profiles-free (2.0.1+dfsg-1.1) ... #6 28.24 Selecting previously unselected package libavalon-framework-java. #6 28.25 Preparing to unpack .../78-libavalon-framework-java_4.2.0-10_all.deb ... #6 28.26 Unpacking libavalon-framework-java (4.2.0-10) ... #6 28.33 Selecting previously unselected package libblas3:amd64. #6 28.34 Preparing to unpack .../79-libblas3_3.10.0-2ubuntu1_amd64.deb ... #6 28.35 Unpacking libblas3:amd64 (3.10.0-2ubuntu1) ... #6 28.41 Selecting previously unselected package libblas-dev:amd64. #6 28.42 Preparing to unpack .../80-libblas-dev_3.10.0-2ubuntu1_amd64.deb ... #6 28.43 Unpacking libblas-dev:amd64 (3.10.0-2ubuntu1) ... #6 28.55 Selecting previously unselected package libfontbox2-java. #6 28.56 Preparing to unpack .../81-libfontbox2-java_2.0.25-1_all.deb ... #6 28.57 Unpacking libfontbox2-java (2.0.25-1) ... #6 28.64 Selecting previously unselected package libqdox-java. #6 28.65 Preparing to unpack .../82-libqdox-java_1.12.1-3_all.deb ... #6 28.66 Unpacking libqdox-java (1.12.1-3) ... #6 28.72 Selecting previously unselected package libfop-java. #6 28.73 Preparing to unpack .../83-libfop-java_1%3a2.6-2_all.deb ... #6 28.74 Unpacking libfop-java (1:2.6-2) ... #6 28.89 Selecting previously unselected package libgfortran5:amd64. #6 28.90 Preparing to unpack .../84-libgfortran5_12.3.0-1ubuntu1~22.04_amd64.deb ... #6 28.91 Unpacking libgfortran5:amd64 (12.3.0-1ubuntu1~22.04) ... #6 29.02 Selecting previously unselected package libgts-bin. #6 29.04 Preparing to unpack .../85-libgts-bin_0.7.6+darcs121130-5_amd64.deb ... #6 29.05 Unpacking libgts-bin (0.7.6+darcs121130-5) ... #6 29.10 Selecting previously unselected package libjlatexmath-java. #6 29.11 Preparing to unpack .../86-libjlatexmath-java_1.0.7-3_all.deb ... #6 29.11 Unpacking libjlatexmath-java (1.0.7-3) ... #6 29.25 Selecting previously unselected package liblapack3:amd64. #6 29.26 Preparing to unpack .../87-liblapack3_3.10.0-2ubuntu1_amd64.deb ... #6 29.27 Unpacking liblapack3:amd64 (3.10.0-2ubuntu1) ... #6 29.37 Selecting previously unselected package liblapack-dev:amd64. #6 29.38 Preparing to unpack .../88-liblapack-dev_3.10.0-2ubuntu1_amd64.deb ... #6 29.39 Unpacking liblapack-dev:amd64 (3.10.0-2ubuntu1) ... #6 29.57 Selecting previously unselected package libsaxon-java. #6 29.58 Preparing to unpack .../89-libsaxon-java_1%3a6.5.5-12_all.deb ... #6 29.59 Unpacking libsaxon-java (1:6.5.5-12) ... #6 29.68 Selecting previously unselected package libwacom-bin. #6 29.69 Preparing to unpack .../90-libwacom-bin_2.2.0-1_amd64.deb ... #6 29.70 Unpacking libwacom-bin (2.2.0-1) ... #6 29.75 Preparing to unpack .../91-libxml2-utils_2.9.14+dfsg-0.1+ubuntu22.04.1+deb.sury.org+1_amd64.deb ... #6 29.77 Unpacking libxml2-utils (2.9.14+dfsg-0.1+ubuntu22.04.1+deb.sury.org+1) over (2.9.13+dfsg-1ubuntu0.6) ... #6 29.94 Selecting previously unselected package plantuml. #6 29.94 Preparing to unpack .../92-plantuml_1%3a1.2020.2+ds-1ubuntu0.1_all.deb ... #6 29.95 Unpacking plantuml (1:1.2020.2+ds-1ubuntu0.1) ... #6 30.04 Selecting previously unselected package qt5-gtk-platformtheme:amd64. #6 30.05 Preparing to unpack .../93-qt5-gtk-platformtheme_5.15.3+dfsg-2ubuntu0.2_amd64.deb ... #6 30.06 Unpacking qt5-gtk-platformtheme:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 30.10 Selecting previously unselected package qttranslations5-l10n. #6 30.11 Preparing to unpack .../94-qttranslations5-l10n_5.15.3-1_all.deb ... #6 30.12 Unpacking qttranslations5-l10n (5.15.3-1) ... #6 30.29 Selecting previously unselected package shellcheck. #6 30.30 Preparing to unpack .../95-shellcheck_0.8.0-2_amd64.deb ... #6 30.30 Unpacking shellcheck (0.8.0-2) ... #6 30.42 Setting up fastjar (2:0.98-7) ... #6 30.73 Setting up libwayland-server0:amd64 (1.20.0-1ubuntu0.1) ... #6 30.74 Setting up fonts-cantarell (0.303-2) ... #6 30.75 Setting up libqdox-java (1.12.1-3) ... #6 30.76 Setting up java-wrappers (0.3) ... #6 30.77 Setting up default-jre-headless (2:1.11-72build2) ... #6 30.78 Setting up libxcb-xinput0:amd64 (1.14-3ubuntu3) ... #6 30.79 Setting up libwoff1:amd64 (1.0.2-1build4) ... #6 30.80 Setting up libgbm1:amd64 (23.2.1-1ubuntu3.1~22.04.3) ... #6 30.81 Setting up libcommons-cli-java (1.4-2) ... #6 30.82 Setting up libsaxon-java (1:6.5.5-12) ... #6 30.83 Setting up libspiro1:amd64 (1:20200505-2) ... #6 30.84 Setting up liblab-gamut1:amd64 (2.42.2-6ubuntu0.1) ... #6 30.85 Setting up libxcb-keysyms1:amd64 (0.4.0-1build3) ... #6 30.86 Setting up aspell-en (2018.04.16-0-1) ... #6 31.13 Setting up libxcb-render-util0:amd64 (0.3.9-1build3) ... #6 31.14 Setting up fontforge-common (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 31.15 Setting up libxcb-icccm4:amd64 (0.4.1-1.1build2) ... #6 31.16 Setting up libpcre2-16-0:amd64 (10.42-3+ubuntu22.04.1+deb.sury.org+1) ... #6 31.17 Setting up shellcheck (0.8.0-2) ... #6 31.18 Setting up libxcb-util1:amd64 (0.4.0-1build2) ... #6 31.19 Setting up libjericho-html-java (3.2-2) ... #6 31.20 Setting up libxcb-xkb1:amd64 (1.14-3ubuntu3) ... #6 31.21 Setting up libxcb-image0:amd64 (0.4.0-2) ... #6 31.22 Setting up fonts-inconsolata (001.010-6build1) ... #6 31.23 Setting up libfontbox2-java (2.0.25-1) ... #6 31.24 Setting up libgts-0.7-5:amd64 (0.7.6+darcs121130-5) ... #6 31.25 Setting up libblas3:amd64 (3.10.0-2ubuntu1) ... #6 31.26 update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode #6 31.26 Setting up libegl-mesa0:amd64 (23.2.1-1ubuntu3.1~22.04.3) ... #6 31.27 Setting up libxcb-xinerama0:amd64 (1.14-3ubuntu3) ... #6 31.29 Setting up qttranslations5-l10n (5.15.3-1) ... #6 31.30 Setting up libnotify4:amd64 (0.7.9-3ubuntu5.22.04.1) ... #6 31.31 Setting up libpathplan4:amd64 (2.42.2-6ubuntu0.1) ... #6 31.33 Setting up aglfn (1.7+git20191031.4036a9c-2) ... #6 31.35 Setting up libapache-pom-java (18-1) ... #6 31.37 Setting up libann0 (1.1.2+doc-7build1) ... #6 31.39 Setting up libxkbcommon-x11-0:amd64 (1.4.0-1) ... #6 31.41 Setting up icc-profiles-free (2.0.1+dfsg-1.1) ... #6 31.43 Setting up libxml-commons-resolver1.1-java (1.2-11) ... #6 31.46 Setting up binfmt-support (2.2.1-2) ... #6 31.52 invoke-rc.d: could not determine current runlevel #6 31.53 invoke-rc.d: policy-rc.d denied execution of restart. #6 31.82 Created symlink /etc/systemd/system/multi-user.target.wants/binfmt-support.service → /lib/systemd/system/binfmt-support.service. #6 31.83 Setting up libqt5core5a:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 31.86 Setting up libhamcrest-java (1.3-9) ... #6 31.88 Setting up libgfortran5:amd64 (12.3.0-1ubuntu1~22.04) ... #6 31.90 Setting up libmtdev1:amd64 (1.1.6-1build4) ... #6 31.93 Setting up libuninameslist1:amd64 (20211114-1) ... #6 31.95 Setting up libqt5dbus5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 31.97 Setting up libxml-commons-external-java (1.4.01-5) ... #6 31.98 Setting up fonts-liberation (1:1.07.4-11) ... #6 32.00 Setting up libegl1:amd64 (1.4.0-1) ... #6 32.03 Setting up libavalon-framework-java (4.2.0-10) ... #6 32.05 Setting up libmd4c0:amd64 (0.4.8-1) ... #6 32.07 Setting up liblua5.4-0:amd64 (5.4.4-1) ... #6 32.08 Setting up libwxbase3.0-0v5:amd64 (3.0.5.1+dfsg-4) ... #6 32.11 Setting up libcdt5:amd64 (2.42.2-6ubuntu0.1) ... #6 32.13 Setting up libcgraph6:amd64 (2.42.2-6ubuntu0.1) ... #6 32.15 Setting up libjlatexmath-java (1.0.7-3) ... #6 32.17 Setting up libxerces2-java (2.12.1-1) ... #6 32.19 Setting up libjaxp1.3-java (1.3.05-6) ... #6 32.21 Setting up libxml2-utils (2.9.14+dfsg-0.1+ubuntu22.04.1+deb.sury.org+1) ... #6 32.23 Setting up libevdev2:amd64 (1.12.1+dfsg-1) ... #6 32.25 Setting up libgudev-1.0-0:amd64 (1:237-2build1) ... #6 32.27 Setting up libblas-dev:amd64 (3.10.0-2ubuntu1) ... #6 32.29 update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so to provide /usr/lib/x86_64-linux-gnu/libblas.so (libblas.so-x86_64-linux-gnu) in auto mode #6 32.30 Setting up libwacom-common (2.2.0-1) ... #6 32.32 Setting up junit4 (4.13.2-1) ... #6 32.34 Setting up gnuplot-data (5.4.2+dfsg2-2) ... #6 32.37 Setting up libgts-bin (0.7.6+darcs121130-5) ... #6 32.39 Setting up liblapack3:amd64 (3.10.0-2ubuntu1) ... #6 32.40 update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode #6 32.42 Setting up jarwrapper (0.78) ... #6 32.44 Setting up libwacom9:amd64 (2.2.0-1) ... #6 32.46 Setting up libcommons-parent-java (43-1) ... #6 32.48 Setting up libcommons-logging-java (1.2-2) ... #6 32.50 Setting up libfontforge4:amd64 (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 32.52 Setting up libwxgtk3.0-gtk3-0v5:amd64 (3.0.5.1+dfsg-4) ... #6 32.54 Setting up libqt5network5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 32.56 Setting up libinput-bin (1.20.0-1ubuntu0.3) ... #6 32.58 Setting up libxalan2-java (2.7.2-4) ... #6 32.60 Setting up liblapack-dev:amd64 (3.10.0-2ubuntu1) ... #6 32.61 update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so to provide /usr/lib/x86_64-linux-gnu/liblapack.so (liblapack.so-x86_64-linux-gnu) in auto mode #6 32.63 Setting up libgvc6 (2.42.2-6ubuntu0.1) ... #6 32.95 Setting up libwacom-bin (2.2.0-1) ... #6 32.97 Setting up libgvpr2:amd64 (2.42.2-6ubuntu0.1) ... #6 33.00 Setting up graphviz (2.42.2-6ubuntu0.1) ... #6 33.02 Setting up libinput10:amd64 (1.20.0-1ubuntu0.3) ... #6 33.04 Setting up fontforge (1:20201107~dfsg-4+deb11u1build0.22.04.1) ... #6 33.08 Setting up libcommons-io-java (2.11.0-2) ... #6 33.11 Setting up libqt5gui5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 33.13 Setting up libxmlgraphics-commons-java (2.6-1) ... #6 33.15 Setting up libqt5widgets5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 33.17 Setting up qt5-gtk-platformtheme:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 33.19 Setting up libqt5printsupport5:amd64 (5.15.3+dfsg-2ubuntu0.2) ... #6 33.21 Setting up libbatik-java (1.14-1ubuntu0.2) ... #6 33.23 Setting up libqt5svg5:amd64 (5.15.3-1) ... #6 33.25 Setting up gnuplot-qt (5.4.2+dfsg2-2) ... #6 33.27 update-alternatives: using /usr/bin/gnuplot-qt to provide /usr/bin/gnuplot (gnuplot) in auto mode #6 33.27 update-alternatives: warning: skip creation of /usr/share/man/man1/gnuplot.1.gz because associated file /usr/share/man/man1/gnuplot-qt.1.gz (of link group gnuplot) doesn't exist #6 33.28 Setting up ditaa (0.10+ds1-1.2) ... #6 33.30 Setting up gnuplot (5.4.2+dfsg2-2) ... #6 33.32 Setting up libfop-java (1:2.6-2) ... #6 33.34 Setting up plantuml (1:1.2020.2+ds-1ubuntu0.1) ... #6 33.36 Processing triggers for hicolor-icon-theme (0.17-2) ... #6 37.00 Processing triggers for libc-bin (2.35-0ubuntu3.8) ... #6 37.58 Processing triggers for man-db (2.10.2-1) ... #6 37.81 Processing triggers for shared-mime-info (2.1-2) ... #6 41.11 Processing triggers for mailcap (3.70+nmu1ubuntu1) ... #6 41.15 Processing triggers for fontconfig (2.13.1-4.2ubuntu5) ... #6 41.36 Processing triggers for dictionaries-common (1.28.14) ... #6 41.49 aspell-autobuildhash: processing: en [en-common]. #6 41.65 aspell-autobuildhash: processing: en [en-variant_0]. #6 41.66 aspell-autobuildhash: processing: en [en-variant_1]. #6 41.67 aspell-autobuildhash: processing: en [en-variant_2]. #6 41.68 aspell-autobuildhash: processing: en [en-w_accents-only]. #6 41.70 aspell-autobuildhash: processing: en [en-wo_accents-only]. #6 41.72 aspell-autobuildhash: processing: en [en_AU-variant_0]. #6 41.73 aspell-autobuildhash: processing: en [en_AU-variant_1]. #6 41.74 aspell-autobuildhash: processing: en [en_AU-w_accents-only]. #6 41.75 aspell-autobuildhash: processing: en [en_AU-wo_accents-only]. #6 41.76 aspell-autobuildhash: processing: en [en_CA-variant_0]. #6 41.77 aspell-autobuildhash: processing: en [en_CA-variant_1]. #6 41.78 aspell-autobuildhash: processing: en [en_CA-w_accents-only]. #6 41.80 aspell-autobuildhash: processing: en [en_CA-wo_accents-only]. #6 41.81 aspell-autobuildhash: processing: en [en_GB-ise-w_accents-only]. #6 41.82 aspell-autobuildhash: processing: en [en_GB-ise-wo_accents-only]. #6 41.84 aspell-autobuildhash: processing: en [en_GB-ize-w_accents-only]. #6 41.85 aspell-autobuildhash: processing: en [en_GB-ize-wo_accents-only]. #6 41.86 aspell-autobuildhash: processing: en [en_GB-variant_0]. #6 41.87 aspell-autobuildhash: processing: en [en_GB-variant_1]. #6 41.88 aspell-autobuildhash: processing: en [en_US-w_accents-only]. #6 41.89 aspell-autobuildhash: processing: en [en_US-wo_accents-only]. #6 42.64 PlantUML version 1.2020.02 (Sun Mar 01 10:22:07 UTC 2020) #6 42.64 (GPL source distribution) #6 42.66 Java Runtime: OpenJDK Runtime Environment #6 42.66 JVM: OpenJDK 64-Bit Server VM #6 42.66 Java Version: 17.0.14+7-Ubuntu-122.04.1 #6 42.66 Operating System: Linux #6 42.66 Default Encoding: UTF-8 #6 42.66 Language: en #6 42.66 Country: US #6 42.66 Machine: buildkitsandbox #6 42.66 PLANTUML_LIMIT_SIZE: 4096 #6 42.66 Processors: 1 #6 42.67 Max Memory: 496,697,344 #6 42.67 Total Memory: 32,440,320 #6 42.67 Free Memory: 26,224,624 #6 42.67 Used Memory: 6,215,696 #6 42.67 Thread Active Count: 1 #6 42.67 #6 42.77 The environment variable GRAPHVIZ_DOT has not been set #6 42.77 Dot executable is /usr/bin/dot #6 42.77 Dot version: dot - graphviz version 2.43.0 (0) #6 42.77 Installation seems OK. File generation OK #6 42.78 @(#) International Ispell Version 3.1.20 (but really Aspell 0.60.8) #6 42.80 Copyright (c) 2000-2024. See AUTHORS for Contributors. #6 42.80 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> #6 42.80 with many parts BSD <http://fontforge.org/license.html>. Please read LICENSE. #6 42.80 Version: 20201107 #6 42.80 Based on sources from 2024-06-24 13:55 UTC-ML-D-GDK3. #6 42.80 PythonUI_Init() #6 42.80 copyUIMethodsToBaseTable() #6 42.82 fontforge 20201107 #6 42.82 build date: 2024-06-24 13:55 UTC #6 43.33 gnuplot 5.4 patchlevel 2 #6 43.42 cmake version 3.22.1 #6 43.42 #6 43.42 CMake suite maintained and supported by Kitware (kitware.com/cmake). #6 43.43 ShellCheck - shell script analysis tool #6 43.43 version: 0.8.0 #6 43.43 license: GNU General Public License, version 3 #6 43.43 website: https://www.shellcheck.net #6 DONE 43.6s #7 [3/9] RUN npm install -g eslint@8.44.0 && eslint --version #7 7.264 npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. #7 7.366 npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported #7 7.387 npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead #7 7.429 npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported #7 7.433 npm warn deprecated @humanwhocodes/config-array@0.11.14: Use @eslint/config-array instead #7 7.787 npm warn deprecated eslint@8.44.0: This version is no longer supported. Please see https://eslint.org/version-support for other options. #7 7.804 #7 7.804 added 98 packages in 7s #7 7.805 #7 7.805 24 packages are looking for funding #7 7.806 run `npm fund` for details #7 7.808 npm notice #7 7.808 npm notice New major version of npm available! 10.8.2 -> 11.3.0 #7 7.808 npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.3.0 #7 7.808 npm notice To update run: npm install -g npm@11.3.0 #7 7.808 npm notice #7 8.079 v8.44.0 #7 DONE 8.2s #8 [4/9] RUN git clone https://github.com/htacg/tidy-html5.git _tidy-html5 && cd _tidy-html5/build/cmake && git checkout 5.8.0 && cmake ../.. && make && make install && tidy --version #8 0.303 Cloning into '_tidy-html5'... #8 2.400 Note: switching to '5.8.0'. #8 2.400 #8 2.400 You are in 'detached HEAD' state. You can look around, make experimental #8 2.400 changes and commit them, and you can discard any commits you make in this #8 2.400 state without impacting any branches by switching back to a branch. #8 2.400 #8 2.400 If you want to create a new branch to retain commits you create, you may #8 2.400 do so (now or later) by using -c with the switch command. Example: #8 2.400 #8 2.400 git switch -c <new-branch-name> #8 2.400 #8 2.400 Or undo this operation with: #8 2.400 #8 2.400 git switch - #8 2.400 #8 2.400 Turn off this advice by setting config variable advice.detachedHead to false #8 2.400 #8 2.400 HEAD is now at 1ca3747 Merging gitignore; no version bump. #8 2.797 -- The C compiler identification is GNU 11.4.0 #8 3.013 -- The CXX compiler identification is GNU 11.4.0 #8 3.038 -- Detecting C compiler ABI info #8 3.129 -- Detecting C compiler ABI info - done #8 3.138 -- Check for working C compiler: /usr/bin/cc - skipped #8 3.140 -- Detecting C compile features #8 3.142 -- Detecting C compile features - done #8 3.150 -- Detecting CXX compiler ABI info #8 3.243 -- Detecting CXX compiler ABI info - done #8 3.256 -- Check for working CXX compiler: /usr/bin/c++ - skipped #8 3.257 -- Detecting CXX compile features #8 3.258 -- Detecting CXX compile features - done #8 3.259 -> TIDY_SO_VERSION = 58. This is an EVEN (stable) release. #8 3.259 -- *** Debug Logging is NOT enabled. #8 3.260 -- *** Building support for runtime configuration files. #8 3.260 -- *** Also building DLL library SHARED, version 5.8.0, date 2021.07.10 #8 3.262 -- *** NOTE: xsltproc NOT FOUND! Can NOT generate man page. #8 3.262 -- *** You need to install xsltproc in your system. #8 3.273 -- Configuring done #8 3.286 -- Generating done #8 3.288 -- Build files have been written to: /tmp/_tidy-html5/build/cmake #8 3.332 [ 1%] Building C object CMakeFiles/tidy-static.dir/src/access.c.o #8 3.406 /tmp/_tidy-html5/src/access.c:892:40: warning: argument 2 of type ‘int[]’ with mismatched bound [-Warray-parameter=] #8 3.406 892 | static Bool GetRgb( ctmbstr color, int rgb[] ) #8 3.406 | ~~~~^~~~~ #8 3.407 /tmp/_tidy-html5/src/access.c:380:40: note: previously declared as ‘int[3]’ #8 3.407 380 | static Bool GetRgb( ctmbstr color, int rgb[3] ); #8 3.407 | ~~~~^~~~~~ #8 3.543 [ 3%] Building C object CMakeFiles/tidy-static.dir/src/attrs.c.o #8 3.588 /tmp/_tidy-html5/src/attrs.c: In function ‘CheckDecimal’: #8 3.589 /tmp/_tidy-html5/src/attrs.c:2300:13: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation] #8 3.589 2300 | else #8 3.589 | ^~~~ #8 3.589 /tmp/_tidy-html5/src/attrs.c:2302:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’ #8 3.589 2302 | break; #8 3.589 | ^~~~~ #8 3.704 [ 5%] Building C object CMakeFiles/tidy-static.dir/src/istack.c.o #8 3.765 [ 7%] Building C object CMakeFiles/tidy-static.dir/src/parser.c.o #8 3.994 [ 8%] Building C object CMakeFiles/tidy-static.dir/src/tags.c.o #8 4.080 [ 10%] Building C object CMakeFiles/tidy-static.dir/src/entities.c.o #8 4.156 [ 12%] Building C object CMakeFiles/tidy-static.dir/src/lexer.c.o #8 4.352 [ 14%] Building C object CMakeFiles/tidy-static.dir/src/pprint.c.o #8 4.575 [ 16%] Building C object CMakeFiles/tidy-static.dir/src/charsets.c.o #8 4.634 [ 17%] Building C object CMakeFiles/tidy-static.dir/src/clean.c.o #8 4.793 [ 19%] Building C object CMakeFiles/tidy-static.dir/src/message.c.o #8 4.960 [ 21%] Building C object CMakeFiles/tidy-static.dir/src/config.c.o #8 5.099 [ 23%] Building C object CMakeFiles/tidy-static.dir/src/alloc.c.o #8 5.140 [ 25%] Building C object CMakeFiles/tidy-static.dir/src/attrdict.c.o #8 5.498 [ 26%] Building C object CMakeFiles/tidy-static.dir/src/buffio.c.o #8 5.550 [ 28%] Building C object CMakeFiles/tidy-static.dir/src/fileio.c.o #8 5.602 [ 30%] Building C object CMakeFiles/tidy-static.dir/src/streamio.c.o #8 5.731 [ 32%] Building C object CMakeFiles/tidy-static.dir/src/tagask.c.o #8 5.818 [ 33%] Building C object CMakeFiles/tidy-static.dir/src/tmbstr.c.o #8 5.874 [ 35%] Building C object CMakeFiles/tidy-static.dir/src/utf8.c.o #8 5.927 [ 37%] Building C object CMakeFiles/tidy-static.dir/src/tidylib.c.o #8 6.090 [ 39%] Building C object CMakeFiles/tidy-static.dir/src/mappedio.c.o #8 6.140 [ 41%] Building C object CMakeFiles/tidy-static.dir/src/gdoc.c.o #8 6.187 [ 42%] Building C object CMakeFiles/tidy-static.dir/src/language.c.o #8 6.270 [ 44%] Building C object CMakeFiles/tidy-static.dir/src/messageobj.c.o #8 6.345 [ 46%] Building C object CMakeFiles/tidy-static.dir/src/sprtf.c.o #8 6.380 [ 48%] Linking C static library libtidy.a #8 6.436 [ 48%] Built target tidy-static #8 6.460 [ 50%] Building C object CMakeFiles/tidy-share.dir/src/access.c.o #8 6.489 /tmp/_tidy-html5/src/access.c:892:40: warning: argument 2 of type ‘int[]’ with mismatched bound [-Warray-parameter=] #8 6.489 892 | static Bool GetRgb( ctmbstr color, int rgb[] ) #8 6.489 | ~~~~^~~~~ #8 6.490 /tmp/_tidy-html5/src/access.c:380:40: note: previously declared as ‘int[3]’ #8 6.490 380 | static Bool GetRgb( ctmbstr color, int rgb[3] ); #8 6.490 | ~~~~^~~~~~ #8 6.617 [ 51%] Building C object CMakeFiles/tidy-share.dir/src/attrs.c.o #8 6.656 /tmp/_tidy-html5/src/attrs.c: In function ‘CheckDecimal’: #8 6.656 /tmp/_tidy-html5/src/attrs.c:2300:13: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation] #8 6.656 2300 | else #8 6.656 | ^~~~ #8 6.657 /tmp/_tidy-html5/src/attrs.c:2302:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘else’ #8 6.657 2302 | break; #8 6.657 | ^~~~~ #8 6.772 [ 53%] Building C object CMakeFiles/tidy-share.dir/src/istack.c.o #8 6.831 [ 55%] Building C object CMakeFiles/tidy-share.dir/src/parser.c.o #8 7.148 [ 57%] Building C object CMakeFiles/tidy-share.dir/src/tags.c.o #8 7.238 [ 58%] Building C object CMakeFiles/tidy-share.dir/src/entities.c.o #8 7.311 [ 60%] Building C object CMakeFiles/tidy-share.dir/src/lexer.c.o #8 7.508 [ 62%] Building C object CMakeFiles/tidy-share.dir/src/pprint.c.o #8 7.656 [ 64%] Building C object CMakeFiles/tidy-share.dir/src/charsets.c.o #8 7.709 [ 66%] Building C object CMakeFiles/tidy-share.dir/src/clean.c.o #8 7.871 [ 67%] Building C object CMakeFiles/tidy-share.dir/src/message.c.o #8 7.969 [ 69%] Building C object CMakeFiles/tidy-share.dir/src/config.c.o #8 8.104 [ 71%] Building C object CMakeFiles/tidy-share.dir/src/alloc.c.o #8 8.149 [ 73%] Building C object CMakeFiles/tidy-share.dir/src/attrdict.c.o #8 8.584 [ 75%] Building C object CMakeFiles/tidy-share.dir/src/buffio.c.o #8 8.635 [ 76%] Building C object CMakeFiles/tidy-share.dir/src/fileio.c.o #8 8.677 [ 78%] Building C object CMakeFiles/tidy-share.dir/src/streamio.c.o #8 8.763 [ 80%] Building C object CMakeFiles/tidy-share.dir/src/tagask.c.o #8 8.809 [ 82%] Building C object CMakeFiles/tidy-share.dir/src/tmbstr.c.o #8 8.862 [ 83%] Building C object CMakeFiles/tidy-share.dir/src/utf8.c.o #8 8.914 [ 85%] Building C object CMakeFiles/tidy-share.dir/src/tidylib.c.o #8 9.073 [ 87%] Building C object CMakeFiles/tidy-share.dir/src/mappedio.c.o #8 9.119 [ 89%] Building C object CMakeFiles/tidy-share.dir/src/gdoc.c.o #8 9.175 [ 91%] Building C object CMakeFiles/tidy-share.dir/src/language.c.o #8 9.260 [ 92%] Building C object CMakeFiles/tidy-share.dir/src/messageobj.c.o #8 9.333 [ 94%] Building C object CMakeFiles/tidy-share.dir/src/sprtf.c.o #8 9.364 [ 96%] Linking C shared library libtidy.so #8 9.434 [ 96%] Built target tidy-share #8 9.453 [ 98%] Building C object CMakeFiles/tidy.dir/console/tidy.c.o #8 9.584 [100%] Linking C executable tidy #8 9.636 [100%] Built target tidy #8 9.684 Consolidate compiler generated dependencies of target tidy-static #8 9.699 [ 48%] Built target tidy-static #8 9.719 Consolidate compiler generated dependencies of target tidy-share #8 9.734 [ 96%] Built target tidy-share #8 9.745 Consolidate compiler generated dependencies of target tidy #8 9.755 [100%] Built target tidy #8 9.773 Install the project... #8 9.780 -- Install configuration: "" #8 9.781 -- Installing: /usr/local/lib/libtidy.a #8 9.784 -- Installing: /usr/local/include/tidyplatform.h #8 9.784 -- Installing: /usr/local/include/tidy.h #8 9.785 -- Installing: /usr/local/include/tidyenum.h #8 9.785 -- Installing: /usr/local/include/tidybuffio.h #8 9.785 -- Installing: /usr/local/lib/libtidy.so.5.8.0 #8 9.788 -- Installing: /usr/local/lib/libtidy.so.58 #8 9.789 -- Installing: /usr/local/lib/libtidy.so #8 9.789 -- Installing: /usr/local/bin/tidy #8 9.791 -- Installing: /usr/local/lib/pkgconfig/tidy.pc #8 9.794 HTML Tidy for Linux version 5.8.0 #8 DONE 9.8s #9 [5/9] RUN apt-get install -y woff2 #9 0.444 Reading package lists... #9 1.599 Building dependency tree... #9 1.850 Reading state information... #9 2.115 The following NEW packages will be installed: #9 2.116 woff2 #9 2.167 0 upgraded, 1 newly installed, 0 to remove and 83 not upgraded. #9 2.167 Need to get 11.4 kB of archives. #9 2.167 After this operation, 72.7 kB of additional disk space will be used. #9 2.167 Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 woff2 amd64 1.0.2-1build4 [11.4 kB] #9 2.370 debconf: delaying package configuration, since apt-utils is not installed #9 2.418 Fetched 11.4 kB in 0s (270 kB/s) #9 2.455 Selecting previously unselected package woff2. (Reading database ...a96564.files and directories currently installed.) #9 3.138 Preparing to unpack .../woff2_1.0.2-1build4_amd64.deb ... #9 3.146 Unpacking woff2 (1.0.2-1build4) ... #9 3.219 Setting up woff2 (1.0.2-1build4) ... #9 DONE 3.3s #10 [6/9] COPY _docker/woff.zip /tmp/woff.zip #10 DONE 0.1s #11 [7/9] RUN unzip /tmp/woff.zip -d _sfnt2woff && cd _sfnt2woff && make && cp sfnt2woff /usr/local/bin/ && sfnt2woff --version #11 0.292 Archive: /tmp/woff.zip #11 0.293 inflating: _sfnt2woff/Makefile #11 0.293 inflating: _sfnt2woff/sfnt2woff.c #11 0.295 inflating: _sfnt2woff/woff.c #11 0.295 inflating: _sfnt2woff/woff2sfnt.c #11 0.296 inflating: _sfnt2woff/woff-private.h #11 0.297 inflating: _sfnt2woff/woff.h #11 0.298 inflating: _sfnt2woff/woff-2009-10-03.html #11 0.300 cc -c -o sfnt2woff.o sfnt2woff.c #11 0.342 cc -c -o woff.o woff.c #11 0.435 cc -o sfnt2woff sfnt2woff.o woff.o -lz #11 0.457 cc -c -o woff2sfnt.o woff2sfnt.c #11 0.491 cc -o woff2sfnt woff2sfnt.o woff.o -lz #11 0.515 sfnt2woff: invalid option -- '-' #11 0.515 Usage: #11 0.515 sfnt2woff [-v <maj>.<min>] [-m <metadata.xml>] [-p <private.dat>] <otffile> #11 0.515 package OpenType <otffile> as WOFF, creating <otffile>.woff #11 0.515 Options: #11 0.515 -v <maj>.<min> set font version number (major and minor, both integers) #11 0.515 -m <metadata.xml> include metadata from <metadata.xml> (not validated) #11 0.515 -p <private.dat> include private data block #11 DONE 0.5s #12 [8/9] RUN npm install -g cssshrink@0.0.5 #12 3.480 #12 3.480 added 11 packages in 3s #12 DONE 3.6s #13 [9/9] RUN /bin/bash -l -c "gem update --system && gem install jgd -v 1.13.0" #13 0.913 Using /usr/local/rvm/gems/ruby-3.2.2 #13 1.820 Using /usr/local/rvm/gems/ruby-3.2.2 #13 5.806 Updating rubygems-update #13 5.806 Successfully installed rubygems-update-3.6.8 #13 5.806 Installing RubyGems 3.6.8 #13 6.635 Successfully built RubyGem #13 6.635 Name: bundler #13 6.635 Version: 2.6.8 #13 6.635 File: bundler-2.6.8.gem #13 6.635 Bundler 2.6.8 installed #13 6.635 RubyGems 3.6.8 installed #13 6.635 Regenerating binstubs #13 6.635 Regenerating plugins #13 6.635 #13 6.635 # 3.6.8 / 2025-04-13 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.6.8 as a default gem. #13 6.635 #13 6.635 # 3.6.7 / 2025-04-03 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Sorting files in metadata for build reproducibility. Pull request #13 6.635 [#8569](https://github.com/rubygems/rubygems/pull/8569) by #13 6.635 giacomobenedetti #13 6.635 * Default to a SOURCE_DATE_EPOCH of 315619200, to simplify reproducible #13 6.635 builds. Pull request #13 6.635 [#8568](https://github.com/rubygems/rubygems/pull/8568) by duckinator #13 6.635 * Let `gem exec` raise an error in ambiguous cases. Pull request #13 6.635 [#8573](https://github.com/rubygems/rubygems/pull/8573) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.6.7 as a default gem. #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Speed up Version#<=> ~20-50% when lengths differ. Pull request #13 6.635 [#8565](https://github.com/rubygems/rubygems/pull/8565) by skipkayhil #13 6.635 #13 6.635 # 3.6.6 / 2025-03-13 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Update vendored uri to 1.0.3. Pull request #13 6.635 [#8534](https://github.com/rubygems/rubygems/pull/8534) by hsbt #13 6.635 * Installs bundler 2.6.6 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem rdoc` not working with newer versions of rdoc when not #13 6.635 installed as default gems. Pull request #13 6.635 [#8549](https://github.com/rubygems/rubygems/pull/8549) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.6.5 / 2025-02-20 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.6.5 as a default gem. #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Removed `gem server` from `gem help`. Pull request #13 6.635 [#8507](https://github.com/rubygems/rubygems/pull/8507) by hsbt #13 6.635 #13 6.635 # 3.6.4 / 2025-02-17 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Raise a simpler error when RubyGems fails to activate a dependency. Pull #13 6.635 request [#8449](https://github.com/rubygems/rubygems/pull/8449) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.6.4 as a default gem. #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Allocate strings from Requirement match only once. Pull request #13 6.635 [#8245](https://github.com/rubygems/rubygems/pull/8245) by segiddins #13 6.635 #13 6.635 # 3.6.3 / 2025-01-16 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Add credentials file path to `gem env`. Pull request #13 6.635 [#8375](https://github.com/rubygems/rubygems/pull/8375) by duckinator #13 6.635 * Update SPDX license list as of 2024-12-30. Pull request #13 6.635 [#8387](https://github.com/rubygems/rubygems/pull/8387) by #13 6.635 github-actions[bot] #13 6.635 * Installs bundler 2.6.3 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `@licenses` array unmarshalling. Pull request #13 6.635 [#8411](https://github.com/rubygems/rubygems/pull/8411) by rykov #13 6.635 #13 6.635 # 3.6.2 / 2024-12-23 #13 6.635 #13 6.635 ## Security: #13 6.635 #13 6.635 * Fix Gem::SafeMarshal buffer overrun when given lengths larger than fit #13 6.635 into a byte. Pull request #13 6.635 [#8305](https://github.com/rubygems/rubygems/pull/8305) by segiddins #13 6.635 * Improve type checking in marshal_load methods. Pull request #13 6.635 [#8306](https://github.com/rubygems/rubygems/pull/8306) by segiddins #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Skip rdoc hooks and their tests on newer rdoc versions. Pull request #13 6.635 [#8340](https://github.com/rubygems/rubygems/pull/8340) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.6.2 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix serialized metadata including an empty `@original_platform` #13 6.635 attribute. Pull request #13 6.635 [#8355](https://github.com/rubygems/rubygems/pull/8355) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.6.1 / 2024-12-17 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.6.1 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem info` tagging some non default gems as default. Pull request #13 6.635 [#8321](https://github.com/rubygems/rubygems/pull/8321) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Fix broken links. Pull request #13 6.635 [#8327](https://github.com/rubygems/rubygems/pull/8327) by st0012 #13 6.635 #13 6.635 # 3.6.0 / 2024-12-16 #13 6.635 #13 6.635 ## Security: #13 6.635 #13 6.635 * Stop storing executable names in ivars. Pull request #13 6.635 [#8307](https://github.com/rubygems/rubygems/pull/8307) by segiddins #13 6.635 #13 6.635 ## Breaking changes: #13 6.635 #13 6.635 * Drop ruby 3.0 support. Pull request #13 6.635 [#8091](https://github.com/rubygems/rubygems/pull/8091) by segiddins #13 6.635 #13 6.635 ## Features: #13 6.635 #13 6.635 * Add --attestation option to gem push. Pull request #13 6.635 [#8239](https://github.com/rubygems/rubygems/pull/8239) by segiddins #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Skip unresolved deps warning on `Gem::Specification.reset` on benign #13 6.635 cases. Pull request #13 6.635 [#8309](https://github.com/rubygems/rubygems/pull/8309) by #13 6.635 deivid-rodriguez #13 6.635 * Let `gem install <name>` suggest `<name>-ruby` and `ruby-<name>` when #13 6.635 providing "did you mean" suggestions. Pull request #13 6.635 [#8197](https://github.com/rubygems/rubygems/pull/8197) by duckinator #13 6.635 * Update SPDX license list as of 2024-08-19. Pull request #13 6.635 [#8233](https://github.com/rubygems/rubygems/pull/8233) by #13 6.635 github-actions[bot] #13 6.635 * Add `--target-rbconfig` option to `gem install` and `gem update` #13 6.635 commands. Pull request #13 6.635 [#7628](https://github.com/rubygems/rubygems/pull/7628) by kateinoigakukun #13 6.635 * Skip nil-value keys to make metadata reproducible. Pull request #13 6.635 [#7129](https://github.com/rubygems/rubygems/pull/7129) by nobu #13 6.635 * Allow disabling installation of compiled extensions into lib through #13 6.635 `Gem.configuration.install_extension_in_lib`. Pull request #13 6.635 [#6463](https://github.com/rubygems/rubygems/pull/6463) by hsbt #13 6.635 * Installs bundler 2.6.0 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Set $0 to exe when running `gem exec` to fix name in CLI output. Pull #13 6.635 request [#8267](https://github.com/rubygems/rubygems/pull/8267) by adam12 #13 6.635 * Fix manifest in gem package using incorrect platform sometimes. Pull #13 6.635 request [#8202](https://github.com/rubygems/rubygems/pull/8202) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Fix missing single quote in git source example. Pull request #13 6.635 [#8303](https://github.com/rubygems/rubygems/pull/8303) by nobu #13 6.635 * Update the `gem install` demo in REAME to use a gem that just works on #13 6.635 Windows. Pull request #13 6.635 [#8262](https://github.com/rubygems/rubygems/pull/8262) by soda92 #13 6.635 * Unify rubygems and bundler docs directory. Pull request #13 6.635 [#8159](https://github.com/rubygems/rubygems/pull/8159) by hsbt #13 6.635 #13 6.635 # 3.5.23 / 2024-11-05 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Validate user input encoding of `gem` CLI arguments. Pull request #13 6.635 [#6471](https://github.com/rubygems/rubygems/pull/6471) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem update --system` leaving old default bundler executables #13 6.635 around. Pull request #13 6.635 [#8172](https://github.com/rubygems/rubygems/pull/8172) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.23 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix commands with 2 MFA requests when webauthn is enabled. Pull request #13 6.635 [#8174](https://github.com/rubygems/rubygems/pull/8174) by #13 6.635 deivid-rodriguez #13 6.635 * Make `--enable-load-relative` binstubs prolog work when Ruby is not #13 6.635 installed in the same directory as the binstub. Pull request #13 6.635 [#7872](https://github.com/rubygems/rubygems/pull/7872) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Speed up `gem install <nonexistent-gem>` by finding alternative name #13 6.635 suggestions faster. Pull request #13 6.635 [#8084](https://github.com/rubygems/rubygems/pull/8084) by duckinator #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Add missing comma in documentation. Pull request #13 6.635 [#8152](https://github.com/rubygems/rubygems/pull/8152) by leoarnold #13 6.635 #13 6.635 # 3.5.22 / 2024-10-16 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Prevent `._*` files in packages generated from macOS. Pull request #13 6.635 [#8150](https://github.com/rubygems/rubygems/pull/8150) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem pristine etc` resetting gem twice sometimes. Pull request #13 6.635 [#8117](https://github.com/rubygems/rubygems/pull/8117) by #13 6.635 deivid-rodriguez #13 6.635 * Allow `gem pristine` to reset default gems too. Pull request #13 6.635 [#8118](https://github.com/rubygems/rubygems/pull/8118) by #13 6.635 deivid-rodriguez #13 6.635 * Update vendored `uri` and `net-http`. Pull request #13 6.635 [#8112](https://github.com/rubygems/rubygems/pull/8112) by segiddins #13 6.635 * Installs bundler 2.5.22 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem contents` for default gems. Pull request #13 6.635 [#8132](https://github.com/rubygems/rubygems/pull/8132) by #13 6.635 deivid-rodriguez #13 6.635 * Fix duplicated specs when they have been previously activated. Pull #13 6.635 request [#8131](https://github.com/rubygems/rubygems/pull/8131) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem install` on NFS shares. Pull request #13 6.635 [#8123](https://github.com/rubygems/rubygems/pull/8123) by #13 6.635 deivid-rodriguez #13 6.635 * Fix a `gem install` crash during "done installing" hooks. Pull request #13 6.635 [#8113](https://github.com/rubygems/rubygems/pull/8113) by #13 6.635 deivid-rodriguez #13 6.635 * Fix plugin command loading. Pull request #13 6.635 [#8121](https://github.com/rubygems/rubygems/pull/8121) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.21 / 2024-10-03 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Fix `Gem::MissingSpecVersionError#to_s` not showing exception message. #13 6.635 Pull request [#8074](https://github.com/rubygems/rubygems/pull/8074) by #13 6.635 deivid-rodriguez #13 6.635 * Remove code that makes suggest_gems_from_name give worse results. Pull #13 6.635 request [#8083](https://github.com/rubygems/rubygems/pull/8083) by #13 6.635 duckinator #13 6.635 * Warning about PATH in `--user-install` mode is only necessary for gems #13 6.635 with executables. Pull request #13 6.635 [#8071](https://github.com/rubygems/rubygems/pull/8071) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.21 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix error in one source when fetching dependency APIs clearing results #13 6.635 from all sources. Pull request #13 6.635 [#8080](https://github.com/rubygems/rubygems/pull/8080) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem cleanup` warning when two versions of psych installed. Pull #13 6.635 request [#8072](https://github.com/rubygems/rubygems/pull/8072) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.20 / 2024-09-24 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.20 as a default gem. #13 6.635 #13 6.635 # 3.5.19 / 2024-09-18 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Standardize pretty-print output for `Gem::Source` and subclasses. Pull #13 6.635 request [#7994](https://github.com/rubygems/rubygems/pull/7994) by #13 6.635 djberube #13 6.635 * Update vendored `molinillo` to master and vendored `resolv` to 0.4.0. #13 6.635 Pull request [#7521](https://github.com/rubygems/rubygems/pull/7521) by #13 6.635 hsbt #13 6.635 * Installs bundler 2.5.19 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `bundle exec rake install` failing when local gem has extensions. #13 6.635 Pull request [#7977](https://github.com/rubygems/rubygems/pull/7977) by #13 6.635 deivid-rodriguez #13 6.635 * Make `gem exec` use the standard GEM_HOME. Pull request #13 6.635 [#7982](https://github.com/rubygems/rubygems/pull/7982) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem fetch` always exiting with zero status code. Pull request #13 6.635 [#8007](https://github.com/rubygems/rubygems/pull/8007) by #13 6.635 deivid-rodriguez #13 6.635 * Remove temporary `.lock` files unintentionally left around by gem #13 6.635 installer. Pull request #13 6.635 [#7939](https://github.com/rubygems/rubygems/pull/7939) by nobu #13 6.635 * Removed unused stringio. Pull request #13 6.635 [#8001](https://github.com/rubygems/rubygems/pull/8001) by hsbt #13 6.635 * Avoid another race condition of open mode. Pull request #13 6.635 [#7931](https://github.com/rubygems/rubygems/pull/7931) by nobu #13 6.635 * Fix `@license` typo preventing licenses from being correctly #13 6.635 unmarshalled. Pull request #13 6.635 [#7975](https://github.com/rubygems/rubygems/pull/7975) by djberube #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Fix `gem install does-not-exist` being super slow. Pull request #13 6.635 [#8006](https://github.com/rubygems/rubygems/pull/8006) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.18 / 2024-08-26 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.18 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem uninstall <name>:<version>` failing on shadowed default gems. #13 6.635 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.17 / 2024-08-01 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Explicitly encode `Gem::Dependency` to yaml. Pull request #13 6.635 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins #13 6.635 * Installs bundler 2.5.17 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem list` regression when a regular gem shadows a default one. Pull #13 6.635 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by #13 6.635 deivid-rodriguez #13 6.635 * Always leave default gem executables around. Pull request #13 6.635 [#7879](https://github.com/rubygems/rubygems/pull/7879) by #13 6.635 deivid-rodriguez #13 6.635 * Fix line comment issue for hash when loading gemrc. Pull request #13 6.635 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking #13 6.635 #13 6.635 # 3.5.16 / 2024-07-18 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.16 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix gemspec `require_paths` validation. Pull request #13 6.635 [#7866](https://github.com/rubygems/rubygems/pull/7866) by #13 6.635 deivid-rodriguez #13 6.635 * Fix loading of nested `gemrc` config keys when specified as symbols. #13 6.635 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by #13 6.635 moofkit #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Use `caller_locations` instead of splitting `caller`. Pull request #13 6.635 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu #13 6.635 #13 6.635 # 3.5.15 / 2024-07-09 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.15 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Restrict generic `arm` to only match 32-bit arm. Pull request #13 6.635 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme #13 6.635 * Protect creating binstubs with a file lock. Pull request #13 6.635 [#7806](https://github.com/rubygems/rubygems/pull/7806) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Make it clearer that `add_dependency` is the main way to add #13 6.635 non-development dependencies. Pull request #13 6.635 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert #13 6.635 #13 6.635 # 3.5.14 / 2024-06-21 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.14 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Make "bundler? update --bundler" behave identically. Pull request #13 6.635 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri #13 6.635 #13 6.635 # 3.5.13 / 2024-06-14 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.13 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Never remove executables that may belong to a default gem. Pull request #13 6.635 [#7747](https://github.com/rubygems/rubygems/pull/7747) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.12 / 2024-06-13 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.12 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `gem uninstall` unresolved specifications warning. Pull request #13 6.635 [#7667](https://github.com/rubygems/rubygems/pull/7667) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem pristine` sometimes failing to pristine user installed gems. #13 6.635 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.11 / 2024-05-28 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Update SPDX license list as of 2024-05-22. Pull request #13 6.635 [#7689](https://github.com/rubygems/rubygems/pull/7689) by #13 6.635 github-actions[bot] #13 6.635 * Fix the update_rubygems inconsistency (--disable-gems). Pull request #13 6.635 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri #13 6.635 * Accept WASI as an OS name in Gem::Platform. Pull request #13 6.635 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun #13 6.635 * Warn if RubyGems version explicitly set in gemspec does not match #13 6.635 running version. Pull request #13 6.635 [#7460](https://github.com/rubygems/rubygems/pull/7460) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.11 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix binstubs sometimes not getting regenerated when `--destdir` is #13 6.635 given. Pull request #13 6.635 [#7660](https://github.com/rubygems/rubygems/pull/7660) by #13 6.635 deivid-rodriguez #13 6.635 * Fix `gem uninstall --user-install` for symlinked HOME. Pull request #13 6.635 [#7645](https://github.com/rubygems/rubygems/pull/7645) by #13 6.635 deivid-rodriguez #13 6.635 * Fix issue when plugin stubs would sometimes not be properly removed by #13 6.635 `gem uninstall`. Pull request #13 6.635 [#7631](https://github.com/rubygems/rubygems/pull/7631) by #13 6.635 deivid-rodriguez #13 6.635 * Fix plugins uninstallation for user installed gems. Pull request #13 6.635 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Use a constant empty tar header to avoid extra allocations. Pull request #13 6.635 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Recommend `bin/rake` over `rake` in contributing docs. Pull request #13 6.635 [#7648](https://github.com/rubygems/rubygems/pull/7648) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.10 / 2024-05-03 #13 6.635 #13 6.635 ## Security: #13 6.635 #13 6.635 * Add a limit to the size of the metadata and checksums files in a gem #13 6.635 package. Pull request #13 6.635 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Don't fully require `rubygems` from `rubygems/package` to prevent some #13 6.635 circular require warnings when using Bundler. Pull request #13 6.635 [#7612](https://github.com/rubygems/rubygems/pull/7612) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.10 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Rename credential email to identifier in WebAuthn poller. Pull request #13 6.635 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny #13 6.635 #13 6.635 # 3.5.9 / 2024-04-12 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.9 as a default gem. #13 6.635 #13 6.635 # 3.5.8 / 2024-04-11 #13 6.635 #13 6.635 ## Security: #13 6.635 #13 6.635 * Respect global umask when writing regular files. Pull request #13 6.635 [#7518](https://github.com/rubygems/rubygems/pull/7518) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Allow string keys with gemrc. Pull request #13 6.635 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt #13 6.635 * [Experimental] Add "gem rebuild" command. Pull request #13 6.635 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator #13 6.635 * Installs bundler 2.5.8 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix NoMethodError crash when building errors about corrupt package #13 6.635 files. Pull request #13 6.635 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez #13 6.635 * Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation` #13 6.635 objects. Pull request #13 6.635 [#7537](https://github.com/rubygems/rubygems/pull/7537) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.7 / 2024-03-22 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Warn on empty or open required_ruby_version specification attribute. #13 6.635 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by #13 6.635 simi #13 6.635 * Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via #13 6.635 attribute. Pull request #13 6.635 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins #13 6.635 * Update SPDX license list as of 2024-02-08. Pull request #13 6.635 [#7468](https://github.com/rubygems/rubygems/pull/7468) by #13 6.635 github-actions[bot] #13 6.635 * Installs bundler 2.5.7 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Allow prerelease activation (even if requirement is not explicit about #13 6.635 it) when it's the only possibility. Pull request #13 6.635 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Fix a typo. Pull request #13 6.635 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt #13 6.635 * Use https instead of http in documentation links. Pull request #13 6.635 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt #13 6.635 #13 6.635 # 3.5.6 / 2024-02-06 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Deep copy requirements in `Gem::Specification` and `Gem::Requirement`. #13 6.635 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by #13 6.635 flavorjones #13 6.635 * Change gem login message to clear up that username can be also used. #13 6.635 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by #13 6.635 VitaliySerov #13 6.635 * Add metadata for rubygems.org. Pull request #13 6.635 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145 #13 6.635 * Improve gem login scope selection. Pull request #13 6.635 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen #13 6.635 * Vendor uri in RubyGems. Pull request #13 6.635 [#7386](https://github.com/rubygems/rubygems/pull/7386) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.6 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Skip to load commented out words. Pull request #13 6.635 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt #13 6.635 * Fix rake runtime dependency warning for rake based extension. Pull #13 6.635 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme #13 6.635 #13 6.635 # 3.5.5 / 2024-01-18 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.5 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix `require` activation conflicts when requiring default gems under #13 6.635 some situations. Pull request #13 6.635 [#7379](https://github.com/rubygems/rubygems/pull/7379) by #13 6.635 deivid-rodriguez #13 6.635 * Use cache_home instead of data_home in default_spec_cache_dir. Pull #13 6.635 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Use squiggly heredocs in `Gem::Specification#description` documentation, #13 6.635 so it doesn't add leading whitespace. Pull request #13 6.635 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager #13 6.635 #13 6.635 # 3.5.4 / 2024-01-04 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Always avoid "Updating rubygems-update" message. Pull request #13 6.635 [#7335](https://github.com/rubygems/rubygems/pull/7335) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.5.4 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Make `gem update --system` respect ruby version constraints. Pull #13 6.635 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.5.3 / 2023-12-22 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.3 as a default gem. #13 6.635 #13 6.635 # 3.5.2 / 2023-12-21 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Support dynamic library loading with extension .so or .o. Pull request #13 6.635 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog #13 6.635 * Installs bundler 2.5.2 as a default gem. #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Replace `object_id` comparison with identity Hash. Pull request #13 6.635 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov #13 6.635 * Use IO.copy_stream when reading, writing. Pull request #13 6.635 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde #13 6.635 #13 6.635 # 3.5.1 / 2023-12-15 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.5.1 as a default gem. #13 6.635 #13 6.635 # 3.5.0 / 2023-12-15 #13 6.635 #13 6.635 ## Security: #13 6.635 #13 6.635 * Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull #13 6.635 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by #13 6.635 segiddins #13 6.635 #13 6.635 ## Breaking changes: #13 6.635 #13 6.635 * Drop ruby 2.6 and 2.7 support. Pull request #13 6.635 [#7116](https://github.com/rubygems/rubygems/pull/7116) by #13 6.635 deivid-rodriguez #13 6.635 * Release package no longer includes test files. Pull request #13 6.635 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt #13 6.635 * Hide `Gem::MockGemUi` from users. Pull request #13 6.635 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt #13 6.635 * Deprecated `Gem.datadir` has been removed. Pull request #13 6.635 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt #13 6.635 #13 6.635 ## Deprecations: #13 6.635 #13 6.635 * Deprecate `Gem::Platform.match?`. Pull request #13 6.635 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt #13 6.635 * Deprecate `Gem::List`. Pull request #13 6.635 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins #13 6.635 #13 6.635 ## Features: #13 6.635 #13 6.635 * The `generate_index` command can now generate compact index files and #13 6.635 lives as an external `rubygems-generate_index` gem. Pull request #13 6.635 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins #13 6.635 * Make `gem install` fallback to user installation directory if default #13 6.635 gem home is not writable. Pull request #13 6.635 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator #13 6.635 * Leverage ruby feature to warn when requiring default gems from stdlib #13 6.635 that will be turned into bundled gems in the future. Pull request #13 6.635 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Use match? when regexp match data is unused. Pull request #13 6.635 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins #13 6.635 * Fewer allocations in gem installation. Pull request #13 6.635 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins #13 6.635 * Optimize allocations in `Gem::Version`. Pull request #13 6.635 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Warn for duplicate meta data links when building gems. Pull request #13 6.635 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob #13 6.635 * Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce #13 6.635 conflicts between Gemfile gems and internal dependencies. Pull request #13 6.635 [#6793](https://github.com/rubygems/rubygems/pull/6793) by #13 6.635 deivid-rodriguez #13 6.635 * Remove non-transparent requirement added to prerelease gems. Pull #13 6.635 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by #13 6.635 deivid-rodriguez #13 6.635 * Stream output from ext builds when --verbose. Pull request #13 6.635 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu #13 6.635 * Add missing services to CI detection and make it consistent between #13 6.635 RubyGems and Bundler. Pull request #13 6.635 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera #13 6.635 * Update generate licenses template to not freeze regexps. Pull request #13 6.635 [#7154](https://github.com/rubygems/rubygems/pull/7154) by #13 6.635 github-actions[bot] #13 6.635 * Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude #13 6.635 in rubygems binstubs. Pull request #13 6.635 [#7156](https://github.com/rubygems/rubygems/pull/7156) by #13 6.635 deivid-rodriguez #13 6.635 * Update SPDX list and warn on deprecated identifiers. Pull request #13 6.635 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi #13 6.635 * Simplify extended `require` to potentially fix some deadlocks. Pull #13 6.635 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu #13 6.635 * Small refactors for `Gem::Resolver`. Pull request #13 6.635 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt #13 6.635 * Use double-quotes instead of single-quotes consistently in warnings. #13 6.635 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by #13 6.635 hsbt #13 6.635 * Add debug message for `nil` version gemspec. Pull request #13 6.635 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt #13 6.635 * Installs bundler 2.5.0 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fix installing from source with same default bundler version already #13 6.635 installed. Pull request #13 6.635 [#7244](https://github.com/rubygems/rubygems/pull/7244) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Improve comment explaining the necessity of `write_default_spec` method. #13 6.635 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by #13 6.635 voxik #13 6.635 #13 6.635 # 3.4.22 / 2023-11-09 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Update SPDX license list as of 2023-10-05. Pull request #13 6.635 [#7040](https://github.com/rubygems/rubygems/pull/7040) by #13 6.635 github-actions[bot] #13 6.635 * Remove unnecessary rescue. Pull request #13 6.635 [#7109](https://github.com/rubygems/rubygems/pull/7109) by #13 6.635 deivid-rodriguez #13 6.635 * Installs bundler 2.4.22 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Handle empty array at built-in YAML serializer. Pull request #13 6.635 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt #13 6.635 * Ignore non-tar format `.gem` files during search. Pull request #13 6.635 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue #13 6.635 * Allow explicitly uninstalling multiple versions of same gem. Pull #13 6.635 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by #13 6.635 kstevens715 #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Avoid regexp match on every call to `Gem::Platform.local`. Pull request #13 6.635 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Get `Gem::Specification#extensions_dir` documented. Pull request #13 6.635 [#6218](https://github.com/rubygems/rubygems/pull/6218) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.4.21 / 2023-10-17 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Abort `setup.rb` if Ruby is too old. Pull request #13 6.635 [#7011](https://github.com/rubygems/rubygems/pull/7011) by #13 6.635 deivid-rodriguez #13 6.635 * Remove usage of Dir.chdir that only execute a subprocess. Pull request #13 6.635 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins #13 6.635 * Freeze more strings in generated gemspecs. Pull request #13 6.635 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins #13 6.635 * Use pure-ruby YAML parser for loading configuration at RubyGems. Pull #13 6.635 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt #13 6.635 * Installs bundler 2.4.21 as a default gem. #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Update suggested variable for bindir. Pull request #13 6.635 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt #13 6.635 * Fix invalid links in documentation. Pull request #13 6.635 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi #13 6.635 #13 6.635 # 3.4.20 / 2023-09-27 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Raise `Gem::Package::FormatError` when gem encounters corrupt EOF. #13 6.635 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882) #13 6.635 by martinemde #13 6.635 * Allow skipping empty license `gem build` warning by setting license to #13 6.635 `nil`. Pull request #13 6.635 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong97 #13 6.635 * Update SPDX license list as of 2023-06-18. Pull request #13 6.635 [#6891](https://github.com/rubygems/rubygems/pull/6891) by #13 6.635 github-actions[bot] #13 6.635 * Update SPDX license list as of 2023-04-28. Pull request #13 6.635 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins #13 6.635 * Update SPDX license list as of 2023-01-26. Pull request #13 6.635 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins #13 6.635 * Installs bundler 2.4.20 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Fixed false positive SymlinkError in symbolic link directory. Pull #13 6.635 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by #13 6.635 negi0109 #13 6.635 * Ensure that loading multiple gemspecs with legacy YAML class references #13 6.635 does not warn. Pull request #13 6.635 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins #13 6.635 * Fix NoMethodError when choosing a too big number from `gem uni` list. #13 6.635 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by #13 6.635 amatsuda #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Reduce allocations for stub specifications. Pull request #13 6.635 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins #13 6.635 #13 6.635 # 3.4.19 / 2023-08-17 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.19 as a default gem. #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Speedup building docs when updating rubygems. Pull request #13 6.635 [#6864](https://github.com/rubygems/rubygems/pull/6864) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.4.18 / 2023-08-02 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Add poller to fetch WebAuthn OTP. Pull request #13 6.635 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny #13 6.635 * Remove side effects when unmarshaling old `Gem::Specification`. Pull #13 6.635 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu #13 6.635 * Ship rubygems executables in `exe` folder. Pull request #13 6.635 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt #13 6.635 * Installs bundler 2.4.18 as a default gem. #13 6.635 #13 6.635 # 3.4.17 / 2023-07-14 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.17 as a default gem. #13 6.635 #13 6.635 ## Performance: #13 6.635 #13 6.635 * Avoid unnecessary work for private local gem installation. Pull request #13 6.635 [#6810](https://github.com/rubygems/rubygems/pull/6810) by #13 6.635 deivid-rodriguez #13 6.635 #13 6.635 # 3.4.16 / 2023-07-10 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.16 as a default gem. #13 6.635 #13 6.635 # 3.4.15 / 2023-06-29 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.15 as a default gem. #13 6.635 #13 6.635 ## Bug fixes: #13 6.635 #13 6.635 * Autoload shellwords when it's needed. Pull request #13 6.635 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Update command to test local gem command changes. Pull request #13 6.635 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny #13 6.635 #13 6.635 # 3.4.14 / 2023-06-12 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Load plugin immediately. Pull request #13 6.635 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou #13 6.635 * Installs bundler 2.4.14 as a default gem. #13 6.635 #13 6.635 ## Documentation: #13 6.635 #13 6.635 * Clarify what the `rubygems-update` gem is for, and link to source code #13 6.635 and guides. Pull request #13 6.635 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000 #13 6.635 #13 6.635 # 3.4.13 / 2023-05-09 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.13 as a default gem. #13 6.635 #13 6.635 # 3.4.12 / 2023-04-11 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * [Experimental] Add WebAuthn Support to the CLI. Pull request #13 6.635 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny #13 6.635 * Installs bundler 2.4.12 as a default gem. #13 6.635 #13 6.635 # 3.4.11 / 2023-04-10 #13 6.635 #13 6.635 ## Enhancements: #13 6.635 #13 6.635 * Installs bundler 2.4.11 as a default gem. #13 6.635 #13 6.641 #13 6.641 ------------------------------------------------------------------------------ #13 6.641 #13 6.641 RubyGems installed the following executables: #13 6.641 /usr/local/rvm/rubies/ruby-3.2.2/bin/gem #13 6.641 /usr/local/rvm/rubies/ruby-3.2.2/bin/bundle #13 6.641 /usr/local/rvm/rubies/ruby-3.2.2/bin/bundler #13 6.641 #13 6.668 RubyGems system software updated #13 8.759 ! The 'trollop' gem has been deprecated and has been replaced by 'optimist'. #13 8.759 ! See: https://rubygems.org/gems/optimist #13 8.759 ! And: https://github.com/ManageIQ/optimist #13 8.759 Successfully installed trollop-2.9.9 #13 8.759 Successfully installed webrick-1.9.1 #13 8.759 Successfully installed unicode-display_width-2.6.0 #13 8.759 Successfully installed terminal-table-3.0.2 #13 8.759 Successfully installed safe_yaml-1.0.5 #13 8.759 Successfully installed rouge-4.5.1 #13 8.759 Successfully installed forwardable-extended-2.6.0 #13 8.759 Successfully installed pathutil-0.16.2 #13 8.759 Successfully installed mercenary-0.4.0 #13 8.759 Successfully installed liquid-4.0.4 #13 8.759 Successfully installed rexml-3.4.1 #13 8.759 Successfully installed kramdown-2.5.1 #13 8.759 Successfully installed kramdown-parser-gfm-1.1.0 #13 8.759 Successfully installed ffi-1.17.2-x86_64-linux-gnu #13 8.759 Successfully installed rb-inotify-0.11.1 #13 8.759 Successfully installed rb-fsevent-0.11.2 #13 8.759 Successfully installed listen-3.9.0 #13 8.759 Successfully installed jekyll-watch-2.2.1 #13 8.759 Successfully installed google-protobuf-4.30.2-x86_64-linux #13 8.759 Successfully installed sass-embedded-1.86.3-x86_64-linux-gnu #13 8.759 Successfully installed jekyll-sass-converter-3.1.0 #13 8.759 Successfully installed concurrent-ruby-1.3.5 #13 8.759 Successfully installed i18n-1.14.7 #13 8.759 Building native extensions. This could take a while... #13 10.44 Successfully installed http_parser.rb-0.8.0 #13 10.44 Building native extensions. This could take a while... #13 26.07 Successfully installed eventmachine-1.2.7 #13 26.07 Successfully installed em-websocket-0.5.3 #13 26.07 Successfully installed colorator-1.1.0 #13 26.07 Successfully installed base64-0.2.0 #13 26.07 Successfully installed public_suffix-6.0.1 #13 26.07 Successfully installed addressable-2.8.7 #13 26.07 Successfully installed jekyll-4.4.1 #13 26.07 Successfully installed jgd-1.13.0 #13 26.07 32 gems installed #13 DONE 26.3s #14 exporting to image #14 exporting layers #14 exporting layers 6.3s done #14 writing image sha256:eeeb4fac7a0604c09619ce88e744eee3432b5a4c0e0609fe96e417e43e185ab6 #14 writing image sha256:eeeb4fac7a0604c09619ce88e744eee3432b5a4c0e0609fe96e417e43e185ab6 done #14 naming to docker.io/yegor256/rultor-piyguk1a done #14 DONE 6.3s + docker ps --filter=status=exited + grep --quiet '\syegor256_blog_777\s*$' + ls -al . total 204 drwx------ 3 ubuntu ubuntu 4096 Apr 20 19:08 . drwxrwxrwt 12 root root 4096 Apr 20 19:11 .. -rw-rw-r-- 1 ubuntu ubuntu 165 Apr 20 19:06 chatgpt-key.txt -rwxrwxr-x 1 ubuntu ubuntu 2089 Apr 20 19:14 end.sh -rwxrwxr-x 1 ubuntu ubuntu 490 Apr 20 19:08 entry.sh -rw-rw-r-- 1 ubuntu ubuntu 1679 Apr 20 19:06 id_rsa -rw-rw-r-- 1 ubuntu ubuntu 396 Apr 20 19:06 id_rsa.pub -rw-rw-r-- 1 ubuntu ubuntu 5 Apr 20 19:06 pid drwxrwxr-x 29 ubuntu ubuntu 4096 Apr 20 19:08 repo -rwxrwxr-x 1 ubuntu ubuntu 9516 Apr 20 19:06 run.sh -rw-rw-r-- 1 ubuntu ubuntu 1206 Apr 20 19:08 script.sh -rw-rw-r-- 1 ubuntu ubuntu 57 Apr 20 19:06 secrets.yml -rw-rw-r-- 1 ubuntu ubuntu 146846 Apr 20 19:15 stdout ++ pwd ++ pwd + docker run -t --rm -v /tmp/rultor-dSqa:/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'\''\'\'''\'''\'' '\'';'\'' '\''bundle lock --no-color'\'' '\'';'\'' '\''bundle install --no-color'\'' '\'';'\'' '\''export JEKYLL_ENV=production'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 bundle exec rake'\'' '\'';'\'' '\''mkdir ~/.ssh'\'' '\'';'\'' '\''mv ../id_rsa ../id_rsa.pub ~/.ssh'\'' '\'';'\'' '\''chmod -R 600 ~/.ssh/*'\'' '\'';'\'' '\''echo -e "Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null" > ~/.ssh/config'\'' '\'';'\'' '\''git config --global user.email "rultor@yegor256.com"'\'' '\'';'\'' '\''git config --global user.name "Rultor"'\'' '\'';'\'' '\''echo -e "chatgpt-translate:\n api_key_file: $(pwd)/../chatgpt-key.txt" > _config-deploy.yml'\'' '\'';'\'' '\''LC_ALL=en_US.UTF-8 jgd'\'' '\'';'\'' '\''rvm default 2.7.6 && source /usr/local/rvm/scripts/rvm'\'' '\'';'\'' '\''ruby -v'\'' '\'';'\'' '\''gem install ffi -v 1.16.3'\'' '\'';'\'' '\''gem install fontcustom -v 2.0.0'\'' '\'';'\'' '\''fontcustom --version'\'' '\'';'\'' '\''"$(pwd)/_glyphs/compile.sh" /tmp/icons'\'' '\'';'\'' '\''git checkout gh-pages'\'' '\'';'\'' '\''git pull'\'' '\'';'\'' '\''for e in svg ttf woff eot css; do cp "/tmp/icons/icons.${e}" css; git add "css/icons.${e}"; done'\'' '\'';'\'' '\''git commit -am '\''\'\'''\''new glyphs'\''\'\'''\'' || echo no changes in glyphs'\'' '\'';'\'' '\''git push origin gh-pages'\'' '\'';'\'' )' --env=head_branch=master --env=author=yegor256 --hostname=docker --privileged --net=host --dns 8.8.8.8 --add-host docker:127.0.0.1 --memory=8g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-dSqa/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_blog_777 yegor256/rultor-piyguk1a /main/entry.sh WARNING: Your kernel does not support OomKillDisable. OomKillDisable discarded. Using /usr/local/rvm/gems/ruby-3.2.2 Using /usr/local/rvm/gems/ruby-3.2.2 + set -e + set -o pipefail + shopt -s dotglob + useradd -m -G sudo r ++ awk -F : '$3 > 100 { print $1 }' ++ cat /etc/group + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G nogroup r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G systemd-journal r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G systemd-network r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G systemd-resolve r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G messagebus r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G _ssh r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G rvm r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G ssl-cert r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G postgres r + for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }') + usermod -a -G r r + usermod -s /bin/bash r + echo '%sudo ALL=(ALL) NOPASSWD:ALL' + cp -R /root/.bashrc /root/.cargo /root/.config /root/.gem /root/.gemrc /root/.launchpadlib /root/.m2 /root/.npm /root/.profile /root/.rustup /root/.rvmrc /root/texmf /home/r + cp -R ./chatgpt-key.txt ./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 + cat /home/r/script.sh #!/bin/bash set -e set -o pipefail if [ -e /home/r/.profile ]; then source /home/r/.profile; fi shopt -s expand_aliases alias 'sudo=sudo -i' export HOME=/home/r cd "${HOME}/repo" export 'head=git@github.com:yegor256/blog.git' ; export 'head_branch=master' ; export 'author=yegor256' ; bundle lock --no-color ; bundle install --no-color ; export JEKYLL_ENV=production ; LC_ALL=en_US.UTF-8 bundle exec rake ; mkdir ~/.ssh ; mv ../id_rsa ../id_rsa.pub ~/.ssh ; chmod -R 600 ~/.ssh/* ; echo -e "Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null" > ~/.ssh/config ; git config --global user.email "rultor@yegor256.com" ; git config --global user.name "Rultor" ; echo -e "chatgpt-translate:\n api_key_file: $(pwd)/../chatgpt-key.txt" > _config-deploy.yml ; LC_ALL=en_US.UTF-8 jgd ; rvm default 2.7.6 && source /usr/local/rvm/scripts/rvm ; ruby -v ; gem install ffi -v 1.16.3 ; gem install fontcustom -v 2.0.0 ; fontcustom --version ; "$(pwd)/_glyphs/compile.sh" /tmp/icons ; git checkout gh-pages ; git pull ; for e in svg ttf woff eot css; do cp "/tmp/icons/icons.${e}" css; git add "css/icons.${e}"; done ; git commit -am 'new glyphs' || echo no changes in glyphs ; git push origin gh-pages ; + su --login r --command /home/r/script.sh Using /usr/local/rvm/gems/ruby-3.2.2 Using /usr/local/rvm/gems/ruby-3.2.2 Using /usr/local/rvm/gems/ruby-3.2.2 Using /usr/local/rvm/gems/ruby-3.2.2 Writing lockfile to /home/r/repo/Gemfile.lock Bundler 2.6.8 is running, but your lockfile was generated with 2.5.16. Installing Bundler 2.5.16 and restarting using that version. Fetching gem metadata from https://rubygems.org/. Fetching bundler 2.5.16 Installing bundler 2.5.16 Fetching gem metadata from https://rubygems.org/......... Fetching rake 13.2.1 Installing rake 13.2.1 Fetching Ascii85 2.0.1 Installing Ascii85 2.0.1 Fetching afm 0.2.2 Installing afm 0.2.2 Fetching ast 2.4.3 Installing ast 2.4.3 Fetching fiber-annotation 0.2.0 Installing fiber-annotation 0.2.0 Fetching fiber-storage 1.0.1 Installing fiber-storage 1.0.1 Fetching fiber-local 1.1.0 Installing fiber-local 1.1.0 Fetching json 2.10.2 Installing json 2.10.2 with native extensions Fetching console 1.30.2 Installing console 1.30.2 Fetching io-event 1.10.0 Installing io-event 1.10.0 with native extensions Fetching metrics 0.12.2 Installing metrics 0.12.2 Fetching traces 0.15.2 Installing traces 0.15.2 Fetching async 2.23.1 Installing async 2.23.1 Fetching bigdecimal 3.1.9 Installing bigdecimal 3.1.9 with native extensions Fetching csv 3.3.4 Installing csv 3.3.4 Fetching date 3.4.1 Installing date 3.4.1 with native extensions Fetching ethon 0.16.0 Installing ethon 0.16.0 Fetching event_stream_parser 1.0.0 Installing event_stream_parser 1.0.0 Fetching uri 1.0.3 Installing uri 1.0.3 Fetching net-http 0.6.0 Installing net-http 0.6.0 Fetching faraday-net_http 3.4.0 Installing faraday-net_http 3.4.0 Fetching logger 1.7.0 Installing logger 1.7.0 Fetching faraday 2.13.0 Installing faraday 2.13.0 Fetching multipart-post 2.4.1 Installing multipart-post 2.4.1 Fetching faraday-multipart 1.1.0 Installing faraday-multipart 1.1.0 Fetching fastimage 2.4.0 Installing fastimage 2.4.0 Fetching hashery 2.1.2 Installing hashery 2.1.2 Fetching racc 1.8.1 Installing racc 1.8.1 with native extensions Fetching nokogiri 1.18.7 (x86_64-linux-gnu) Installing nokogiri 1.18.7 (x86_64-linux-gnu) Fetching ruby-rc4 0.1.5 Installing ruby-rc4 0.1.5 Fetching ttfunk 1.8.0 Installing ttfunk 1.8.0 Fetching pdf-reader 2.14.1 Installing pdf-reader 2.14.1 Fetching typhoeus 1.4.1 Installing typhoeus 1.4.1 Fetching yell 2.2.2 Installing yell 2.2.2 Fetching zeitwerk 2.7.2 Installing zeitwerk 2.7.2 Fetching html-proofer 5.0.10 Installing html-proofer 5.0.10 Fetching humanize 3.1.0 Installing humanize 3.1.0 Fetching iri 0.10.0 Installing iri 0.10.0 Fetching iso-639 0.3.8 Installing iso-639 0.3.8 Fetching jekyll-bits 0.15 Installing jekyll-bits 0.15 Fetching redcarpet 3.6.1 Installing redcarpet 3.6.1 with native extensions Fetching ruby-openai 8.1.0 Installing ruby-openai 8.1.0 Fetching tiktoken_ruby 0.0.11.1 (x86_64-linux) Installing tiktoken_ruby 0.0.11.1 (x86_64-linux) Fetching jekyll-chatgpt-translate 0.1.0 Installing jekyll-chatgpt-translate 0.1.0 Fetching jekyll-feed 0.17.0 Installing jekyll-feed 0.17.0 Fetching sawyer 0.9.2 Installing sawyer 0.9.2 Fetching octokit 4.25.1 Installing octokit 4.25.1 Fetching jekyll-gist 1.5.0 Installing jekyll-gist 1.5.0 Fetching jekyll-git-hash 0.1.1 Installing jekyll-git-hash 0.1.1 Fetching jekyll-paginate 1.1.0 Installing jekyll-paginate 1.1.0 Fetching jekyll-plantuml 1.4.2 Installing jekyll-plantuml 1.4.2 Fetching jekyll-redirect-from 0.16.0 Installing jekyll-redirect-from 0.16.0 Fetching sass-listen 4.0.0 Installing sass-listen 4.0.0 Fetching sass 3.7.4 Installing sass 3.7.4 Fetching jekyll-sass 1.1.0 Installing jekyll-sass 1.1.0 Fetching jekyll-shorts 0.0.10 Installing jekyll-shorts 0.0.10 Fetching jekyll-sitemap 1.4.0 Installing jekyll-sitemap 1.4.0 Fetching trollop 2.9.10 Installing trollop 2.9.10 Fetching jgd 1.14.0 Installing jgd 1.14.0 Fetching language_server-protocol 3.17.0.4 Installing language_server-protocol 3.17.0.4 Fetching lint_roller 1.1.0 Installing lint_roller 1.1.0 Fetching mini_mime 1.1.5 Installing mini_mime 1.1.5 Fetching timeout 0.4.3 Installing timeout 0.4.3 Fetching net-protocol 0.2.2 Installing net-protocol 0.2.2 Fetching net-imap 0.5.6 Installing net-imap 0.5.6 Fetching net-smtp 0.5.1 Installing net-smtp 0.5.1 Fetching mail 2.8.1 Installing mail 2.8.1 Fetching nuggets 1.6.1 Installing nuggets 1.6.1 Fetching parallel 1.27.0 Installing parallel 1.27.0 Fetching parser 3.3.8.0 Installing parser 3.3.8.0 Fetching prism 1.4.0 Installing prism 1.4.0 with native extensions Fetching pygments.rb 3.0.0 Installing pygments.rb 3.0.0 Fetching regexp_parser 2.10.0 Installing regexp_parser 2.10.0 Fetching rss 0.3.1 Installing rss 0.3.1 Fetching rubocop-ast 1.44.1 Installing rubocop-ast 1.44.1 Fetching ruby-progressbar 1.13.0 Installing ruby-progressbar 1.13.0 Fetching rubocop 1.75.2 Installing rubocop 1.75.2 Fetching rubocop-minitest 0.38.0 Installing rubocop-minitest 0.38.0 Fetching rubocop-performance 1.25.0 Installing rubocop-performance 1.25.0 Fetching rubocop-rake 0.7.1 Installing rubocop-rake 0.7.1 Fetching rubocop-rspec 3.6.0 Installing rubocop-rspec 3.6.0 Fetching scss_lint 0.60.0 Installing scss_lint 0.60.0 Fetching uuidtools 3.0.0 Installing uuidtools 3.0.0 Fetching w3c_validators 1.3.7 Installing w3c_validators 1.3.7 Bundle complete! 36 Gemfile dependencies, 117 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Post-install message from sass: Ruby Sass has reached end-of-life and should no longer be used. * 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: https://sass-lang.com/blog/posts/7828841 Post-install message from trollop: ! The 'trollop' gem has been deprecated and has been replaced by 'optimist'. ! See: https://rubygems.org/gems/optimist ! And: https://github.com/ManageIQ/optimist Post-install message from nuggets: nuggets-1.6.1 [2022-05-18]: * Ruby 3.1 compatibility. 1 installed gem you directly depend on is looking for funding. Run `bundle fund` for details /usr/local/rvm/gems/ruby-3.2.2/gems/io-event-1.10.0/lib/io/event/support.rb:48: warning: IO::Buffer is experimental and both the Ruby and C interface may change in the future! Building Jekyll site... Configuration file: /home/r/repo/_config.yml /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/ping.rb:13: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER 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/08/27/penalty-for-refusal.html WARN: No front image in /2018/09/07/what-is-speed.html WARN: No front image in /2018/10/01/remote-work.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 /2018/11/23/freelance-vs-outsourcing.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/03/12/how-to-move-faster.html WARN: No front image in /2019/03/26/sales-kit.html WARN: No front image in /2019/03/28/cost-of-zerocrat.html WARN: No front image in /2019/03/29/concerns.html WARN: No front image in /2019/03/30/survival-guide.html WARN: No front image in /2019/04/17/nutch-from-java.html WARN: No front image in /2019/06/26/syncem.html WARN: No front image in /2023/09/05/style-checker-for-bibtex-files.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 pvZDcytPU3w found: SQM 14/24: Tech Debt [software quality crash course] [eng sub] 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 (3409 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 (XDSD), at DevTernity'2016 YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles) File /home/r/repo/uml/52d3d016f2264bbf660a23d5bbe84203.svg created (8678 bytes) YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015 YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27) YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles) YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) YouTube video EDKbYVEInMU found: Built-in Fake Objects YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? YouTube video MNxG1xcA2uA found: Object Thinking Meetup #3: Yegor Bugayenko / How to Inject Less? YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9) YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video LB_YLWhGrco found: Meetings-free Programming YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video GS45LzE3LPQ found: How Much Do You Cost? YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers? YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17) YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles) YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20) YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster YouTube video oiNI2jF46h0 found: Make Customers Trust You YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client? YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video b6r2W3P9vgY found: Blame the Project YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles) YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5) YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017 YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48) YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video LB_YLWhGrco found: Meetings-free Programming YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video AwrMKTFyohg found: #NoMagic YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making YouTube video ODxm7w2DE-g found: #NoSalaries File /home/r/repo/uml/19b92d0465e2e819ffcf88cf46c6e333.svg created (3961 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 (3435 bytes) YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice? File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg created (4562 bytes) YouTube video Xj226o2xI9Y found: Chat Bots vs UI YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video b6r2W3P9vgY found: Blame the Project YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26) YouTube video af6bidlat6Q found: BB1: Будьте смелее, покажите свое резюме YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) File /home/r/repo/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg created (4461 bytes) File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (5502 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 (3495 bytes) File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (3448 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) 33m Build Warning: Layout 'russian' requested in _posts/2016/nov/2016-11-26-yanukovych-v-president.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/nov/2016-11-28-saakashvili-speaks-ukrainian.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-01-what-is-wrong-about-guns.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-05-who-needs-war.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-08-lustration-in-ukraine.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-12-putin-is-power.md does not exist.0m File /home/r/repo/uml/45d05ab3bd9a93ad88ec209352b62f60.svg created (3225 bytes) 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-15-onishenko-our-hero.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-19-are-you-ashamed-of-voting.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-19-privatbank-nationalization.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-22-what-causes-terrorism.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-26-what-would-you-ask-putin.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-29-who-wants-our-donations.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-30-tu154-sochi.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-02-ukraine-budget-2017.md does not exist.0m YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21) YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-05-justice-against-corruption.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-12-will-i-go-to-war.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-16-ukrainian-startups.md does not exist.0m YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-23-consciousness-and-revolution.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-30-lifetime-imprisonment-for-separatism.md does not exist.0m YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31) 33m Build Warning: Layout 'russian' requested in _posts/2017/feb/2017-02-06-how-to-eliminate-corruption.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/feb/2017-02-20-nationalism-of-the-future.md does not exist.0m YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles) 33m Build Warning: Layout 'russian' requested in _posts/2017/mar/2017-03-02-history-of-separatism.md does not exist.0m YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23) 33m Build Warning: Layout 'russian' requested in _posts/2017/apr/2017-04-18-dnepr-corruption-item.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/apr/2017-04-24-slaves-of-the-law.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/may/2017-05-15-loyalty.md does not exist.0m YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs 33m Build Warning: Layout 'russian' requested in _posts/2017/jun/2017-06-29-activists.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jul/2017-07-27-sabotage-failed.md does not exist.0m YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good! YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52) YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28) YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30) YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2017/oct/2017-10-24-motherland.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/oct/2017-10-30-ukrainian-language.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/nov/2017-11-08-crimea.md does not exist.0m YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) 33m Build Warning: Layout 'russian' requested in _posts/2017/nov/2017-11-22-opposition.md does not exist.0m 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 33m Build Warning: Layout 'russian' requested in _posts/2018/jan/2018-01-03-fake-opposition.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2018/jan/2018-01-10-dalles-plan.md does not exist.0m 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) 33m Build Warning: Layout 'russian' requested in _posts/2018/mar/2018-03-17-putin-election.md does not exist.0m 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. 33m Build Warning: Layout 'russian' requested in _posts/2018/mar/2018-03-25-why-gas.md does not exist.0m YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) YouTube video vXUwE3FGfpg found: #NoAltruism YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35) YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36) YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out. YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37) YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea! YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2018/oct/2018-10-07-history-simplification.md does not exist.0m 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 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-13-country-as-a-service.md does not exist.0m YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-20-drugs.md does not exist.0m YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-28-the-wall.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/feb/2019-02-16-calibrated-democracy.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/feb/2019-02-21-jews-vs-french.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/mar/2019-03-17-terrorism-and-power.md does not exist.0m YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42) YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project 33m Build Warning: Layout 'russian' requested in _posts/2019/apr/2019-04-28-formula-of-happiness.md does not exist.0m YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results 33m Build Warning: Layout 'russian' requested in _posts/2019/jul/2019-07-07-strong-opinions.md does not exist.0m YouTube video 5FckPa6aOok found: M193: What is fun and joy for you, being a programmer? 33m Build Warning: Layout 'russian' requested in _posts/2019/jul/2019-07-31-moscow-protests.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/sep/2019-09-15-revolution-bottom-up.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/sep/2019-09-28-what-is-the-point.md does not exist.0m YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49) 33m Build Warning: Layout 'russian' requested in _posts/2019/dec/2019-12-31-testosterone.md does not exist.0m YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source) File /home/r/repo/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg created (13459 bytes) File /home/r/repo/uml/930f06f36724929287c1ee82fd95c77b.svg created (8543 bytes) YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51) File /home/r/repo/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg created (17876 bytes) 33m Build Warning: Layout 'russian' requested in _posts/2020/mar/2020-03-29-coronavirus.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2020/may/2020-05-02-first-world-hysteria.md does not exist.0m YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50) 33m Build Warning: Layout 'russian' requested in _posts/2020/jun/2020-06-12-protesters.md does not exist.0m YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics 33m Build Warning: Layout 'russian' requested in _posts/2020/jul/2020-07-05-silence-doesnt-cure.md does not exist.0m YouTube video fJvUTlPHSvU found: Encapsulation Is Dead, Let's Use Distance of Coupling Instead (Webinar #55) YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2020/nov/2020-11-21-svoboda-and-conflicts.md does not exist.0m YouTube video WZlIb5oxDBQ found: M152: There is no management without personal responsibility YouTube video TmAJPeM4UlE found: M153: How managers in self-managing orgs judge your performance? YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative YouTube video QaKIw1Bh3Oc found: EOLANG: Basics YouTube video ulrMXmIcC4w found: M167: Sometimes you have to be an imposter, either you like it or not YouTube video 65baOBHeVMI found: Yegor Bugayenko: Opening YouTube video dlPk1AE2aQk found: M170: recruiters may do a better job if listen to us programmers YouTube video 939ntzufGB0 found: M178: Try to focus your team on artifacts and their delivery status YouTube video 2IwBc9UI4Sg found: SIMBA: Simplified Management by Artifacts (at Merge Conf) YouTube video Qii3yrQJdHs found: M179: Calibrated Achievement Points (CAP) to measure R&D productivity YouTube video 8qfd93SyXpM found: SSD 13/16: Test-Driven Development [software design crash course] YouTube video 4I8BflW7EpU found: M188: I don't think ML will ever be able to write code YouTube video jiEJnLBowHc found: M190: Make sure the bugs you report explain the simplest possible scenarios YouTube video Y0Zx_sdVG48 found: M199: Unit tests are the Safety Net that you can't afford to not use YouTube video C6CQWzOKEJs found: Object Thinking #7: Yegor Bugayenko / Immutability + Generics 33m Build Warning: Layout 'russian' requested in _posts/2023/aug/2023-08-13-dictators.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2023/aug/2023-08-27-immigration-by-war.md does not exist.0m YouTube video gHznfuhRR60 found: AIIN'23: Robots vs. Programmers, How soon will computers fire us? 33m Build Warning: Layout 'russian' requested in _posts/2023/sep/2023-09-17-turbulence.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2023/oct/2023-10-01-individualism-vs-collectivism.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/jan/2024-01-03-not-able-to-speak.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/apr/2024-04-02-kulikovo-pole.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/may/2024-05-27-freedom-of-speech-vs-intelligence.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/sep/2024-09-21-interpreters-of-chaos.md does not exist.0m 473 AMP pages generated in 37.96s places.txt generated tags.txt generated stats.svg generated Jekyll Feed: Generating feed for posts jekyll-shorts 0.0.10: 473 link(s) generated in 0.01s jekyll-chatgpt-translate 0.1.0 starting... jekyll-chatgpt-translate requires OPENAI_API_KEY environment variable 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 pvZDcytPU3w found: SQM 14/24: Tech Debt [software quality crash course] [eng sub] ......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 (3409 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 (XDSD), at DevTernity'2016 YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team ..........YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) .YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) ......YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles) File /home/r/repo/uml/52d3d016f2264bbf660a23d5bbe84203.svg already exists (8678 bytes) .YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? ..........YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015 YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls .YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. .......YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27) ........YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release ..YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles) ..YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) YouTube video EDKbYVEInMU found: Built-in Fake Objects .YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? .YouTube video MNxG1xcA2uA found: Object Thinking Meetup #3: Yegor Bugayenko / How to Inject Less? YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9) ...YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video LB_YLWhGrco found: Meetings-free Programming .YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls .YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) ....YouTube video PNSezrlemsY found: Hacker vs Designer Mentality .YouTube video GS45LzE3LPQ found: How Much Do You Cost? YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers? ..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? .YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate .YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) .YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17) .YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles) YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern ..YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20) .YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) .YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster YouTube video oiNI2jF46h0 found: Make Customers Trust You YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager .YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) .YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client? .YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers YouTube video pt9uHp35fwM found: Meetings Or Discipline ...YouTube video b6r2W3P9vgY found: Blame the Project YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) .......YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) .YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) ..YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) .YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles) .YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5) ..YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) ....YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017 .....YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) .YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) .YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) ..YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster .YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) ..YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have .YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project .....YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) ..YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48) ..YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video LB_YLWhGrco found: Meetings-free Programming YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video AwrMKTFyohg found: #NoMagic YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making ..YouTube video ODxm7w2DE-g found: #NoSalaries ..File /home/r/repo/uml/19b92d0465e2e819ffcf88cf46c6e333.svg already exists (3961 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 (3435 bytes) YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice? File /home/r/repo/uml/d103661ebf8494340e260442970bf4af.svg already exists (4562 bytes) YouTube video Xj226o2xI9Y found: Chat Bots vs UI YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots ....YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code .....YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video b6r2W3P9vgY found: Blame the Project .YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) ....YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) .YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26) ...YouTube video af6bidlat6Q found: BB1: Будьте смелее, покажите свое резюме ..YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) ..File /home/r/repo/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg already exists (4461 bytes) File /home/r/repo/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg already exists (5502 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 (3495 bytes) File /home/r/repo/uml/cad4de541e1ab10d3d9d751c661fe63f.svg already exists (3448 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 (3225 bytes) ..YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21) YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more ..YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) ..YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31) ...YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles) .....YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23) .......YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests .YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs ..........YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good! .YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52) .......YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28) ...YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30) .YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) ..YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) ..YouTube video uhDmHkMAYnM found: Micro-management vs. micro-tasking (webinar #25) YouTube video tHeXxLdGqqI found: M19: Want to pay-by-result? You have to do microtasking first, otherwise nothing will work. YouTube video 1rmZN3r5SWg found: M27: Microtasking enables more accurate and precise estimates of a software project's future .........YouTube video F3bjFXFRsI8 found: M20: Reporting bugs and deciding whether they should be fixed are two separate activities! ...YouTube video 55mwAbuDrV8 found: Quality vs. Quantity (in Russian) .YouTube video REj8pJesMVI found: The Alternative to Fluent Interfaces in Java (webinar #33) .YouTube video AwrMKTFyohg found: #NoMagic YouTube video GozQCUH2D0I found: M22: Both full-time hiring and outsourcing will lead your project to failure, Zerocracy won't. .YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) ...YouTube video vXUwE3FGfpg found: #NoAltruism .YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill ...YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35) ...YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36) .YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out. .YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose .YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37) ...YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea! ..YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough ..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) ..YouTube video ezE0hRH9BnQ found: M54: Make sure you control your programmers and do it explicitly and openly .YouTube video fVMml2vpP-Y found: M13: A message without a context is unprofessional and very annoying for the listener; don't do it! ....YouTube video 2oAW9LmYJI4 found: M8: Since most tech editors have no idea what they are doing, ignore them ......YouTube video gMJNz9AWbQE found: M1: Your enthusiasm may only harm the project if you can't deliver it incrementally .YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making .YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak .......YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way .YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42) ........YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project ..YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong ..YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete .YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results .....YouTube video 5FckPa6aOok found: M193: What is fun and joy for you, being a programmer? ......YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) ..YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49) .....YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source) ..File /home/r/repo/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg already exists (13459 bytes) File /home/r/repo/uml/930f06f36724929287c1ee82fd95c77b.svg already exists (8543 bytes) YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51) .File /home/r/repo/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg already exists (17876 bytes) .YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills ..YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50) .YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics ....YouTube video fJvUTlPHSvU found: Encapsulation Is Dead, Let's Use Distance of Coupling Instead (Webinar #55) .YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team ..YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) ...YouTube video WZlIb5oxDBQ found: M152: There is no management without personal responsibility .YouTube video TmAJPeM4UlE found: M153: How managers in self-managing orgs judge your performance? .YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative .YouTube video QaKIw1Bh3Oc found: EOLANG: Basics .YouTube video ulrMXmIcC4w found: M167: Sometimes you have to be an imposter, either you like it or not .YouTube video 65baOBHeVMI found: Yegor Bugayenko: Opening .YouTube video dlPk1AE2aQk found: M170: recruiters may do a better job if listen to us programmers ...YouTube video 939ntzufGB0 found: M178: Try to focus your team on artifacts and their delivery status YouTube video 2IwBc9UI4Sg found: SIMBA: Simplified Management by Artifacts (at Merge Conf) .YouTube video Qii3yrQJdHs found: M179: Calibrated Achievement Points (CAP) to measure R&D productivity ..YouTube video 8qfd93SyXpM found: SSD 13/16: Test-Driven Development [software design crash course] .YouTube video 4I8BflW7EpU found: M188: I don't think ML will ever be able to write code .YouTube video jiEJnLBowHc found: M190: Make sure the bugs you report explain the simplest possible scenarios ...YouTube video Y0Zx_sdVG48 found: M199: Unit tests are the Safety Net that you can't afford to not use ...YouTube video C6CQWzOKEJs found: Object Thinking #7: Yegor Bugayenko / Immutability + Generics ...........YouTube video gHznfuhRR60 found: AIIN'23: Robots vs. Programmers, How soon will computers fire us? .......................................................................345,379 words in the entire blog, 13,841 uniques 33m1mDeprecation Warning0m [34mimport0m]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. More info and automated migrator: https://sass-lang.com/d/import 34m ╷0m 34m6 │0m @import 31m'disqus'0m; 34m │0m 31m ^^^^^^^^0m 34m ╵0m /home/r/repo/css/layout.scss 6:9 root stylesheet 33m1mDeprecation Warning0m [34mimport0m]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. More info and automated migrator: https://sass-lang.com/d/import 34m ╷0m 34m7 │0m @import 31m'defs'0m; 34m │0m 31m ^^^^^^0m 34m ╵0m /home/r/repo/css/layout.scss 7:9 root stylesheet 33m1mDeprecation Warning0m [34mimport0m]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. More info and automated migrator: https://sass-lang.com/d/import 34m ╷0m 34m8 │0m @import 31m'fonts'0m; 34m │0m 31m ^^^^^^^0m 34m ╵0m /home/r/repo/css/layout.scss 8:9 root stylesheet 33m1mDeprecation Warning0m [34mimport0m]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. More info and automated migrator: https://sass-lang.com/d/import 34m ╷0m 34m9 │0m @import 31m'highlight'0m; 34m │0m 31m ^^^^^^^^^^^0m 34m ╵0m /home/r/repo/css/layout.scss 9:9 root stylesheet 33m1mDeprecation Warning0m [34mimport0m]: Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0. More info and automated migrator: https://sass-lang.com/d/import 34m ╷0m 34m10 │0m @import 31m'ico'0m; 34m │0m 31m ^^^^^0m 34m ╵0m /home/r/repo/css/layout.scss 10:9 root stylesheet 33m1mWarning0m: 8 repetitive deprecation warnings omitted. Run in verbose mode to see all warnings. 33m Conflict: The following destination is shared by multiple files.0m 33m The written file may end up with unexpected contents.0m 33m 36m/home/r/repo/_site/rss.xml0m0m 33m - rss.xml0m 33m - /home/r/repo/_site/rss.xml0m 33m 0m /home/r/repo/_site/buffer.rss created (211634 bytes) /home/r/repo/_site/gnuplot/2014/11/hoc-vs-loc.svg created (89739 bytes) /home/r/repo/_site/places.txt created (1030 bytes) /home/r/repo/_site/tags.txt created (1185 bytes) /home/r/repo/_site/stats.svg created (62379 bytes) /home/r/repo/_site/words.txt created (93299 bytes) done in 141.394 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 No spelling errors No prohibited regular expressions in 1119 pages All articles have excerpts All snippets are compact enough https://www.yegor256.com/2010/03/04/pdd.html: 13 https://www.yegor256.com/2013/12/29/proto.html: 4 https://www.yegor256.com/2014/04/06/introduction.html: 9 https://www.yegor256.com/2014/04/06/movies-for-thanasis.html: 11 https://www.yegor256.com/2014/04/06/phandom.html: 11 https://www.yegor256.com/2014/04/09/xembly-intro.html: 13 https://www.yegor256.com/2014/04/11/cost-of-loc.html: 20 https://www.yegor256.com/2014/04/11/jcabi-http-intro.html: 15 https://www.yegor256.com/2014/04/12/puzzle-driven-development-by-roles.html: 17 https://www.yegor256.com/2014/04/13/bugs-are-welcome.html: 30 https://www.yegor256.com/2014/04/13/no-obligations-principle.html: 21 https://www.yegor256.com/2014/04/14/jcabi-dynamo-java-api-of-aws-dynamodb.html: 13 https://www.yegor256.com/2014/04/15/definition-of-done.html: 13 https://www.yegor256.com/2014/04/15/github-guidelines.html: 14 https://www.yegor256.com/2014/04/17/how-xdsd-is-different.html: 28 https://www.yegor256.com/2014/04/18/jcabi-http-server-mocking.html: 11 https://www.yegor256.com/2014/04/20/how-hourly-rate-is-calculated.html: 9 https://www.yegor256.com/2014/04/21/s3-http-basic-auth.html: 13 https://www.yegor256.com/2014/04/24/java-xml-parsing-and-traversing.html: 21 https://www.yegor256.com/2014/04/26/incremental-requirements-with-requs.html: 12 https://www.yegor256.com/2014/04/27/typical-mistakes-in-java-code.html: 9 https://www.yegor256.com/2014/04/28/xml-xpath-hamcrest-matchers.html: 11 https://www.yegor256.com/2014/04/29/w3c-java-validators.html: 11 https://www.yegor256.com/2014/05/01/dynamodb-local-maven-plugin.html: 14 https://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html: 58 https://www.yegor256.com/2014/05/13/why-null-is-bad.html: 35 https://www.yegor256.com/2014/05/14/object-oriented-github-java-sdk.html: 12 https://www.yegor256.com/2014/05/18/cloud-autoincrement-counters.html: 11 https://www.yegor256.com/2014/05/21/mysql-maven-plugin.html: 12 https://www.yegor256.com/2014/05/23/avoid-java-static-logger.html: 14 https://www.yegor256.com/2014/05/26/amazon-s3-java-oop-adapter.html: 13 https://www.yegor256.com/2014/06/01/aop-aspectj-java-method-logging.html: 17 https://www.yegor256.com/2014/06/09/objects-should-be-immutable.html: 48 https://www.yegor256.com/2014/06/19/avoid-string-concatenation.html: 9 https://www.yegor256.com/2014/06/20/limit-method-execution-time.html: 11 https://www.yegor256.com/2014/06/21/casperjs-with-maven.html: 12 https://www.yegor256.com/2014/06/24/jekyll-github-deploy.html: 13 https://www.yegor256.com/2014/06/25/xml-and-xslt-in-browser.html: 17 https://www.yegor256.com/2014/06/26/sass-in-java-webapp.html: 10 https://www.yegor256.com/2014/06/29/custom-lexer-in-jekyll.html: 9 https://www.yegor256.com/2014/07/03/how-to-read-manifest-mf.html: 11 https://www.yegor256.com/2014/07/20/liquibase-in-maven.html: 12 https://www.yegor256.com/2014/07/21/read-only-master-branch.html: 34 https://www.yegor256.com/2014/07/24/rultor-automated-merging.html: 29 https://www.yegor256.com/2014/07/29/docker-in-rultor.html: 16 https://www.yegor256.com/2014/07/31/travis-and-rultor.html: 13 https://www.yegor256.com/2014/08/03/cacheable-java-annotation.html: 13 https://www.yegor256.com/2014/08/13/strict-code-quality-control.html: 36 https://www.yegor256.com/2014/08/15/retry-java-method-on-exception.html: 15 https://www.yegor256.com/2014/08/18/fluent-jdbc-decorator.html: 12 https://www.yegor256.com/2014/08/19/how-to-release-to-maven-central.html: 23 https://www.yegor256.com/2014/08/22/art-of-software-testing.html: 14 https://www.yegor256.com/2014/08/25/deploy-to-cloudbees.html: 15 https://www.yegor256.com/2014/08/26/publish-to-rubygems.html: 16 https://www.yegor256.com/2014/08/29/docker-non-root.html: 11 https://www.yegor256.com/2014/09/02/java-ssh-client.html: 11 https://www.yegor256.com/2014/09/09/restful-web-sites.html: 13 https://www.yegor256.com/2014/09/10/anti-patterns-in-oop.html: 17 https://www.yegor256.com/2014/09/11/deployment-script-vs-rultor.html: 17 https://www.yegor256.com/2014/09/13/deploying-to-heroku.html: 13 https://www.yegor256.com/2014/09/16/getters-and-setters-are-evil.html: 51 https://www.yegor256.com/2014/09/22/remote-programming-interview.html: 5 https://www.yegor256.com/2014/09/23/built-in-fake-objects.html: 18 https://www.yegor256.com/2014/09/24/why-monetary-awards-dont-work.html: 30 https://www.yegor256.com/2014/10/03/di-containers-are-evil.html: 22 https://www.yegor256.com/2014/10/05/ten-hosted-continuous-integration-services.html: 14 https://www.yegor256.com/2014/10/06/software-project-lifecycle.html: 14 https://www.yegor256.com/2014/10/07/stop-chatting-start-coding.html: 32 https://www.yegor256.com/2014/10/08/continuous-integration-is-dead.html: 41 https://www.yegor256.com/2014/10/12/who-is-software-architect.html: 46 https://www.yegor256.com/2014/10/20/how-we-write-product-vision.html: 11 https://www.yegor256.com/2014/10/21/incremental-billing.html: 17 https://www.yegor256.com/2014/10/23/paired-brackets-notation.html: 9 https://www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html: 26 https://www.yegor256.com/2014/10/29/how-much-do-you-cost.html: 43 https://www.yegor256.com/2014/11/03/empty-line-code-smell.html: 12 https://www.yegor256.com/2014/11/07/how-immutability-helps.html: 17 https://www.yegor256.com/2014/11/14/hits-of-code.html: 22 https://www.yegor256.com/2014/11/20/seven-virtues-of-good-object.html: 47 https://www.yegor256.com/2014/11/24/principles-of-bug-tracking.html: 20 https://www.yegor256.com/2014/12/01/orm-offensive-anti-pattern.html: 36 https://www.yegor256.com/2014/12/04/synchronization-between-nodes.html: 11 https://www.yegor256.com/2014/12/09/immutable-object-state-and-behavior.html: 15 https://www.yegor256.com/2014/12/15/how-much-your-objects-encapsulate.html: 12 https://www.yegor256.com/2014/12/18/independent-technical-reviews.html: 22 https://www.yegor256.com/2014/12/22/immutable-objects-not-dumb.html: 13 https://www.yegor256.com/2015/01/05/how-to-be-honest-and-keep-customer.html: 13 https://www.yegor256.com/2015/01/08/morning-standup-meetings.html: 27 https://www.yegor256.com/2015/01/10/windows-appveyor-maven.html: 9 https://www.yegor256.com/2015/01/12/compound-name-is-code-smell.html: 12 https://www.yegor256.com/2015/01/15/how-to-cut-corners.html: 24 https://www.yegor256.com/2015/01/21/if-then-throw-else.html: 11 https://www.yegor256.com/2015/01/26/happy-boss-false-objective.html: 41 https://www.yegor256.com/2015/02/02/xsl-transformations-in-java.html: 13 https://www.yegor256.com/2015/02/05/jcabi-parent-maven-pom.html: 16 https://www.yegor256.com/2015/02/09/serious-code-reviewer.html: 15 https://www.yegor256.com/2015/02/12/top-down-design.html: 11 https://www.yegor256.com/2015/02/16/it-is-not-a-school.html: 25 https://www.yegor256.com/2015/02/20/utility-classes-vs-functional-programming.html: 20 https://www.yegor256.com/2015/02/23/haircut.html: 14 https://www.yegor256.com/2015/02/26/composable-decorators.html: 28 https://www.yegor256.com/2015/03/02/team-morale-myths-and-reality.html: 29 https://www.yegor256.com/2015/03/09/objects-end-with-er.html: 25 https://www.yegor256.com/2015/03/16/technical-glossaries.html: 11 https://www.yegor256.com/2015/03/22/takes-java-web-framework.html: 15 https://www.yegor256.com/2015/03/26/jaxb-vs-xembly.html: 14 https://www.yegor256.com/2015/03/29/rultor-with-appveyor.html: 11 https://www.yegor256.com/2015/04/02/class-casting-is-anti-pattern.html: 22 https://www.yegor256.com/2015/04/13/tacit-css-framework-for-dummies.html: 11 https://www.yegor256.com/2015/04/16/award.html: 11 https://www.yegor256.com/2015/04/22/favorite-software-books.html: 10 https://www.yegor256.com/2015/04/30/iterating-adapter.html: 9 https://www.yegor256.com/2015/05/04/how-to-protect-business-idea.html: 12 https://www.yegor256.com/2015/05/07/ctors-must-be-code-free.html: 30 https://www.yegor256.com/2015/05/11/software-architect-responsibilities.html: 17 https://www.yegor256.com/2015/05/13/two-instruments-of-software-architect.html: 11 https://www.yegor256.com/2015/05/18/cookie-based-authentication.html: 11 https://www.yegor256.com/2015/05/21/avoid-software-outsourcing-disaster.html: 23 https://www.yegor256.com/2015/05/25/unit-test-scaffolding.html: 13 https://www.yegor256.com/2015/05/28/one-primary-constructor.html: 20 https://www.yegor256.com/2015/06/02/how-to-estimate-software-cost.html: 31 https://www.yegor256.com/2015/06/08/deadly-sins-software-project.html: 27 https://www.yegor256.com/2015/06/11/wikipedia-bug-definition.html: 13 https://www.yegor256.com/2015/06/15/software-outsourcing-survival-guide.html: 13 https://www.yegor256.com/2015/06/18/good-programmers-bug-free.html: 13 https://www.yegor256.com/2015/06/22/valid-reasons-to-reject-bug-fix.html: 12 https://www.yegor256.com/2015/06/25/xml-data-xsl-views-takes-framework.html: 13 https://www.yegor256.com/2015/06/29/simple-diagrams.html: 17 https://www.yegor256.com/2015/07/06/public-static-literals.html: 14 https://www.yegor256.com/2015/07/09/catch-if-cant-otherwise.html: 10 https://www.yegor256.com/2015/07/13/meetings-are-legalized-robbery.html: 20 https://www.yegor256.com/2015/07/16/fools-dont-write-unit-tests.html: 11 https://www.yegor256.com/2015/07/21/hourly-pay-modern-slavery.html: 57 https://www.yegor256.com/2015/07/28/checked-vs-unchecked-exceptions.html: 18 https://www.yegor256.com/2015/08/04/nine-steps-start-software-project.html: 12 https://www.yegor256.com/2015/08/18/multiple-return-statements-in-oop.html: 15 https://www.yegor256.com/2015/08/25/fail-fast.html: 14 https://www.yegor256.com/2015/09/01/redundant-variables-are-evil.html: 12 https://www.yegor256.com/2015/09/07/maven-repository-amazon-s3.html: 13 https://www.yegor256.com/2015/09/10/testing-exit-criteria.html: 12 https://www.yegor256.com/2015/09/16/how-to-fire-someone-right.html: 33 https://www.yegor256.com/2015/09/22/micromanagement.html: 60 https://www.yegor256.com/2015/09/29/mayonnaise.html: 17 https://www.yegor256.com/2015/10/01/vertical-horizontal-decorating.html: 13 https://www.yegor256.com/2015/10/06/how-to-be-good-office-slave.html: 59 https://www.yegor256.com/2015/10/13/competition-without-rules.html: 25 https://www.yegor256.com/2015/10/16/ridley-scott-and-joseph-goebbels.html: 14 https://www.yegor256.com/2015/10/17/award-2016.html: 10 https://www.yegor256.com/2015/10/20/interrupted-exception.html: 10 https://www.yegor256.com/2015/10/27/outsourcing-doesnt-work.html: 36 https://www.yegor256.com/2015/11/03/chatbot-better-than-ui-for-microservice.html: 13 https://www.yegor256.com/2015/11/10/ten-mistakes-in-specs.html: 36 https://www.yegor256.com/2015/11/16/json-vs-xml.html: 20 https://www.yegor256.com/2015/11/21/ringelmann-effect-vs-agile.html: 21 https://www.yegor256.com/2015/11/24/imprisonment-for-irresponsible-coding.html: 16 https://www.yegor256.com/2015/12/01/rethrow-exceptions.html: 30 https://www.yegor256.com/2015/12/08/temporal-coupling-between-method-calls.html: 19 https://www.yegor256.com/2015/12/16/investors-are-too-scared.html: 10 https://www.yegor256.com/2015/12/22/why-dont-you-contribute-to-open-source.html: 40 https://www.yegor256.com/2015/12/29/turnover-is-good-for-maintainability.html: 13 https://www.yegor256.com/2016/01/05/how-to-punish-employees.html: 33 https://www.yegor256.com/2016/01/12/good-programmers-dont-work-for-equity.html: 15 https://www.yegor256.com/2016/01/19/how-expensive-is-outsourcing.html: 14 https://www.yegor256.com/2016/01/26/defensive-programming.html: 11 https://www.yegor256.com/2016/02/03/design-patterns-and-anti-patterns.html: 23 https://www.yegor256.com/2016/02/09/are-you-still-debugging.html: 16 https://www.yegor256.com/2016/02/18/holacracy-autocracy.html: 24 https://www.yegor256.com/2016/03/01/how-we-interview-programmers.html: 13 https://www.yegor256.com/2016/03/08/pimp-up-your-resume.html: 19 https://www.yegor256.com/2016/03/15/wring-dispatcher-github-notifications.html: 13 https://www.yegor256.com/2016/03/22/try-finally-if-not-null.html: 12 https://www.yegor256.com/2016/03/28/unspoken-secrets-of-elevator-pitch.html: 13 https://www.yegor256.com/2016/03/30/jare-instant-free-cdn.html: 11 https://www.yegor256.com/2016/04/05/printers-instead-of-getters.html: 24 https://www.yegor256.com/2016/04/08/revenue-may-kill-startup.html: 10 https://www.yegor256.com/2016/04/12/java-annotations-are-evil.html: 25 https://www.yegor256.com/2016/04/19/object-must-not-be-configurable.html: 14 https://www.yegor256.com/2016/04/26/why-inputstream-design-is-wrong.html: 25 https://www.yegor256.com/2016/05/03/test-methods-must-share-nothing.html: 12 https://www.yegor256.com/2016/05/10/keynote-clowns.html: 18 https://www.yegor256.com/2016/05/17/convertible-notes.html: 11 https://www.yegor256.com/2016/05/24/who-is-project-manager.html: 49 https://www.yegor256.com/2016/06/03/conference-mistakes.html: 10 https://www.yegor256.com/2016/06/17/dont-use-java-assertions.html: 10 https://www.yegor256.com/2016/06/21/how-to-hire-programmer.html: 15 https://www.yegor256.com/2016/06/27/singletons-must-die.html: 20 https://www.yegor256.com/2016/07/06/data-transfer-object.html: 35 https://www.yegor256.com/2016/07/10/software-project-roles.html: 13 https://www.yegor256.com/2016/07/11/mistakes-in-agile-manifesto.html: 23 https://www.yegor256.com/2016/07/14/who-is-object.html: 33 https://www.yegor256.com/2016/07/18/law-of-demeter.html: 10 https://www.yegor256.com/2016/07/21/convince-me.html: 19 https://www.yegor256.com/2016/07/26/active-record.html: 10 https://www.yegor256.com/2016/08/01/continuous-integration-maturity.html: 12 https://www.yegor256.com/2016/08/05/distributed-teams-are-higher-quality.html: 14 https://www.yegor256.com/2016/08/10/if-then-else-code-smell.html: 11 https://www.yegor256.com/2016/08/15/what-is-wrong-object-oriented-programming.html: 32 https://www.yegor256.com/2016/08/23/communication-maturity.html: 25 https://www.yegor256.com/2016/08/30/decomposition-of-responsibility.html: 10 https://www.yegor256.com/2016/09/07/gradients-of-immutability.html: 12 https://www.yegor256.com/2016/09/13/inheritance-is-procedural.html: 21 https://www.yegor256.com/2016/09/20/oop-without-classes.html: 14 https://www.yegor256.com/2016/09/27/command-control-innovate.html: 21 https://www.yegor256.com/2016/10/23/award-2017.html: 9 https://www.yegor256.com/2016/11/09/why-no-ebooks.html: 13 https://www.yegor256.com/2016/11/18/software-conferences-to-attend.html: 5 https://www.yegor256.com/2016/11/21/naked-data.html: 42 https://www.yegor256.com/2016/11/26/yanukovych-v-president.html: 13 https://www.yegor256.com/2016/11/28/saakashvili-speaks-ukrainian.html: 16 https://www.yegor256.com/2016/11/29/eolang.html: 12 https://www.yegor256.com/2016/12/01/what-is-wrong-about-guns.html: 11 https://www.yegor256.com/2016/12/05/who-needs-war.html: 14 https://www.yegor256.com/2016/12/06/how-to-pay-programmers-less.html: 22 https://www.yegor256.com/2016/12/08/lustration-in-ukraine.html: 13 https://www.yegor256.com/2016/12/12/putin-is-power.html: 9 https://www.yegor256.com/2016/12/13/mvc-vs-oop.html: 16 https://www.yegor256.com/2016/12/15/onishenko-our-hero.html: 10 https://www.yegor256.com/2016/12/19/are-you-ashamed-of-voting.html: 13 https://www.yegor256.com/2016/12/19/privatbank-nationalization.html: 12 https://www.yegor256.com/2016/12/20/can-objects-be-friends.html: 16 https://www.yegor256.com/2016/12/22/what-causes-terrorism.html: 13 https://www.yegor256.com/2016/12/26/what-would-you-ask-putin.html: 11 https://www.yegor256.com/2016/12/29/who-wants-our-donations.html: 14 https://www.yegor256.com/2016/12/30/tu154-sochi.html: 8 https://www.yegor256.com/2017/01/02/ukraine-budget-2017.html: 9 https://www.yegor256.com/2017/01/03/how-much-you-love-conflicts.html: 17 https://www.yegor256.com/2017/01/05/justice-against-corruption.html: 14 https://www.yegor256.com/2017/01/10/how-to-teach-customers.html: 11 https://www.yegor256.com/2017/01/12/will-i-go-to-war.html: 9 https://www.yegor256.com/2017/01/16/ukrainian-startups.html: 9 https://www.yegor256.com/2017/01/17/synchronized-decorators.html: 18 https://www.yegor256.com/2017/01/23/consciousness-and-revolution.html: 10 https://www.yegor256.com/2017/01/24/career-advice.html: 20 https://www.yegor256.com/2017/01/30/lifetime-imprisonment-for-separatism.html: 12 https://www.yegor256.com/2017/01/31/decorating-envelopes.html: 13 https://www.yegor256.com/2017/02/06/how-to-eliminate-corruption.html: 14 https://www.yegor256.com/2017/02/07/private-method-is-new-class.html: 15 https://www.yegor256.com/2017/02/14/stackoverflow-is-your-tool.html: 15 https://www.yegor256.com/2017/02/20/nationalism-of-the-future.html: 8 https://www.yegor256.com/2017/02/21/say-no-to-google-recruiters.html: 20 https://www.yegor256.com/2017/02/28/too-many-classes.html: 17 https://www.yegor256.com/2017/03/02/history-of-separatism.html: 13 https://www.yegor256.com/2017/03/07/traits-and-mixins.html: 13 https://www.yegor256.com/2017/03/24/tdd-that-works.html: 25 https://www.yegor256.com/2017/03/28/solid.html: 18 https://www.yegor256.com/2017/04/05/pdd-in-action.html: 14 https://www.yegor256.com/2017/04/11/flexibility-equates-lower-quality.html: 17 https://www.yegor256.com/2017/04/18/dnepr-corruption-item.html: 8 https://www.yegor256.com/2017/04/18/no-help-via-email.html: 13 https://www.yegor256.com/2017/04/24/slaves-of-the-law.html: 8 https://www.yegor256.com/2017/04/25/sixnines.html: 11 https://www.yegor256.com/2017/05/02/remote-slaves.html: 18 https://www.yegor256.com/2017/05/10/inversion-of-control.html: 9 https://www.yegor256.com/2017/05/15/loyalty.html: 10 https://www.yegor256.com/2017/05/16/monikers.html: 11 https://www.yegor256.com/2017/05/17/single-statement-unit-tests.html: 13 https://www.yegor256.com/2017/05/23/unlimited-number-of-bugs.html: 17 https://www.yegor256.com/2017/05/30/why-contribute-to-open-source.html: 13 https://www.yegor256.com/2017/06/06/gluten-free-management.html: 15 https://www.yegor256.com/2017/06/13/dynamodb-rack-maven.html: 12 https://www.yegor256.com/2017/06/22/object-oriented-input-output-in-cactoos.html: 15 https://www.yegor256.com/2017/06/27/my-environment.html: 12 https://www.yegor256.com/2017/06/29/activists.html: 10 https://www.yegor256.com/2017/07/04/sexism.html: 12 https://www.yegor256.com/2017/07/11/how-to-redesign-equals.html: 11 https://www.yegor256.com/2017/07/18/sexual-harassment.html: 12 https://www.yegor256.com/2017/07/25/my-favorite-websites.html: 8 https://www.yegor256.com/2017/07/27/sabotage-failed.html: 9 https://www.yegor256.com/2017/08/01/how-to-manage-a-manager.html: 20 https://www.yegor256.com/2017/08/08/raii-in-java.html: 12 https://www.yegor256.com/2017/08/15/bitcoin-pyramid.html: 10 https://www.yegor256.com/2017/08/22/to-be-nice-or-not.html: 9 https://www.yegor256.com/2017/08/29/xcop.html: 11 https://www.yegor256.com/2017/09/05/rehttp-http-repeater.html: 10 https://www.yegor256.com/2017/09/12/evil-object-name-suffix-client.html: 9 https://www.yegor256.com/2017/09/19/what-motivates-me.html: 12 https://www.yegor256.com/2017/09/26/threecopies-server-data-backup.html: 8 https://www.yegor256.com/2017/10/03/java9.html: 9 https://www.yegor256.com/2017/10/10/streams-vs-decorators.html: 10 https://www.yegor256.com/2017/10/17/lazy-loading-caching-sticky-cactoos.html: 11 https://www.yegor256.com/2017/10/24/award-2018.html: 8 https://www.yegor256.com/2017/10/24/motherland.html: 10 https://www.yegor256.com/2017/10/30/ukrainian-language.html: 15 https://www.yegor256.com/2017/11/07/five-new-java-features.html: 12 https://www.yegor256.com/2017/11/08/crimea.html: 10 https://www.yegor256.com/2017/11/14/static-factory-methods.html: 20 https://www.yegor256.com/2017/11/21/trust-pay-lose.html: 21 https://www.yegor256.com/2017/11/22/opposition.html: 8 https://www.yegor256.com/2017/11/28/microtasking.html: 39 https://www.yegor256.com/2017/12/05/data-access-object.html: 12 https://www.yegor256.com/2017/12/12/alan-kay-was-wrong.html: 11 https://www.yegor256.com/2017/12/19/srp-is-hoax.html: 15 https://www.yegor256.com/2017/12/26/software-quality-formula.html: 19 https://www.yegor256.com/2018/01/02/operator-new-is-toxic.html: 10 https://www.yegor256.com/2018/01/03/fake-opposition.html: 9 https://www.yegor256.com/2018/01/09/micro-budgeting.html: 25 https://www.yegor256.com/2018/01/10/dalles-plan.html: 9 https://www.yegor256.com/2018/01/16/educational-aspect-of-static-analysis.html: 13 https://www.yegor256.com/2018/01/23/sociotech-skills.html: 15 https://www.yegor256.com/2018/02/06/where-to-find-more-bugs.html: 9 https://www.yegor256.com/2018/02/13/micro-vesting.html: 11 https://www.yegor256.com/2018/02/27/parsing-objects.html: 12 https://www.yegor256.com/2018/03/06/speed-vs-quality.html: 16 https://www.yegor256.com/2018/03/13/fluent-interfaces.html: 15 https://www.yegor256.com/2018/03/17/putin-election.html: 10 https://www.yegor256.com/2018/03/21/zerocracy-announcement.html: 17 https://www.yegor256.com/2018/03/25/why-gas.html: 8 https://www.yegor256.com/2018/03/27/how-to-test-thread-safety.html: 11 https://www.yegor256.com/2018/04/03/donations-via-zerocracy.html: 9 https://www.yegor256.com/2018/04/10/learning-by-refactoring.html: 11 https://www.yegor256.com/2018/04/17/how-to-be-lazy.html: 20 https://www.yegor256.com/2018/04/24/right-way-to-report-bugs.html: 34 https://www.yegor256.com/2018/05/08/open-source-attributes.html: 14 https://www.yegor256.com/2018/05/22/default-arguments-against-null.html: 9 https://www.yegor256.com/2018/05/29/object-validation.html: 11 https://www.yegor256.com/2018/06/19/glogin.html: 9 https://www.yegor256.com/2018/06/26/are-you-an-architect.html: 10 https://www.yegor256.com/2018/07/03/global-variables.html: 14 https://www.yegor256.com/2018/07/24/bugs-or-pull-requests.html: 16 https://www.yegor256.com/2018/08/14/seventy-percent.html: 10 https://www.yegor256.com/2018/08/22/builders-and-manipulators.html: 11 https://www.yegor256.com/2018/08/27/penalty-for-refusal.html: 8 https://www.yegor256.com/2018/08/29/soft-skills.html: 13 https://www.yegor256.com/2018/09/05/monolithic-repositories.html: 10 https://www.yegor256.com/2018/09/07/what-is-speed.html: 8 https://www.yegor256.com/2018/09/12/clear-code.html: 8 https://www.yegor256.com/2018/09/18/fear-of-coupling.html: 11 https://www.yegor256.com/2018/09/30/award-2019.html: 7 https://www.yegor256.com/2018/10/01/remote-work.html: 8 https://www.yegor256.com/2018/10/07/history-simplification.html: 13 https://www.yegor256.com/2018/10/09/can-you-control-us.html: 13 https://www.yegor256.com/2018/10/16/dont-make-me-guess.html: 11 https://www.yegor256.com/2018/10/30/mailanes.html: 10 https://www.yegor256.com/2018/11/06/ruby-threads.html: 10 https://www.yegor256.com/2018/11/13/bigotry.html: 9 https://www.yegor256.com/2018/11/20/journalism.html: 11 https://www.yegor256.com/2018/11/23/freelance-vs-outsourcing.html: 8 https://www.yegor256.com/2018/11/27/you-can-do-better.html: 11 https://www.yegor256.com/2018/12/11/unit-testing-anti-patterns.html: 11 https://www.yegor256.com/2018/12/18/silicon-valley-criticism.html: 12 https://www.yegor256.com/2018/12/25/speaker-cheat-sheet.html: 9 https://www.yegor256.com/2019/01/01/hazardous-enthusiasm.html: 9 https://www.yegor256.com/2019/01/13/country-as-a-service.html: 9 https://www.yegor256.com/2019/01/15/what-if-architect-is-wrong.html: 11 https://www.yegor256.com/2019/01/20/drugs.html: 9 https://www.yegor256.com/2019/01/22/10x-paychecks.html: 11 https://www.yegor256.com/2019/01/28/the-wall.html: 12 https://www.yegor256.com/2019/01/29/dependency-hell.html: 9 https://www.yegor256.com/2019/02/03/cloudrepo.html: 12 https://www.yegor256.com/2019/02/05/zache.html: 8 https://www.yegor256.com/2019/02/12/silicon-valley-benefits.html: 12 https://www.yegor256.com/2019/02/16/calibrated-democracy.html: 10 https://www.yegor256.com/2019/02/21/jews-vs-french.html: 15 https://www.yegor256.com/2019/03/12/data-and-maintainability.html: 9 https://www.yegor256.com/2019/03/12/how-to-move-faster.html: 8 https://www.yegor256.com/2019/03/17/terrorism-and-power.html: 13 https://www.yegor256.com/2019/03/19/logging-without-static-logger.html: 9 https://www.yegor256.com/2019/03/26/jpages.html: 11 https://www.yegor256.com/2019/03/26/sales-kit.html: 10 https://www.yegor256.com/2019/03/28/cost-of-zerocrat.html: 8 https://www.yegor256.com/2019/03/29/concerns.html: 9 https://www.yegor256.com/2019/03/30/survival-guide.html: 8 https://www.yegor256.com/2019/04/02/software-project-review-checklist.html: 10 https://www.yegor256.com/2019/04/09/beg-them.html: 11 https://www.yegor256.com/2019/04/17/nutch-from-java.html: 9 https://www.yegor256.com/2019/04/23/elegant-readme.html: 14 https://www.yegor256.com/2019/04/28/formula-of-happiness.html: 12 https://www.yegor256.com/2019/05/07/sibit-bitcoin-command-line-client.html: 9 https://www.yegor256.com/2019/05/14/cause-risk-effect.html: 12 https://www.yegor256.com/2019/05/21/dont-improvise.html: 10 https://www.yegor256.com/2019/05/28/trust-or-not.html: 14 https://www.yegor256.com/2019/06/11/where-do-you-seek-help.html: 9 https://www.yegor256.com/2019/06/19/how-much-they-suffer.html: 11 https://www.yegor256.com/2019/06/26/syncem.html: 8 https://www.yegor256.com/2019/07/02/tdd-misbeliefs.html: 9 https://www.yegor256.com/2019/07/07/strong-opinions.html: 12 https://www.yegor256.com/2019/07/10/inversive-management.html: 10 https://www.yegor256.com/2019/07/30/joy-of-programming.html: 9 https://www.yegor256.com/2019/07/31/moscow-protests.html: 11 https://www.yegor256.com/2019/09/03/injection-of-guilt.html: 17 https://www.yegor256.com/2019/09/10/how-to-motivate-kids-to-code.html: 9 https://www.yegor256.com/2019/09/15/revolution-bottom-up.html: 10 https://www.yegor256.com/2019/09/17/be-unhappy-to-be-happy.html: 11 https://www.yegor256.com/2019/09/27/parsing-and-printing.html: 11 https://www.yegor256.com/2019/09/28/what-is-the-point.html: 9 https://www.yegor256.com/2019/10/29/sql-as-a-service.html: 9 https://www.yegor256.com/2019/11/03/award-2020.html: 6 https://www.yegor256.com/2019/11/05/revolutionary-evolution.html: 10 https://www.yegor256.com/2019/11/19/how-much-cohesion-is-enough.html: 9 https://www.yegor256.com/2019/12/03/testing-in-code-review.html: 9 https://www.yegor256.com/2019/12/24/altruism-kills.html: 9 https://www.yegor256.com/2019/12/31/talented-programmers.html: 9 https://www.yegor256.com/2019/12/31/testosterone.html: 13 https://www.yegor256.com/2020/01/07/embrace-the-chaos.html: 12 https://www.yegor256.com/2020/01/15/question-never-ask.html: 11 https://www.yegor256.com/2020/02/11/object-cohesion.html: 9 https://www.yegor256.com/2020/02/19/fat-skinny-design.html: 11 https://www.yegor256.com/2020/03/03/prefixed-naming.html: 11 https://www.yegor256.com/2020/03/29/coronavirus.html: 10 https://www.yegor256.com/2020/05/02/first-world-hysteria.html: 11 https://www.yegor256.com/2020/05/05/open-source-arms-race.html: 9 https://www.yegor256.com/2020/05/13/career-killer.html: 11 https://www.yegor256.com/2020/05/19/veil-objects.html: 11 https://www.yegor256.com/2020/06/12/protesters.html: 14 https://www.yegor256.com/2020/06/23/individual-performance-metrics.html: 19 https://www.yegor256.com/2020/07/05/silence-doesnt-cure.html: 13 https://www.yegor256.com/2020/07/29/open-source-etiquette.html: 14 https://www.yegor256.com/2020/10/06/latex-spell-checking.html: 9 https://www.yegor256.com/2020/10/13/lack-of-problem.html: 9 https://www.yegor256.com/2020/10/27/distance-of-coupling.html: 9 https://www.yegor256.com/2020/11/03/daily-reports.html: 9 https://www.yegor256.com/2020/11/10/typing-without-types.html: 9 https://www.yegor256.com/2020/11/15/award-2021.html: 4 https://www.yegor256.com/2020/11/21/svoboda-and-conflicts.html: 9 https://www.yegor256.com/2020/11/24/objects-without-methods.html: 12 https://www.yegor256.com/2020/12/01/abstract-objects.html: 12 https://www.yegor256.com/2020/12/22/self-managing-orgs.html: 13 https://www.yegor256.com/2020/12/29/metric-for-emotions.html: 12 https://www.yegor256.com/2021/02/02/greed-based-planning.html: 9 https://www.yegor256.com/2021/02/10/dataization.html: 11 https://www.yegor256.com/2021/03/03/imposters-to-win.html: 11 https://www.yegor256.com/2021/04/14/how-we-organized-iccq.html: 14 https://www.yegor256.com/2021/06/01/tips-for-recruiters.html: 9 https://www.yegor256.com/2021/08/04/prestructors.html: 11 https://www.yegor256.com/2021/08/11/logging-in-unit-tests.html: 11 https://www.yegor256.com/2021/09/09/simba.html: 9 https://www.yegor256.com/2021/10/12/calibrated-achievement-points.html: 9 https://www.yegor256.com/2021/10/21/objectionary.html: 9 https://www.yegor256.com/2021/12/01/teaching.html: 12 https://www.yegor256.com/2022/02/16/ai-coding.html: 9 https://www.yegor256.com/2022/03/29/bugs-occam-razor.html: 9 https://www.yegor256.com/2022/06/05/reflection-means-hidden-coupling.html: 9 https://www.yegor256.com/2022/06/14/principle-of-one.html: 9 https://www.yegor256.com/2022/07/05/safety-net.html: 12 https://www.yegor256.com/2022/07/20/command-line-defaults.html: 9 https://www.yegor256.com/2022/08/04/code-and-tests-different-pull-requests.html: 10 https://www.yegor256.com/2022/08/10/xsline-immutable-pipeline.html: 11 https://www.yegor256.com/2022/08/24/research-paper-template.html: 12 https://www.yegor256.com/2022/08/30/dont-group-exception-catchers.html: 11 https://www.yegor256.com/2022/09/08/smaller-try-blocks.html: 11 https://www.yegor256.com/2023/01/19/layout-of-tests.html: 9 https://www.yegor256.com/2023/07/19/just-show-up.html: 13 https://www.yegor256.com/2023/07/25/contribute-disabled-tests.html: 11 https://www.yegor256.com/2023/08/01/method-overloading.html: 14 https://www.yegor256.com/2023/08/08/two-step-initialization.html: 13 https://www.yegor256.com/2023/08/13/dictators.html: 11 https://www.yegor256.com/2023/08/15/decision-making-process.html: 18 https://www.yegor256.com/2023/08/22/fast-vs-deep-testing.html: 11 https://www.yegor256.com/2023/08/27/immigration-by-war.html: 13 https://www.yegor256.com/2023/08/29/ai-for-software-engineering.html: 11 https://www.yegor256.com/2023/09/05/style-checker-for-bibtex-files.html: 9 https://www.yegor256.com/2023/09/17/turbulence.html: 9 https://www.yegor256.com/2023/09/19/five-ingredients-career.html: 9 https://www.yegor256.com/2023/09/29/how-to-write-related-work-section.html: 11 https://www.yegor256.com/2023/10/01/individualism-vs-collectivism.html: 9 https://www.yegor256.com/2023/10/11/method-of-research.html: 16 https://www.yegor256.com/2023/11/22/avoid-line-breaks-inside-paragrap.html: 9 https://www.yegor256.com/2023/11/28/research-questionnaire.html: 9 https://www.yegor256.com/2023/12/11/results-and-discussion.html: 13 https://www.yegor256.com/2023/12/17/how-to-review-research-paper.html: 9 https://www.yegor256.com/2023/12/26/defend-me-against-chatgpt.html: 12 https://www.yegor256.com/2024/01/03/not-able-to-speak.html: 13 https://www.yegor256.com/2024/02/06/research-flow.html: 9 https://www.yegor256.com/2024/04/01/ping-me-please.html: 16 https://www.yegor256.com/2024/04/02/kulikovo-pole.html: 9 https://www.yegor256.com/2024/05/27/freedom-of-speech-vs-intelligence.html: 9 https://www.yegor256.com/2024/06/09/patent-claim.html: 9 https://www.yegor256.com/2024/06/23/medals-to-win.html: 9 https://www.yegor256.com/2024/07/07/checking-object-existence.html: 9 https://www.yegor256.com/2024/09/21/interpreters-of-chaos.html: 9 https://www.yegor256.com/2024/12/15/open-source-beginner-advice.html: 12 https://www.yegor256.com/2025/04/12/four-builds.html: 9 https://www.yegor256.com/2025/04/19/dont-merge-into-broken-master.html: 11 There are no orphans in 9806 links 128 links found, testing them... + links=/tmp/yegor256-20250420-1522-voct2l.txt + report=/tmp/yegor256-20250420-1522-s6ktik.txt + export -f ping_uri + cmd='ping_uri "$0" >> "/tmp/yegor256-20250420-1522-s6ktik.txt"; echo "$0";' + xargs -P 10 -n 1 /bin/bash -c 'ping_uri "$0" >> "/tmp/yegor256-20250420-1522-s6ktik.txt"; echo "$0";' https://search.maven.org/artifact/org.eolang/eo-runtime https://en.wikipedia.org/wiki/Code_smell https://www.martinfowler.com/articles/injection.html https://en.wikipedia.org/wiki/Strong_and_weak_typing https://x.com/yegor256 http://static.javadoc.io/org.takes/takes/1.1/org/takes/rs/xe/XeDirectives.html http://english.stackexchange.com/questions/103448/is-outstaffing-a-real-word https://github.com/filfreire https://gist.github.com/thom-nic/2c74ed4075569da0f80b https://www.vedomosti.ru/politics/news/2019/05/06/800778-fsb-opros https://yakovfain.com/ http://freemarker.org/ https://github.com/cssinjs/jss https://github.com/yegor256/rultor/issues/563 https://twitter.com/hashtag/altruism?src=hash&ref_src=twsrc%5Etfw http://www.bolshoyvopros.ru/questions/6810-skolko-na-zemle-nacionalnostej-i-kakie.html https://www.facebook.com/yegor256/posts/10209365963416001 https://github.com/SimonKagstrom/kcov/blob/v31/src/writers/html-writer.cc http://gordonua.com/news/worldnews/matvienko-zayavila-chto-rossiya-ne-dopustit-prinyatiya-v-ukraine-novogo-zakona-ob-obrazovanii-212753.html https://github.com/checkstyle/checkstyle https://www.driver733.com/2018/11/05/256-bloghacks-book-review.html http://httpd.apache.org/docs/2.2/programs/htpasswd.html https://films.yegor256.com/hot-stone/en-captions.srt https://www.npmjs.com/package/cloc https://github.com/orfjackal/jumi https://regnum.ru/news/polit/2978419.html https://github.com/SMore-Napi https://en.wikipedia.org/wiki/Code_coverage https://github.com/zerocracy/farm/issues/866 https://www.ctan.org/pkg/bibcop https://en.bitcoin.it/wiki/Private_key http://rian.com.ua/analytics/20161209/1019506143.html https://www.facebook.com/yegor256/posts/10209692585621352 https://github.com/davvd https://en.wikipedia.org/wiki/Integration_testing https://www.creative-wisdom.com/teaching/WBI/threat.shtml https://twitter.com/yegor256/status/1381130741749256192?ref_src=twsrc%5Etfw https://spring.io/ https://en.wikipedia.org/wiki/Business_object https://en.wikipedia.org/wiki/Oscar_Nierstrasz https://t.me/yegor256 https://www.google.com/search?q=inheritance+is+bad https://en.wikipedia.org/wiki/MIT_License https://github.com/apache/maven https://www.w3.org/Style/XSL/ https://vesti-ukr.com/politika/221122-jazyk https://en.wikipedia.org/wiki/Punishment https://copilot.github.com https://support.google.com/youtube/answer/171664?hl=en https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests https://twitter.com/yegor256/status/1223864080135376897?ref_src=twsrc%5Etfw https://twitter.com/garrytan http://s3.jcabi.com https://github.com/catalyst-team/catalyst https://tass.ru/ekonomika/6155970 https://www.businessinsider.de/international/microsoft-reputation-institute-soaring-research-2019-11/?r=US&IR=T http://xpdays.com.ua/ https://www.statista.com/statistics/217685/most-dangerous-cities-in-north-america-by-crime-rate/ https://www.w3.org/TR/xpath/ https://en.wikipedia.org/wiki/Mediator_pattern https://en.wikipedia.org/wiki/Michael_Howard_Kay https://www.obozrevatel.com/crime/12367-bednyij-voennyij-prokuror-iz-odessyi-obyasnil-pochemu-ezdit-na-shikarnyih-avto.htm https://softwareengineering.stackexchange.com/questions/148108/why-is-global-state-so-evil https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D1%8C https://en.wikipedia.org/wiki/Front_controller https://github.com/codeborne/selenide https://codeforces.com/ https://en.wikipedia.org/wiki/Active_record_pattern https://www.g4s8.wtf/posts/2020-12-26-enum-objects/#comment-5205846133 https://amzn.to/2eexQBl https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#max-java.util.Collection- https://en.wikipedia.org/wiki/Hacker_%28computer_security%29 https://innopolis.university/en/ http://www.interfax.ru/world/365090 https://amzn.to/2xeLKtt https://github.com/paypal/squbs/blob/RELEASE-0.8.X/squbs-admin/src/main/scala/org/squbs/admin/MBeanUtil.scala#L101 https://github.com/yegor256/jpeek/pull/153 https://bykvu.com/ru/bukvy/firtash-otricaet-prichastnost-k-finansirovaniju-kampanii-protiv-bajdena/ https://conf.researchr.org/ https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D0%B5%D0%B7%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%90%D0%B1%D1%80%D0%B0%D0%BC%D0%BE%D0%B2%D0%B8%D1%87 https://github.com/restorer/Gloomy-Dungeons-3D https://jsparrow.github.io/rules/avoid-concatenation-in-logging-statements.html https://www.bbc.com/russian/articles/ce9n6q5glvyo https://github.com/seratch/jslack https://amzn.to/2tgR8uv http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B5%D0%BA%D1%81_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D1%8F https://www.slideshare.net/YegorBugayenko/chat-bots-are-the-new-ui https://publications.computer.org/software-magazine/ https://en.wikipedia.org/wiki/Smalltalk https://github.com/miku-nyan/Overchan-Android https://www.aweber.com/ https://en.wikipedia.org/wiki/Internationalization_and_localization https://cs.au.dk/~amoeller/spa/spa.pdf https://kulpole.ru/places/memorial-na-krasnom-holme https://www.coinbase.com https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B9%D1%85%D1%81%D0%BA%D0%BE%D0%BC%D0%B8%D1%81%D1%81%D0%B0%D1%80%D0%B8%D0%B0%D1%82_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0 https://www.sciencedirect.com/science/article/abs/pii/S0378720613000967 https://amzn.to/2xrIgSY https://lenta.ru/news/2017/10/02/otlichia/ https://en.wikipedia.org/wiki/Trump_International_Hotel_Las_Vegas http://static.javadoc.io/com.jcabi/jcabi-http/1.17.2/com/jcabi/http/Request.html#timeout%28int,%20int%29 https://github.com/jcabi/jcabi-http/pull/48 https://twitter.com/yegor256/status/1112302435782021120?ref_src=twsrc%5Etfw https://tass.ru/obschestvo/8643691 https://hadoop.apache.org/ https://www.slideshare.net/YegorBugayenko/utility-classes-are-killing-us https://en.wikipedia.org/wiki/Legacy_code http://ria.ru/world/20160707/1460935893.html https://www.slideshare.net/YegorBugayenko/how-much-immutability-is-enough https://www.inc.com/jeff-haden/inside-buffer-company-complete-transparency.html https://www.imdb.com/title/tt0074252/ https://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming) https://amzn.to/2u9BbqF https://en.wikipedia.org/wiki/OAuth http://deeprefactoring.ru/yegor256 https://github.com/thothbot/parallax https://proitfest.ru/ https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue http://stackoverflow.com/questions/3828898/can-chrome-be-made-to-perform-an-xsl-transform-on-a-local-file http://www.pravda.com.ua/rus/news/2017/04/12/7141061/ http://www.president-sovet.ru http://www.rbc.ru/politics/20/01/2017/588230a39a794767fc391669 https://github.com/rultor/rultor/tree/rultor-0.2/rultor-users/src/main/java/com/rultor/users https://standards.ieee.org/findstds/standard/830-1998.html https://strana.ua/news/70629-segodnya-v-ukraine-vstupil-v-silu-poryadok-izyatiya-iz-prodazhi-rossijskih-knig-i-zhurnalov.html http://www.wisdomcode.info/ru/quotes/authors/50026.html http://harmful.cat-v.org/software/OO_programming/why_oo_sucks https://www.facebook.com/yegor256/posts/10209365963416001: 400 https://github.com/zerocracy/farm/issues/866: 404 https://rian.com.ua:443/analytics/20161209/1019506143.html: 404 https://www.facebook.com/yegor256/posts/10209692585621352: 400 https://vesti-ukr.com/politika/221122-jazyk: 404 https://tass.ru/ekonomika/6155970: 302 https://codeforces.com/: 403 https://www.coinbase.com/: 403 https://www.sciencedirect.com/science/article/abs/pii/S0378720613000967: 403 https://tass.ru/obschestvo/8643691: 302 https://www.inc.com/jeff-haden/inside-buffer-company-complete-transparency.html: 403 https://strana.ua/news/70629-segodnya-v-ukraine-vstupil-v-silu-poryadok-izyatiya-iz-prodazhi-rossijskih-knig-i-zhurnalov.html: 000 http://www.wisdomcode.info/ru/quotes/authors/50026.html: 000 http://harmful.cat-v.org/software/OO_programming/why_oo_sucks: 000 128 links are found, 14 are broken, it's more or less OK (10%) eslint js/all.js... eslint js/snowflakes.min.js... skipped ESLint says JavaScript files are clean Running RuboCop... 33mrubocop-rspec gem supports plugin, use `--plugin` instead of `--require`. 0m Inspecting 22 files 32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m 22 files inspected, 32mno offenses0m detected [DEPRECATION] The trollop 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 + BRANCH=gh-pages + BRANCH_FROM=master + DEPLOY_CONFIG=/home/r/repo/_config-deploy.yml + BUNDLE= + DRAFTS= ++ pwd + SRC=/home/r/repo ++ mktemp -d -t jgd-XXX + TEMP=/tmp/jgd-1w9 + trap 'rm -rf /tmp/jgd-1w9' EXIT + CLONE=/tmp/jgd-1w9/clone + COPY=/tmp/jgd-1w9/copy + echo -e 'Cloning Github repository:' Cloning Github repository: + git clone -b master git@github.com:yegor256/blog.git /tmp/jgd-1w9/clone Cloning into '/tmp/jgd-1w9/clone'... Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. remote: Enumerating objects: 1572502, done.K remote: Counting objects: 100% (20/20), done.K remote: Compressing objects: 100% (13/13), done.K remote:nTotale15725029(delta64),/reused2155(deltaM4),|pack-reused/1572482 (from 1)K Receiving objects: 100% (1572502/1572502), 770.40 MiB | 33.03 MiB/s, done. Resolving deltas: 100% (1225168/1225168), done. + cp -R /tmp/jgd-1w9/clone /tmp/jgd-1w9/copy + cd /tmp/jgd-1w9/clone + echo -e '\nBuilding Jekyll site:' Building Jekyll site: + rm -rf _site + '[' -r /home/r/repo/_config-deploy.yml ']' + jekyll build --config _config.yml,/home/r/repo/_config-deploy.yml Configuration file: /tmp/jgd-1w9/clone/_config.yml Configuration file: /home/r/repo/_config-deploy.yml /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/ping.rb:13: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER Source: /tmp/jgd-1w9/clone Destination: /tmp/jgd-1w9/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/08/27/penalty-for-refusal.html WARN: No front image in /2018/09/07/what-is-speed.html WARN: No front image in /2018/10/01/remote-work.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 /2018/11/23/freelance-vs-outsourcing.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/03/12/how-to-move-faster.html WARN: No front image in /2019/03/26/sales-kit.html WARN: No front image in /2019/03/28/cost-of-zerocrat.html WARN: No front image in /2019/03/29/concerns.html WARN: No front image in /2019/03/30/survival-guide.html WARN: No front image in /2019/04/17/nutch-from-java.html WARN: No front image in /2019/06/26/syncem.html WARN: No front image in /2023/09/05/style-checker-for-bibtex-files.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 pvZDcytPU3w found: SQM 14/24: Tech Debt [software quality crash course] [eng sub] 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-1w9/clone/uml/d892698103dc5669949527a8754c5f26.svg created (3409 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 (XDSD), at DevTernity'2016 YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video tCr9dtGdi2c found: XDSD: How Extreme is Your Team YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) YouTube video 4SRoLYxvIQ8 found: Practical Example of AOP with AspectJ (in Russian with English subtitles) File /tmp/jgd-1w9/clone/uml/52d3d016f2264bbf660a23d5bbe84203.svg created (8678 bytes) YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video 2a2nWELIk-Y found: Yegor Bugayenko | Kyiv DevOps, September, 2015 YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. YouTube video rEK3Rk2lX3M found: Cactoos 0.12 polishing and releasing (webinar #27) YouTube video NflR7DKwxDY found: Deployment Scripts Are Dead. Meet Rultor. YouTube video _61CuGhyv-o found: Practical Example of a One-Click Release YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video F4N25kZ2zQU found: Object Oriented Lies (in Russian with English subtitles) YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) YouTube video EDKbYVEInMU found: Built-in Fake Objects YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? YouTube video MNxG1xcA2uA found: Object Thinking Meetup #3: Yegor Bugayenko / How to Inject Less? YouTube video oV6Utb5Jows found: Dependency Injection Container is a Bad Idea (webinar #9) YouTube video qRZYJGYdrwk found: XDSD: management without meetings YouTube video LB_YLWhGrco found: Meetings-free Programming YouTube video 3IXk5yEJMIs found: Continuous Integration is Dead YouTube video gL4XwP-EBOg found: Continuous Integration May Have Negative Effects YouTube video Ht0JI41kA4I found: Pre-flight Build Pitfalls YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video GS45LzE3LPQ found: How Much Do You Cost? YouTube video 6mfo_FHL3PE found: How we decide how much to pay programmers? YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video hTs_R0dFoFM found: M77: Lines-of-Code don't show anything meaningful, but Hits-of-Code are pretty accurate YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video 7DYr8GYzJ6Q found: The Philosophy of Bugs (webinar #17) YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) YouTube video aER4uwyFbqQ found: ORM is offensive (in Russian with English subtitles) YouTube video 63tS3HNmhiE found: ORM is a perfect anti-pattern YouTube video 03PXmPc7Q3g found: ORM is an Offensive Anti-Pattern YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video PVvLQGnyDrQ found: Gradients of Immutability (webinar #20) YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster YouTube video oiNI2jF46h0 found: Make Customers Trust You YouTube video TxYi7J0vKC8 found: M80: Every two weeks you should hire a new auditor to review your software project YouTube video GlBf5-g4nGk found: M98: If you think that your team is doing fine, you are a bad manager YouTube video p7m7_iiqaHI found: How Much Immutability Is Enough? YouTube video KwP7Ay9Z-hc found: Immutable Objects vs. Common Sense (webinar #2) YouTube video EnhRgXrHCC4 found: How Immutability Helps in OOP (in Russian with English subtitles) YouTube video Rip_04Bv3Jk found: How to be Honest and Keep a Client? YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video ues5Dks37zI found: M138: Morning stand-ups are nothing else but guilt-triggers YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video b6r2W3P9vgY found: Blame the Project YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) YouTube video YBQoTZ-1X-o found: How to Cut Corners and Stay Cool (webinar #15) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video psrp3TtaYYI found: What's Wrong About Utility Classes? (webinar #6) YouTube video D0dqC_3Bch8 found: Objects vs. Static Methods (webinar #1) YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video biE86esgFAE found: Seven Enemies of Our Motivation (in Russian with English subtitles) YouTube video WpP4rIhh5e4 found: Don't Create Objects That End With -ER (webinar #5) YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) YouTube video SCcJcSVBSpU found: Tacit CSS Framework @ Porto Codes 2017 YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video PNSezrlemsY found: Hacker vs Designer Mentality YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video 0fuEgmibJc4 found: Who Is a Software Architect? YouTube video AvVQ5NjS_Nk found: Who is a Software Architect? (webinar #13) YouTube video DLk_5BmgTVk found: How to Avoid Outsourcing Disaster YouTube video l6MpCBzwDbg found: What Fake Objects Are For? (webinar #8) YouTube video lgScAwsYWCc found: M137: Don't ask your programmers to estimate, tell them how much you have YouTube video ZtWmlKi3ivc found: Seven Sins of a Software Project YouTube video hkXLOxZ6Fs4 found: Seven Sins of a Software Project YouTube video nheD2LNYrpk found: Takes, Java Web Framework, Intro (webinar #12) YouTube video 3blBn65iQmU found: Why Private Static Literals are Evil? (Webinar #48) YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video LB_YLWhGrco found: Meetings-free Programming YouTube video dE0_j4Kk6jo found: Meetings Help Us and Kill Our Projects YouTube video AwrMKTFyohg found: #NoMagic YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video KUUzUb9arNg found: M39: Meeting are evil and must be replaced by a disciplined process of decision making YouTube video ODxm7w2DE-g found: #NoSalaries File /tmp/jgd-1w9/clone/uml/19b92d0465e2e819ffcf88cf46c6e333.svg created (3961 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-1w9/clone/uml/eee0d1bcdb7b9318e937e99e04e39ff7.svg created (3435 bytes) YouTube video jUil-aTImgU found: How Do You Talk To Your Microservice? File /tmp/jgd-1w9/clone/uml/d103661ebf8494340e260442970bf4af.svg created (4562 bytes) YouTube video Xj226o2xI9Y found: Chat Bots vs UI YouTube video vOMqDcSXnT0 found: Microservices as Chat Bots YouTube video kPmbRkSWYnY found: M130: The root cause of most software problems is the chaos in the code YouTube video xbovkm0tTn0 found: Talk "MEETING-FREE SOFTWARE DEVELOPMENT, IN DISTRIBUTED TEAMS" by Yegor Bugayenko YouTube video pt9uHp35fwM found: Meetings Or Discipline YouTube video b6r2W3P9vgY found: Blame the Project YouTube video F6NwcQyEY18 found: How Monetary Awards Can Work? YouTube video ibT5oKToMoQ found: Daily Stand-Up Meetings Are Evil (webinar #11) YouTube video WSgP85kr6eU found: Why Getters-and-Setters Is An Anti-Pattern? (webinar #4) YouTube video DEqcn4-freM found: Why ORM is an Anti-Pattern? (webinar #10) YouTube video Mj1gA5mEk68 found: Unit Testing vs Debugging (webinar #26) YouTube video af6bidlat6Q found: BB1: Будьте смелее, покажите свое резюме YouTube video o3aNJX7AP3M found: What is Wrong About NULL in OOP? (webinar #3) File /tmp/jgd-1w9/clone/uml/b5d40b6498ca48f6d2efc8671dd6d1e6.svg created (4461 bytes) File /tmp/jgd-1w9/clone/uml/aecf8b3862f82e6d5d8d27e948d45c83.svg created (5502 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-1w9/clone/uml/653125b6c32d12b7325dba52054c09ca.svg created (3495 bytes) File /tmp/jgd-1w9/clone/uml/cad4de541e1ab10d3d9d751c661fe63f.svg created (3448 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) 33m Build Warning: Layout 'russian' requested in _posts/2016/nov/2016-11-26-yanukovych-v-president.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/nov/2016-11-28-saakashvili-speaks-ukrainian.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-01-what-is-wrong-about-guns.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-05-who-needs-war.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-08-lustration-in-ukraine.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-12-putin-is-power.md does not exist.0m File /tmp/jgd-1w9/clone/uml/45d05ab3bd9a93ad88ec209352b62f60.svg created (3225 bytes) 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-15-onishenko-our-hero.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-19-are-you-ashamed-of-voting.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-19-privatbank-nationalization.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-22-what-causes-terrorism.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-26-what-would-you-ask-putin.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-29-who-wants-our-donations.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2016/dec/2016-12-30-tu154-sochi.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-02-ukraine-budget-2017.md does not exist.0m YouTube video GWLpAZqvqSc found: How to Deal With Conflicts in a Software Team (Webinar #21) YouTube video 4i-OK4IA4vA found: M158: Eliminating team conflicts leads to less collaboration, not more 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-05-justice-against-corruption.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-12-will-i-go-to-war.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-16-ukrainian-startups.md does not exist.0m YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-23-consciousness-and-revolution.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jan/2017-01-30-lifetime-imprisonment-for-separatism.md does not exist.0m YouTube video Wcy53ZSF78o found: Decorating Envelopes in OOP (webinar #31) 33m Build Warning: Layout 'russian' requested in _posts/2017/feb/2017-02-06-how-to-eliminate-corruption.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/feb/2017-02-20-nationalism-of-the-future.md does not exist.0m YouTube video ZhWOlaMqppM found: How I didn't get a job at Amazon (in Russian with English subtitles) 33m Build Warning: Layout 'russian' requested in _posts/2017/mar/2017-03-02-history-of-separatism.md does not exist.0m YouTube video nsYGC2aUwfQ found: Puzzle Driven Development (webinar #23) 33m Build Warning: Layout 'russian' requested in _posts/2017/apr/2017-04-18-dnepr-corruption-item.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/apr/2017-04-24-slaves-of-the-law.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/may/2017-05-15-loyalty.md does not exist.0m YouTube video 1bAixLaOCSA found: Java Day Minsk 2017 | Yegor Bugayenko - Object Oriented JUnit Tests YouTube video CCr8hRE_TUs found: Object-Oriented Flavor for JUnit Tests YouTube video ZdHCrsQsoMI found: M136: Any software product has an unlimited number of bugs 33m Build Warning: Layout 'russian' requested in _posts/2017/jun/2017-06-29-activists.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/jul/2017-07-27-sabotage-failed.md does not exist.0m YouTube video Op3EIwhMxrg found: M33: You don't need to be loyal to your employers, use them for your own good! YouTube video 4ZWHs1mloUw found: RAII in Java (Webinar #52) YouTube video KYd24FN58wg found: Object-Oriented Java Web App from Scratch in One Hour: ThreeCopies.com (Webinar #28) YouTube video 7WmsiV22IXM found: Lazy Loading via Java Lambda (Webinar #30) YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2017/oct/2017-10-24-motherland.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/oct/2017-10-30-ukrainian-language.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2017/nov/2017-11-08-crimea.md does not exist.0m YouTube video 9yjtsCK6Wdk found: A Few Thoughts About Constructors in OOP (webinar #7) 33m Build Warning: Layout 'russian' requested in _posts/2017/nov/2017-11-22-opposition.md does not exist.0m 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 33m Build Warning: Layout 'russian' requested in _posts/2018/jan/2018-01-03-fake-opposition.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2018/jan/2018-01-10-dalles-plan.md does not exist.0m 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) 33m Build Warning: Layout 'russian' requested in _posts/2018/mar/2018-03-17-putin-election.md does not exist.0m 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. 33m Build Warning: Layout 'russian' requested in _posts/2018/mar/2018-03-25-why-gas.md does not exist.0m YouTube video rC17YwowURQ found: Synchronized Decorators for Thread-Safety (Webinar #32) YouTube video vXUwE3FGfpg found: #NoAltruism YouTube video Hrk_Jorc5z4 found: M127: The ability to explain a problem so that it's understood is the most important soft skill YouTube video -drZbHxydMc found: When do you validate your objects? (Webinar #35) YouTube video FNWyN_Q10TI found: What's wrong with global variables? (Webinar #36) YouTube video _ppWQCCT8zE found: M16: You either report bugs or implement features. You can't do any of that? You are out. YouTube video RNRaVmbWZXI found: M7: Don't be afraid to ask difficult qstns before you get into a partnership, or get ready to lose YouTube video oXj9UWm1134 found: Names of objects, methods and variables in OOP (Webinar #37) YouTube video zljJpADEf_E found: M6: Keeping all source code in a single monolithic repository is a terrible idea! YouTube video 9tC7p2UTLsU found: M5: Professional programmers always need a second opinion, to make sure their code is good enough YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2018/oct/2018-10-07-history-simplification.md does not exist.0m 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 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-13-country-as-a-service.md does not exist.0m YouTube video PYq05UAwzNk found: M2: We must fully trust the architect, but regularly review the decisions he or she is making 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-20-drugs.md does not exist.0m YouTube video mKZOuJ7AAas found: M30: Pay equality and smaller pay gap mean only one thing: the management is weak 33m Build Warning: Layout 'russian' requested in _posts/2019/jan/2019-01-28-the-wall.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/feb/2019-02-16-calibrated-democracy.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/feb/2019-02-21-jews-vs-french.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/mar/2019-03-17-terrorism-and-power.md does not exist.0m YouTube video SoXV_scCMNY found: Logging, the Object-Oriented Way YouTube video bVzEPOZ_mDU found: A practical example of making an object-oriented HTTP server in Java (webinar #42) YouTube video Qxvk9z0tEP8 found: M123: One README should be enough for any open source project 33m Build Warning: Layout 'russian' requested in _posts/2019/apr/2019-04-28-formula-of-happiness.md does not exist.0m YouTube video WlI6IZ6M7vY found: M74: If your project doesn't have a formal Risk List, you are doing management wrong YouTube video KPbKqTXfZwA found: M89: Deliver your trust continuously, not discrete YouTube video _4pk5GNUySg found: M91: Full-timers want to look smart, freelancers want to deliver results 33m Build Warning: Layout 'russian' requested in _posts/2019/jul/2019-07-07-strong-opinions.md does not exist.0m YouTube video 5FckPa6aOok found: M193: What is fun and joy for you, being a programmer? 33m Build Warning: Layout 'russian' requested in _posts/2019/jul/2019-07-31-moscow-protests.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/sep/2019-09-15-revolution-bottom-up.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2019/sep/2019-09-28-what-is-the-point.md does not exist.0m YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) YouTube video eeXdDvIVu-Y found: What Is Cohesion in OOP? (Webinar #49) 33m Build Warning: Layout 'russian' requested in _posts/2019/dec/2019-12-31-testosterone.md does not exist.0m YouTube video CmUzNPqCF4s found: M120: Don't wait for your manager to tell you what to do, do what you think is right (open source) File /tmp/jgd-1w9/clone/uml/b9cc42a8e5ed92f94f4362cfd328fb0d.svg created (13459 bytes) File /tmp/jgd-1w9/clone/uml/930f06f36724929287c1ee82fd95c77b.svg created (8543 bytes) YouTube video rsWrgxm8ktU found: Fat and Skinny Design (Webinar #51) File /tmp/jgd-1w9/clone/uml/c415b43f6d14c18e66db32e9d5d6e8b2.svg created (17876 bytes) 33m Build Warning: Layout 'russian' requested in _posts/2020/mar/2020-03-29-coronavirus.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2020/may/2020-05-02-first-world-hysteria.md does not exist.0m YouTube video D12gi1x6Cdw found: M105: Open source developers inevitably have better soft and tech skills YouTube video nErn5G_JHhE found: Veil Objects to Replace DTOs (Webinar #50) 33m Build Warning: Layout 'russian' requested in _posts/2020/jun/2020-06-12-protesters.md does not exist.0m YouTube video jjeW1hTtRh0 found: M114: The performance of programmers can be measured, with the right metrics 33m Build Warning: Layout 'russian' requested in _posts/2020/jul/2020-07-05-silence-doesnt-cure.md does not exist.0m YouTube video fJvUTlPHSvU found: Encapsulation Is Dead, Let's Use Distance of Coupling Instead (Webinar #55) YouTube video Yj1VFGK9vqc found: M143: Daily reports are a perfect guilt-triggering instrument for a lazy team YouTube video Z70PMGaxGhY found: How to win $4096 in the next year Quality Award? (webinar #29) 33m Build Warning: Layout 'russian' requested in _posts/2020/nov/2020-11-21-svoboda-and-conflicts.md does not exist.0m YouTube video WZlIb5oxDBQ found: M152: There is no management without personal responsibility YouTube video TmAJPeM4UlE found: M153: How managers in self-managing orgs judge your performance? YouTube video vaFPNdNaOAY found: M160: Traditional top-down planning doesn't work, try better alternative YouTube video QaKIw1Bh3Oc found: EOLANG: Basics YouTube video ulrMXmIcC4w found: M167: Sometimes you have to be an imposter, either you like it or not YouTube video 65baOBHeVMI found: Yegor Bugayenko: Opening YouTube video dlPk1AE2aQk found: M170: recruiters may do a better job if listen to us programmers YouTube video 939ntzufGB0 found: M178: Try to focus your team on artifacts and their delivery status YouTube video 2IwBc9UI4Sg found: SIMBA: Simplified Management by Artifacts (at Merge Conf) YouTube video Qii3yrQJdHs found: M179: Calibrated Achievement Points (CAP) to measure R&D productivity YouTube video 8qfd93SyXpM found: SSD 13/16: Test-Driven Development [software design crash course] YouTube video 4I8BflW7EpU found: M188: I don't think ML will ever be able to write code YouTube video jiEJnLBowHc found: M190: Make sure the bugs you report explain the simplest possible scenarios YouTube video Y0Zx_sdVG48 found: M199: Unit tests are the Safety Net that you can't afford to not use YouTube video C6CQWzOKEJs found: Object Thinking #7: Yegor Bugayenko / Immutability + Generics 33m Build Warning: Layout 'russian' requested in _posts/2023/aug/2023-08-13-dictators.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2023/aug/2023-08-27-immigration-by-war.md does not exist.0m YouTube video gHznfuhRR60 found: AIIN'23: Robots vs. Programmers, How soon will computers fire us? 33m Build Warning: Layout 'russian' requested in _posts/2023/sep/2023-09-17-turbulence.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2023/oct/2023-10-01-individualism-vs-collectivism.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/jan/2024-01-03-not-able-to-speak.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/apr/2024-04-02-kulikovo-pole.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/may/2024-05-27-freedom-of-speech-vs-intelligence.md does not exist.0m 33m Build Warning: Layout 'russian' requested in _posts/2024/sep/2024-09-21-interpreters-of-chaos.md does not exist.0m 473 AMP pages generated in 37.76s places.txt generated tags.txt generated stats.svg generated Jekyll Feed: Generating feed for posts jekyll-shorts 0.0.10: 473 link(s) generated in 0.01s jekyll-chatgpt-translate 0.1.0 starting... The OpenAI API key taken from the file: "/home/r/repo/../chatgpt-key.txt" (164 chars) No need to translate, the page exists at "/zh/2015/02/20/utility-classes-vs-functional-programming.html" (685 words) No need to translate, the page exists at "/ru/2015/02/20/utility-classes-vs-functional-programming.html" (1766 words) No need to translate, the page exists at "/zh/2020/02/11/object-cohesion.html" (660 words) No need to translate, the page exists at "/ru/2020/02/11/object-cohesion.html" (1174 words) No need to translate, the page exists at "/zh/2014/05/14/object-oriented-github-java-sdk.html" (779 words) No need to translate, the page exists at "/ru/2014/05/14/object-oriented-github-java-sdk.html" (1100 words) No need to translate, the page exists at "/en/2017/01/23/consciousness-and-revolution.html" (1446 words) No need to translate, the page exists at "/zh/2017/01/23/consciousness-and-revolution.html" (852 words) No need to translate, the page exists at "/zh/2015/09/16/how-to-fire-someone-right.html" (607 words) No need to translate, the page exists at "/ru/2015/09/16/how-to-fire-someone-right.html" (992 words) No need to translate, the page exists at "/zh/2020/11/03/daily-reports.html" (620 words) No need to translate, the page exists at "/ru/2020/11/03/daily-reports.html" (1439 words) No need to translate, the page exists at "/zh/2014/08/26/publish-to-rubygems.html" (687 words) No need to translate, the page exists at "/ru/2014/08/26/publish-to-rubygems.html" (938 words) No need to translate, the page exists at "/zh/2020/02/19/fat-skinny-design.html" (751 words) No need to translate, the page exists at "/ru/2020/02/19/fat-skinny-design.html" (1342 words) No need to translate, the page exists at "/zh/2014/04/27/typical-mistakes-in-java-code.html" (696 words) No need to translate, the page exists at "/ru/2014/04/27/typical-mistakes-in-java-code.html" (1625 words) No need to translate, the page exists at "/zh/2014/07/24/rultor-automated-merging.html" (673 words) No need to translate, the page exists at "/ru/2014/07/24/rultor-automated-merging.html" (959 words) No need to translate, the page exists at "/zh/2020/11/24/objects-without-methods.html" (741 words) No need to translate, the page exists at "/ru/2020/11/24/objects-without-methods.html" (1395 words) No need to translate, the page exists at "/zh/2016/03/30/jare-instant-free-cdn.html" (761 words) No need to translate, the page exists at "/ru/2016/03/30/jare-instant-free-cdn.html" (1831 words) No need to translate, the page exists at "/zh/2014/07/29/docker-in-rultor.html" (662 words) No need to translate, the page exists at "/ru/2014/07/29/docker-in-rultor.html" (1210 words) No need to translate, the page exists at "/en/2020/11/21/svoboda-and-conflicts.html" (1701 words) No need to translate, the page exists at "/zh/2020/11/21/svoboda-and-conflicts.html" (836 words) No need to translate, the page exists at "/zh/2018/09/07/what-is-speed.html" (872 words) No need to translate, the page exists at "/ru/2018/09/07/what-is-speed.html" (1464 words) No need to translate, the page exists at "/zh/2014/04/06/introduction.html" (615 words) No need to translate, the page exists at "/ru/2014/04/06/introduction.html" (705 words) No need to translate, the page exists at "/zh/2014/05/18/cloud-autoincrement-counters.html" (620 words) No need to translate, the page exists at "/ru/2014/05/18/cloud-autoincrement-counters.html" (897 words) No need to translate, the page exists at "/zh/2015/12/08/temporal-coupling-between-method-calls.html" (683 words) No need to translate, the page exists at "/ru/2015/12/08/temporal-coupling-between-method-calls.html" (1073 words) No need to translate, the page exists at "/zh/2014/05/21/mysql-maven-plugin.html" (677 words) No need to translate, the page exists at "/ru/2014/05/21/mysql-maven-plugin.html" (1057 words) No need to translate, the page exists at "/zh/2014/04/11/jcabi-http-intro.html" (696 words) No need to translate, the page exists at "/ru/2014/04/11/jcabi-http-intro.html" (1081 words) No need to translate, the page exists at "/zh/2022/07/20/command-line-defaults.html" (700 words) No need to translate, the page exists at "/ru/2022/07/20/command-line-defaults.html" (1040 words) No need to translate, the page exists at "/zh/2018/11/06/ruby-threads.html" (669 words) No need to translate, the page exists at "/ru/2018/11/06/ruby-threads.html" (1151 words) No need to translate, the page exists at "/zh/2015/04/13/tacit-css-framework-for-dummies.html" (617 words) No need to translate, the page exists at "/ru/2015/04/13/tacit-css-framework-for-dummies.html" (924 words) No need to translate, the page exists at "/zh/2016/08/05/distributed-teams-are-higher-quality.html" (623 words) No need to translate, the page exists at "/ru/2016/08/05/distributed-teams-are-higher-quality.html" (1367 words) No need to translate, the page exists at "/zh/2015/04/22/favorite-software-books.html" (690 words) No need to translate, the page exists at "/ru/2015/04/22/favorite-software-books.html" (1334 words) No need to translate, the page exists at "/zh/2019/09/27/parsing-and-printing.html" (714 words) No need to translate, the page exists at "/ru/2019/09/27/parsing-and-printing.html" (1340 words) No need to translate, the page exists at "/zh/2016/04/05/printers-instead-of-getters.html" (627 words) No need to translate, the page exists at "/ru/2016/04/05/printers-instead-of-getters.html" (1150 words) No need to translate, the page exists at "/en/2019/04/28/formula-of-happiness.html" (1588 words) No need to translate, the page exists at "/zh/2019/04/28/formula-of-happiness.html" (824 words) No need to translate, the page exists at "/en/2018/01/03/fake-opposition.html" (1336 words) No need to translate, the page exists at "/zh/2018/01/03/fake-opposition.html" (808 words) No need to translate, the page exists at "/zh/2016/12/20/can-objects-be-friends.html" (646 words) No need to translate, the page exists at "/ru/2016/12/20/can-objects-be-friends.html" (940 words) No need to translate, the page exists at "/zh/2014/09/10/anti-patterns-in-oop.html" (639 words) No need to translate, the page exists at "/ru/2014/09/10/anti-patterns-in-oop.html" (667 words) No need to translate, the page exists at "/zh/2016/07/11/mistakes-in-agile-manifesto.html" (640 words) No need to translate, the page exists at "/ru/2016/07/11/mistakes-in-agile-manifesto.html" (1254 words) No need to translate, the page exists at "/en/2024/05/27/freedom-of-speech-vs-intelligence.html" (1610 words) No need to translate, the page exists at "/zh/2024/05/27/freedom-of-speech-vs-intelligence.html" (844 words) No need to translate, the page exists at "/zh/2019/11/03/award-2020.html" (1081 words) No need to translate, the page exists at "/ru/2019/11/03/award-2020.html" (1421 words) No need to translate, the page exists at "/en/2017/02/06/how-to-eliminate-corruption.html" (1524 words) No need to translate, the page exists at "/zh/2017/02/06/how-to-eliminate-corruption.html" (823 words) No need to translate, the page exists at "/zh/2018/07/03/global-variables.html" (651 words) No need to translate, the page exists at "/ru/2018/07/03/global-variables.html" (1006 words) No need to translate, the page exists at "/zh/2015/11/10/ten-mistakes-in-specs.html" (648 words) No need to translate, the page exists at "/ru/2015/11/10/ten-mistakes-in-specs.html" (2587 words) No need to translate, the page exists at "/zh/2023/09/29/how-to-write-related-work-section.html" (707 words) No need to translate, the page exists at "/ru/2023/09/29/how-to-write-related-work-section.html" (1095 words) No need to translate, the page exists at "/zh/2023/07/25/contribute-disabled-tests.html" (662 words) No need to translate, the page exists at "/ru/2023/07/25/contribute-disabled-tests.html" (972 words) No need to translate, the page exists at "/zh/2018/03/13/fluent-interfaces.html" (660 words) No need to translate, the page exists at "/ru/2018/03/13/fluent-interfaces.html" (1363 words) No need to translate, the page exists at "/en/2017/07/27/sabotage-failed.html" (1217 words) No need to translate, the page exists at "/zh/2017/07/27/sabotage-failed.html" (816 words) No need to translate, the page exists at "/zh/2018/02/06/where-to-find-more-bugs.html" (621 words) No need to translate, the page exists at "/ru/2018/02/06/where-to-find-more-bugs.html" (954 words) No need to translate, the page exists at "/zh/2015/03/16/technical-glossaries.html" (631 words) No need to translate, the page exists at "/ru/2015/03/16/technical-glossaries.html" (1254 words) No need to translate, the page exists at "/zh/2016/09/20/oop-without-classes.html" (605 words) No need to translate, the page exists at "/ru/2016/09/20/oop-without-classes.html" (712 words) No need to translate, the page exists at "/en/2019/03/17/terrorism-and-power.html" (1437 words) No need to translate, the page exists at "/zh/2019/03/17/terrorism-and-power.html" (836 words) No need to translate, the page exists at "/zh/2019/01/01/hazardous-enthusiasm.html" (618 words) No need to translate, the page exists at "/ru/2019/01/01/hazardous-enthusiasm.html" (1160 words) No need to translate, the page exists at "/zh/2017/05/02/remote-slaves.html" (628 words) No need to translate, the page exists at "/ru/2017/05/02/remote-slaves.html" (1324 words) No need to translate, the page exists at "/zh/2015/09/10/testing-exit-criteria.html" (623 words) No need to translate, the page exists at "/ru/2015/09/10/testing-exit-criteria.html" (1139 words) No need to translate, the page exists at "/zh/2010/03/04/pdd.html" (630 words) No need to translate, the page exists at "/ru/2010/03/04/pdd.html" (1262 words) No need to translate, the page exists at "/zh/2022/09/08/smaller-try-blocks.html" (625 words) No need to translate, the page exists at "/ru/2022/09/08/smaller-try-blocks.html" (787 words) No need to translate, the page exists at "/zh/2018/08/22/builders-and-manipulators.html" (648 words) No need to translate, the page exists at "/ru/2018/08/22/builders-and-manipulators.html" (1270 words) No need to translate, the page exists at "/zh/2023/09/19/five-ingredients-career.html" (611 words) No need to translate, the page exists at "/ru/2023/09/19/five-ingredients-career.html" (1226 words) No need to translate, the page exists at "/zh/2018/10/09/can-you-control-us.html" (639 words) No need to translate, the page exists at "/ru/2018/10/09/can-you-control-us.html" (1177 words) No need to translate, the page exists at "/zh/2014/06/20/limit-method-execution-time.html" (631 words) No need to translate, the page exists at "/ru/2014/06/20/limit-method-execution-time.html" (899 words) No need to translate, the page exists at "/zh/2023/09/05/style-checker-for-bibtex-files.html" (667 words) No need to translate, the page exists at "/ru/2023/09/05/style-checker-for-bibtex-files.html" (999 words) No need to translate, the page exists at "/zh/2015/07/28/checked-vs-unchecked-exceptions.html" (679 words) No need to translate, the page exists at "/ru/2015/07/28/checked-vs-unchecked-exceptions.html" (1793 words) No need to translate, the page exists at "/en/2016/12/12/putin-is-power.html" (1254 words) No need to translate, the page exists at "/zh/2016/12/12/putin-is-power.html" (815 words) No need to translate, the page exists at "/zh/2015/12/22/why-dont-you-contribute-to-open-source.html" (621 words) No need to translate, the page exists at "/ru/2015/12/22/why-dont-you-contribute-to-open-source.html" (1389 words) No need to translate, the page exists at "/zh/2014/09/22/remote-programming-interview.html" (649 words) No need to translate, the page exists at "/ru/2014/09/22/remote-programming-interview.html" (791 words) No need to translate, the page exists at "/zh/2023/12/11/results-and-discussion.html" (653 words) No need to translate, the page exists at "/ru/2023/12/11/results-and-discussion.html" (1117 words) No need to translate, the page exists at "/zh/2014/06/29/custom-lexer-in-jekyll.html" (611 words) No need to translate, the page exists at "/ru/2014/06/29/custom-lexer-in-jekyll.html" (660 words) No need to translate, the page exists at "/zh/2016/11/29/eolang.html" (618 words) No need to translate, the page exists at "/ru/2016/11/29/eolang.html" (763 words) No need to translate, the page exists at "/zh/2014/04/29/w3c-java-validators.html" (635 words) No need to translate, the page exists at "/ru/2014/04/29/w3c-java-validators.html" (785 words) No need to translate, the page exists at "/zh/2020/10/13/lack-of-problem.html" (617 words) No need to translate, the page exists at "/ru/2020/10/13/lack-of-problem.html" (1052 words) No need to translate, the page exists at "/zh/2017/02/14/stackoverflow-is-your-tool.html" (633 words) No need to translate, the page exists at "/ru/2017/02/14/stackoverflow-is-your-tool.html" (1331 words) No need to translate, the page exists at "/zh/2019/05/14/cause-risk-effect.html" (697 words) No need to translate, the page exists at "/ru/2019/05/14/cause-risk-effect.html" (2397 words) No need to translate, the page exists at "/zh/2019/12/24/altruism-kills.html" (610 words) No need to translate, the page exists at "/ru/2019/12/24/altruism-kills.html" (1364 words) No need to translate, the page exists at "/zh/2024/02/06/research-flow.html" (634 words) No need to translate, the page exists at "/ru/2024/02/06/research-flow.html" (1036 words) No need to translate, the page exists at "/zh/2023/11/22/avoid-line-breaks-inside-paragrap.html" (619 words) No need to translate, the page exists at "/ru/2023/11/22/avoid-line-breaks-inside-paragrap.html" (783 words) No need to translate, the page exists at "/zh/2018/12/25/speaker-cheat-sheet.html" (643 words) No need to translate, the page exists at "/ru/2018/12/25/speaker-cheat-sheet.html" (1544 words) No need to translate, the page exists at "/zh/2017/02/28/too-many-classes.html" (732 words) No need to translate, the page exists at "/ru/2017/02/28/too-many-classes.html" (1327 words) No need to translate, the page exists at "/zh/2014/08/15/retry-java-method-on-exception.html" (630 words) No need to translate, the page exists at "/ru/2014/08/15/retry-java-method-on-exception.html" (730 words) No need to translate, the page exists at "/zh/2021/08/04/prestructors.html" (619 words) No need to translate, the page exists at "/ru/2021/08/04/prestructors.html" (809 words) No need to translate, the page exists at "/zh/2022/08/04/code-and-tests-different-pull-requests.html" (631 words) No need to translate, the page exists at "/ru/2022/08/04/code-and-tests-different-pull-requests.html" (1101 words) No need to translate, the page exists at "/zh/2019/07/02/tdd-misbeliefs.html" (1278 words) No need to translate, the page exists at "/ru/2019/07/02/tdd-misbeliefs.html" (1413 words) No need to translate, the page exists at "/zh/2023/08/08/two-step-initialization.html" (803 words) No need to translate, the page exists at "/ru/2023/08/08/two-step-initialization.html" (1821 words) No need to translate, the page exists at "/zh/2014/11/20/seven-virtues-of-good-object.html" (734 words) No need to translate, the page exists at "/ru/2014/11/20/seven-virtues-of-good-object.html" (2919 words) No need to translate, the page exists at "/zh/2018/05/08/open-source-attributes.html" (739 words) No need to translate, the page exists at "/ru/2018/05/08/open-source-attributes.html" (2048 words) No need to translate, the page exists at "/zh/2015/10/20/interrupted-exception.html" (705 words) No need to translate, the page exists at "/ru/2015/10/20/interrupted-exception.html" (1436 words) No need to translate, the page exists at "/zh/2018/09/30/award-2019.html" (880 words) No need to translate, the page exists at "/ru/2018/09/30/award-2019.html" (1219 words) No need to translate, the page exists at "/en/2023/09/17/turbulence.html" (1808 words) No need to translate, the page exists at "/zh/2023/09/17/turbulence.html" (865 words) No need to translate, the page exists at "/zh/2014/04/09/xembly-intro.html" (661 words) No need to translate, the page exists at "/ru/2014/04/09/xembly-intro.html" (1233 words) No need to translate, the page exists at "/zh/2019/02/05/zache.html" (631 words) No need to translate, the page exists at "/ru/2019/02/05/zache.html" (788 words) No need to translate, the page exists at "/zh/2015/09/22/micromanagement.html" (624 words) No need to translate, the page exists at "/ru/2015/09/22/micromanagement.html" (1058 words) No need to translate, the page exists at "/zh/2019/11/19/how-much-cohesion-is-enough.html" (636 words) No need to translate, the page exists at "/ru/2019/11/19/how-much-cohesion-is-enough.html" (997 words) No need to translate, the page exists at "/zh/2015/02/26/composable-decorators.html" (690 words) No need to translate, the page exists at "/ru/2015/02/26/composable-decorators.html" (1128 words) No need to translate, the page exists at "/zh/2014/12/18/independent-technical-reviews.html" (611 words) No need to translate, the page exists at "/ru/2014/12/18/independent-technical-reviews.html" (1461 words) No need to translate, the page exists at "/zh/2024/06/09/patent-claim.html" (893 words) No need to translate, the page exists at "/ru/2024/06/09/patent-claim.html" (1977 words) No need to translate, the page exists at "/zh/2017/02/21/say-no-to-google-recruiters.html" (655 words) No need to translate, the page exists at "/ru/2017/02/21/say-no-to-google-recruiters.html" (1268 words) No need to translate, the page exists at "/zh/2016/09/13/inheritance-is-procedural.html" (658 words) No need to translate, the page exists at "/ru/2016/09/13/inheritance-is-procedural.html" (1140 words) No need to translate, the page exists at "/zh/2016/08/23/communication-maturity.html" (614 words) No need to translate, the page exists at "/ru/2016/08/23/communication-maturity.html" (1068 words) No need to translate, the page exists at "/zh/2016/04/08/revenue-may-kill-startup.html" (608 words) No need to translate, the page exists at "/ru/2016/04/08/revenue-may-kill-startup.html" (1233 words) No need to translate, the page exists at "/zh/2018/08/27/penalty-for-refusal.html" (843 words) No need to translate, the page exists at "/ru/2018/08/27/penalty-for-refusal.html" (1146 words) No need to translate, the page exists at "/zh/2021/09/09/simba.html" (627 words) No need to translate, the page exists at "/ru/2021/09/09/simba.html" (1352 words) No need to translate, the page exists at "/zh/2023/08/01/method-overloading.html" (637 words) No need to translate, the page exists at "/ru/2023/08/01/method-overloading.html" (1139 words) No need to translate, the page exists at "/zh/2015/11/16/json-vs-xml.html" (675 words) No need to translate, the page exists at "/ru/2015/11/16/json-vs-xml.html" (1387 words) No need to translate, the page exists at "/zh/2023/01/19/layout-of-tests.html" (724 words) No need to translate, the page exists at "/ru/2023/01/19/layout-of-tests.html" (2104 words) No need to translate, the page exists at "/zh/2020/10/06/latex-spell-checking.html" (690 words) No need to translate, the page exists at "/ru/2020/10/06/latex-spell-checking.html" (1084 words) No need to translate, the page exists at "/zh/2018/11/27/you-can-do-better.html" (653 words) No need to translate, the page exists at "/ru/2018/11/27/you-can-do-better.html" (1621 words) No need to translate, the page exists at "/zh/2018/09/12/clear-code.html" (628 words) No need to translate, the page exists at "/ru/2018/09/12/clear-code.html" (1020 words) No need to translate, the page exists at "/zh/2017/09/26/threecopies-server-data-backup.html" (622 words) No need to translate, the page exists at "/ru/2017/09/26/threecopies-server-data-backup.html" (1145 words) No need to translate, the page exists at "/zh/2015/10/13/competition-without-rules.html" (623 words) No need to translate, the page exists at "/ru/2015/10/13/competition-without-rules.html" (977 words) No need to translate, the page exists at "/en/2017/10/30/ukrainian-language.html" (2148 words) No need to translate, the page exists at "/zh/2017/10/30/ukrainian-language.html" (819 words) No need to translate, the page exists at "/zh/2014/10/26/hacker-vs-programmer-mentality.html" (677 words) No need to translate, the page exists at "/ru/2014/10/26/hacker-vs-programmer-mentality.html" (1476 words) No need to translate, the page exists at "/zh/2015/07/13/meetings-are-legalized-robbery.html" (597 words) No need to translate, the page exists at "/ru/2015/07/13/meetings-are-legalized-robbery.html" (2392 words) No need to translate, the page exists at "/zh/2015/11/21/ringelmann-effect-vs-agile.html" (622 words) No need to translate, the page exists at "/ru/2015/11/21/ringelmann-effect-vs-agile.html" (967 words) No need to translate, the page exists at "/zh/2019/03/28/cost-of-zerocrat.html" (878 words) No need to translate, the page exists at "/ru/2019/03/28/cost-of-zerocrat.html" (1307 words) No need to translate, the page exists at "/zh/2018/11/23/freelance-vs-outsourcing.html" (857 words) No need to translate, the page exists at "/ru/2018/11/23/freelance-vs-outsourcing.html" (1160 words) No need to translate, the page exists at "/zh/2014/08/22/art-of-software-testing.html" (641 words) No need to translate, the page exists at "/ru/2014/08/22/art-of-software-testing.html" (1492 words) No need to translate, the page exists at "/zh/2014/11/24/principles-of-bug-tracking.html" (638 words) No need to translate, the page exists at "/ru/2014/11/24/principles-of-bug-tracking.html" (2046 words) No need to translate, the page exists at "/en/2020/05/02/first-world-hysteria.html" (1535 words) No need to translate, the page exists at "/zh/2020/05/02/first-world-hysteria.html" (865 words) No need to translate, the page exists at "/zh/2014/04/24/java-xml-parsing-and-traversing.html" (628 words) No need to translate, the page exists at "/ru/2014/04/24/java-xml-parsing-and-traversing.html" (800 words) No need to translate, the page exists at "/zh/2022/07/05/safety-net.html" (661 words) No need to translate, the page exists at "/ru/2022/07/05/safety-net.html" (1195 words) No need to translate, the page exists at "/en/2017/06/29/activists.html" (1596 words) No need to translate, the page exists at "/zh/2017/06/29/activists.html" (824 words) No need to translate, the page exists at "/zh/2014/04/17/how-xdsd-is-different.html" (609 words) No need to translate, the page exists at "/ru/2014/04/17/how-xdsd-is-different.html" (1480 words) No need to translate, the page exists at "/zh/2015/01/10/windows-appveyor-maven.html" (630 words) No need to translate, the page exists at "/ru/2015/01/10/windows-appveyor-maven.html" (771 words) No need to translate, the page exists at "/zh/2015/06/11/wikipedia-bug-definition.html" (625 words) No need to translate, the page exists at "/ru/2015/06/11/wikipedia-bug-definition.html" (979 words) No need to translate, the page exists at "/zh/2014/12/04/synchronization-between-nodes.html" (610 words) No need to translate, the page exists at "/ru/2014/12/04/synchronization-between-nodes.html" (1077 words) No need to translate, the page exists at "/zh/2017/08/29/xcop.html" (627 words) No need to translate, the page exists at "/ru/2017/08/29/xcop.html" (862 words) No need to translate, the page exists at "/zh/2021/08/11/logging-in-unit-tests.html" (636 words) No need to translate, the page exists at "/ru/2021/08/11/logging-in-unit-tests.html" (1095 words) No need to translate, the page exists at "/zh/2014/04/21/s3-http-basic-auth.html" (718 words) No need to translate, the page exists at "/ru/2014/04/21/s3-http-basic-auth.html" (1395 words) No need to translate, the page exists at "/zh/2018/02/13/micro-vesting.html" (629 words) No need to translate, the page exists at "/ru/2018/02/13/micro-vesting.html" (1058 words) No need to translate, the page exists at "/zh/2014/05/13/why-null-is-bad.html" (775 words) No need to translate, the page exists at "/ru/2014/05/13/why-null-is-bad.html" (1605 words) No need to translate, the page exists at "/zh/2023/12/17/how-to-review-research-paper.html" (658 words) No need to translate, the page exists at "/ru/2023/12/17/how-to-review-research-paper.html" (1122 words) No need to translate, the page exists at "/zh/2018/07/24/bugs-or-pull-requests.html" (659 words) No need to translate, the page exists at "/ru/2018/07/24/bugs-or-pull-requests.html" (844 words) No need to translate, the page exists at "/zh/2014/04/11/cost-of-loc.html" (669 words) No need to translate, the page exists at "/ru/2014/04/11/cost-of-loc.html" (1350 words) No need to translate, the page exists at "/zh/2014/05/26/amazon-s3-java-oop-adapter.html" (707 words) No need to translate, the page exists at "/ru/2014/05/26/amazon-s3-java-oop-adapter.html" (1127 words) No need to translate, the page exists at "/zh/2015/08/25/fail-fast.html" (615 words) No need to translate, the page exists at "/ru/2015/08/25/fail-fast.html" (1041 words) No need to translate, the page exists at "/zh/2017/12/05/data-access-object.html" (669 words) No need to translate, the page exists at "/ru/2017/12/05/data-access-object.html" (1019 words) No need to translate, the page exists at "/en/2020/07/05/silence-doesnt-cure.html" (1754 words) No need to translate, the page exists at "/zh/2020/07/05/silence-doesnt-cure.html" (838 words) No need to translate, the page exists at "/zh/2016/09/07/gradients-of-immutability.html" (714 words) No need to translate, the page exists at "/ru/2016/09/07/gradients-of-immutability.html" (1130 words) No need to translate, the page exists at "/zh/2016/10/23/award-2017.html" (979 words) No need to translate, the page exists at "/ru/2016/10/23/award-2017.html" (1716 words) No need to translate, the page exists at "/zh/2017/03/24/tdd-that-works.html" (677 words) No need to translate, the page exists at "/ru/2017/03/24/tdd-that-works.html" (1538 words) No need to translate, the page exists at "/zh/2021/02/02/greed-based-planning.html" (613 words) No need to translate, the page exists at "/ru/2021/02/02/greed-based-planning.html" (1048 words) No need to translate, the page exists at "/en/2017/05/15/loyalty.html" (1118 words) No need to translate, the page exists at "/zh/2017/05/15/loyalty.html" (823 words) No need to translate, the page exists at "/zh/2014/10/12/who-is-software-architect.html" (615 words) No need to translate, the page exists at "/ru/2014/10/12/who-is-software-architect.html" (1123 words) No need to translate, the page exists at "/zh/2017/01/03/how-much-you-love-conflicts.html" (607 words) No need to translate, the page exists at "/ru/2017/01/03/how-much-you-love-conflicts.html" (1726 words) No need to translate, the page exists at "/zh/2019/12/31/talented-programmers.html" (681 words) No need to translate, the page exists at "/ru/2019/12/31/talented-programmers.html" (1363 words) No need to translate, the page exists at "/zh/2014/04/13/no-obligations-principle.html" (609 words) No need to translate, the page exists at "/ru/2014/04/13/no-obligations-principle.html" (1289 words) No need to translate, the page exists at "/zh/2015/07/09/catch-if-cant-otherwise.html" (626 words) No need to translate, the page exists at "/ru/2015/07/09/catch-if-cant-otherwise.html" (1116 words) No need to translate, the page exists at "/zh/2016/01/05/how-to-punish-employees.html" (628 words) No need to translate, the page exists at "/ru/2016/01/05/how-to-punish-employees.html" (1456 words) No need to translate, the page exists at "/zh/2018/04/10/learning-by-refactoring.html" (711 words) No need to translate, the page exists at "/ru/2018/04/10/learning-by-refactoring.html" (1818 words) No need to translate, the page exists at "/zh/2021/06/01/tips-for-recruiters.html" (614 words) No need to translate, the page exists at "/ru/2021/06/01/tips-for-recruiters.html" (2047 words) No need to translate, the page exists at "/zh/2015/06/25/xml-data-xsl-views-takes-framework.html" (682 words) No need to translate, the page exists at "/ru/2015/06/25/xml-data-xsl-views-takes-framework.html" (1202 words) No need to translate, the page exists at "/zh/2014/08/25/deploy-to-cloudbees.html" (685 words) No need to translate, the page exists at "/ru/2014/08/25/deploy-to-cloudbees.html" (1049 words) No need to translate, the page exists at "/zh/2016/11/09/why-no-ebooks.html" (650 words) No need to translate, the page exists at "/ru/2016/11/09/why-no-ebooks.html" (1307 words) No need to translate, the page exists at "/zh/2015/10/16/ridley-scott-and-joseph-goebbels.html" (652 words) No need to translate, the page exists at "/ru/2015/10/16/ridley-scott-and-joseph-goebbels.html" (1268 words) No need to translate, the page exists at "/zh/2015/12/29/turnover-is-good-for-maintainability.html" (640 words) No need to translate, the page exists at "/ru/2015/12/29/turnover-is-good-for-maintainability.html" (1217 words) No need to translate, the page exists at "/zh/2015/01/05/how-to-be-honest-and-keep-customer.html" (640 words) No need to translate, the page exists at "/ru/2015/01/05/how-to-be-honest-and-keep-customer.html" (2144 words) No need to translate, the page exists at "/zh/2014/04/13/bugs-are-welcome.html" (621 words) No need to translate, the page exists at "/ru/2014/04/13/bugs-are-welcome.html" (1058 words) No need to translate, the page exists at "/zh/2019/11/05/revolutionary-evolution.html" (607 words) No need to translate, the page exists at "/ru/2019/11/05/revolutionary-evolution.html" (1481 words) No need to translate, the page exists at "/zh/2014/04/26/incremental-requirements-with-requs.html" (658 words) No need to translate, the page exists at "/ru/2014/04/26/incremental-requirements-with-requs.html" (1509 words) No need to translate, the page exists at "/en/2019/02/21/jews-vs-french.html" (1595 words) No need to translate, the page exists at "/zh/2019/02/21/jews-vs-french.html" (842 words) No need to translate, the page exists at "/zh/2014/12/09/immutable-object-state-and-behavior.html" (758 words) No need to translate, the page exists at "/ru/2014/12/09/immutable-object-state-and-behavior.html" (2097 words) No need to translate, the page exists at "/zh/2018/01/16/educational-aspect-of-static-analysis.html" (646 words) No need to translate, the page exists at "/ru/2018/01/16/educational-aspect-of-static-analysis.html" (944 words) No need to translate, the page exists at "/en/2019/09/28/what-is-the-point.html" (1743 words) No need to translate, the page exists at "/zh/2019/09/28/what-is-the-point.html" (885 words) No need to translate, the page exists at "/zh/2021/03/03/imposters-to-win.html" (612 words) No need to translate, the page exists at "/ru/2021/03/03/imposters-to-win.html" (1136 words) No need to translate, the page exists at "/zh/2023/08/22/fast-vs-deep-testing.html" (638 words) No need to translate, the page exists at "/ru/2023/08/22/fast-vs-deep-testing.html" (1357 words) No need to translate, the page exists at "/zh/2014/10/06/software-project-lifecycle.html" (621 words) No need to translate, the page exists at "/ru/2014/10/06/software-project-lifecycle.html" (1716 words) No need to translate, the page exists at "/zh/2015/05/28/one-primary-constructor.html" (611 words) No need to translate, the page exists at "/ru/2015/05/28/one-primary-constructor.html" (793 words) No need to translate, the page exists at "/en/2016/11/26/yanukovych-v-president.html" (1142 words) No need to translate, the page exists at "/zh/2016/11/26/yanukovych-v-president.html" (833 words) No need to translate, the page exists at "/zh/2015/05/21/avoid-software-outsourcing-disaster.html" (621 words) No need to translate, the page exists at "/ru/2015/05/21/avoid-software-outsourcing-disaster.html" (2344 words) No need to translate, the page exists at "/zh/2019/04/02/software-project-review-checklist.html" (646 words) No need to translate, the page exists at "/ru/2019/04/02/software-project-review-checklist.html" (1026 words) No need to translate, the page exists at "/zh/2019/03/26/sales-kit.html" (865 words) No need to translate, the page exists at "/ru/2019/03/26/sales-kit.html" (1502 words) No need to translate, the page exists at "/zh/2015/01/21/if-then-throw-else.html" (642 words) No need to translate, the page exists at "/ru/2015/01/21/if-then-throw-else.html" (835 words) No need to translate, the page exists at "/zh/2018/01/02/operator-new-is-toxic.html" (647 words) No need to translate, the page exists at "/ru/2018/01/02/operator-new-is-toxic.html" (1079 words) No need to translate, the page exists at "/zh/2019/09/10/how-to-motivate-kids-to-code.html" (644 words) No need to translate, the page exists at "/ru/2019/09/10/how-to-motivate-kids-to-code.html" (1317 words) No need to translate, the page exists at "/zh/2017/04/25/sixnines.html" (673 words) No need to translate, the page exists at "/ru/2017/04/25/sixnines.html" (951 words) No need to translate, the page exists at "/zh/2015/02/12/top-down-design.html" (628 words) No need to translate, the page exists at "/ru/2015/02/12/top-down-design.html" (1179 words) No need to translate, the page exists at "/zh/2015/02/23/haircut.html" (591 words) No need to translate, the page exists at "/ru/2015/02/23/haircut.html" (1001 words) No need to translate, the page exists at "/zh/2015/12/16/investors-are-too-scared.html" (617 words) No need to translate, the page exists at "/ru/2015/12/16/investors-are-too-scared.html" (1660 words) No need to translate, the page exists at "/zh/2014/10/08/continuous-integration-is-dead.html" (631 words) No need to translate, the page exists at "/ru/2014/10/08/continuous-integration-is-dead.html" (1373 words) No need to translate, the page exists at "/en/2016/12/08/lustration-in-ukraine.html" (1333 words) No need to translate, the page exists at "/zh/2016/12/08/lustration-in-ukraine.html" (821 words) No need to translate, the page exists at "/en/2019/02/16/calibrated-democracy.html" (1626 words) No need to translate, the page exists at "/zh/2019/02/16/calibrated-democracy.html" (839 words) No need to translate, the page exists at "/zh/2017/03/07/traits-and-mixins.html" (671 words) No need to translate, the page exists at "/ru/2017/03/07/traits-and-mixins.html" (1158 words) No need to translate, the page exists at "/zh/2015/11/24/imprisonment-for-irresponsible-coding.html" (611 words) No need to translate, the page exists at "/ru/2015/11/24/imprisonment-for-irresponsible-coding.html" (792 words) No need to translate, the page exists at "/zh/2014/04/06/movies-for-thanasis.html" (899 words) No need to translate, the page exists at "/ru/2014/04/06/movies-for-thanasis.html" (1008 words) No need to translate, the page exists at "/zh/2017/01/17/synchronized-decorators.html" (625 words) No need to translate, the page exists at "/ru/2017/01/17/synchronized-decorators.html" (1005 words) No need to translate, the page exists at "/zh/2016/09/27/command-control-innovate.html" (626 words) No need to translate, the page exists at "/ru/2016/09/27/command-control-innovate.html" (1158 words) No need to translate, the page exists at "/en/2017/03/02/history-of-separatism.html" (1407 words) No need to translate, the page exists at "/zh/2017/03/02/history-of-separatism.html" (830 words) No need to translate, the page exists at "/zh/2024/07/07/checking-object-existence.html" (913 words) No need to translate, the page exists at "/ru/2024/07/07/checking-object-existence.html" (1396 words) No need to translate, the page exists at "/zh/2018/04/24/right-way-to-report-bugs.html" (625 words) No need to translate, the page exists at "/ru/2018/04/24/right-way-to-report-bugs.html" (1117 words) No need to translate, the page exists at "/zh/2018/04/03/donations-via-zerocracy.html" (624 words) No need to translate, the page exists at "/ru/2018/04/03/donations-via-zerocracy.html" (1003 words) No need to translate, the page exists at "/zh/2016/12/06/how-to-pay-programmers-less.html" (633 words) No need to translate, the page exists at "/ru/2016/12/06/how-to-pay-programmers-less.html" (1447 words) No need to translate, the page exists at "/zh/2020/07/29/open-source-etiquette.html" (639 words) No need to translate, the page exists at "/ru/2020/07/29/open-source-etiquette.html" (1286 words) No need to translate, the page exists at "/zh/2014/08/19/how-to-release-to-maven-central.html" (734 words) No need to translate, the page exists at "/ru/2014/08/19/how-to-release-to-maven-central.html" (1203 words) No need to translate, the page exists at "/zh/2024/06/23/medals-to-win.html" (907 words) No need to translate, the page exists at "/ru/2024/06/23/medals-to-win.html" (1310 words) No need to translate, the page exists at "/zh/2016/01/12/good-programmers-dont-work-for-equity.html" (613 words) No need to translate, the page exists at "/ru/2016/01/12/good-programmers-dont-work-for-equity.html" (836 words) No need to translate, the page exists at "/en/2016/12/22/what-causes-terrorism.html" (1539 words) No need to translate, the page exists at "/zh/2016/12/22/what-causes-terrorism.html" (856 words) No need to translate, the page exists at "/en/2020/03/29/coronavirus.html" (1643 words) No need to translate, the page exists at "/zh/2020/03/29/coronavirus.html" (842 words) No need to translate, the page exists at "/zh/2016/08/01/continuous-integration-maturity.html" (624 words) No need to translate, the page exists at "/ru/2016/08/01/continuous-integration-maturity.html" (992 words) No need to translate, the page exists at "/zh/2016/07/10/software-project-roles.html" (674 words) No need to translate, the page exists at "/ru/2016/07/10/software-project-roles.html" (901 words) No need to translate, the page exists at "/zh/2017/07/11/how-to-redesign-equals.html" (673 words) No need to translate, the page exists at "/ru/2017/07/11/how-to-redesign-equals.html" (981 words) No need to translate, the page exists at "/zh/2015/05/18/cookie-based-authentication.html" (743 words) No need to translate, the page exists at "/ru/2015/05/18/cookie-based-authentication.html" (1592 words) No need to translate, the page exists at "/zh/2017/11/14/static-factory-methods.html" (702 words) No need to translate, the page exists at "/ru/2017/11/14/static-factory-methods.html" (1407 words) No need to translate, the page exists at "/zh/2014/09/13/deploying-to-heroku.html" (658 words) No need to translate, the page exists at "/ru/2014/09/13/deploying-to-heroku.html" (934 words) No need to translate, the page exists at "/zh/2015/03/26/jaxb-vs-xembly.html" (645 words) No need to translate, the page exists at "/ru/2015/03/26/jaxb-vs-xembly.html" (962 words) No need to translate, the page exists at "/zh/2016/06/17/dont-use-java-assertions.html" (635 words) No need to translate, the page exists at "/ru/2016/06/17/dont-use-java-assertions.html" (831 words) No need to translate, the page exists at "/zh/2015/02/16/it-is-not-a-school.html" (637 words) No need to translate, the page exists at "/ru/2015/02/16/it-is-not-a-school.html" (1435 words) No need to translate, the page exists at "/zh/2023/07/19/just-show-up.html" (631 words) No need to translate, the page exists at "/ru/2023/07/19/just-show-up.html" (1162 words) No need to translate, the page exists at "/en/2017/01/12/will-i-go-to-war.html" (1166 words) No need to translate, the page exists at "/zh/2017/01/12/will-i-go-to-war.html" (828 words) No need to translate, the page exists at "/zh/2019/05/28/trust-or-not.html" (669 words) No need to translate, the page exists at "/ru/2019/05/28/trust-or-not.html" (1356 words) No need to translate, the page exists at "/zh/2016/06/27/singletons-must-die.html" (656 words) No need to translate, the page exists at "/ru/2016/06/27/singletons-must-die.html" (1016 words) No need to translate, the page exists at "/zh/2015/01/15/how-to-cut-corners.html" (643 words) No need to translate, the page exists at "/ru/2015/01/15/how-to-cut-corners.html" (2410 words) No need to translate, the page exists at "/zh/2017/05/16/monikers.html" (641 words) No need to translate, the page exists at "/ru/2017/05/16/monikers.html" (804 words) No need to translate, the page exists at "/zh/2016/03/15/wring-dispatcher-github-notifications.html" (615 words) No need to translate, the page exists at "/ru/2016/03/15/wring-dispatcher-github-notifications.html" (919 words) No need to translate, the page exists at "/zh/2017/12/26/software-quality-formula.html" (646 words) No need to translate, the page exists at "/ru/2017/12/26/software-quality-formula.html" (993 words) No need to translate, the page exists at "/zh/2015/02/09/serious-code-reviewer.html" (663 words) No need to translate, the page exists at "/ru/2015/02/09/serious-code-reviewer.html" (2091 words) No need to translate, the page exists at "/zh/2018/08/14/seventy-percent.html" (632 words) No need to translate, the page exists at "/ru/2018/08/14/seventy-percent.html" (1340 words) No need to translate, the page exists at "/zh/2015/03/22/takes-java-web-framework.html" (963 words) No need to translate, the page exists at "/ru/2015/03/22/takes-java-web-framework.html" (2638 words) No need to translate, the page exists at "/zh/2014/06/21/casperjs-with-maven.html" (657 words) No need to translate, the page exists at "/ru/2014/06/21/casperjs-with-maven.html" (1109 words) No need to translate, the page exists at "/en/2020/06/12/protesters.html" (1498 words) No need to translate, the page exists at "/zh/2020/06/12/protesters.html" (832 words) No need to translate, the page exists at "/zh/2017/04/11/flexibility-equates-lower-quality.html" (672 words) No need to translate, the page exists at "/ru/2017/04/11/flexibility-equates-lower-quality.html" (1197 words) No need to translate, the page exists at "/zh/2022/08/10/xsline-immutable-pipeline.html" (753 words) No need to translate, the page exists at "/ru/2022/08/10/xsline-immutable-pipeline.html" (1185 words) No need to translate, the page exists at "/zh/2014/04/20/how-hourly-rate-is-calculated.html" (632 words) No need to translate, the page exists at "/ru/2014/04/20/how-hourly-rate-is-calculated.html" (1317 words) No need to translate, the page exists at "/zh/2018/12/18/silicon-valley-criticism.html" (657 words) No need to translate, the page exists at "/ru/2018/12/18/silicon-valley-criticism.html" (2205 words) No need to translate, the page exists at "/en/2019/01/28/the-wall.html" (1439 words) No need to translate, the page exists at "/zh/2019/01/28/the-wall.html" (829 words) No need to translate, the page exists at "/zh/2014/08/18/fluent-jdbc-decorator.html" (651 words) No need to translate, the page exists at "/ru/2014/08/18/fluent-jdbc-decorator.html" (865 words) No need to translate, the page exists at "/zh/2016/06/03/conference-mistakes.html" (618 words) No need to translate, the page exists at "/ru/2016/06/03/conference-mistakes.html" (1399 words) No need to translate, the page exists at "/zh/2014/07/03/how-to-read-manifest-mf.html" (680 words) No need to translate, the page exists at "/ru/2014/07/03/how-to-read-manifest-mf.html" (943 words) No need to translate, the page exists at "/zh/2016/04/12/java-annotations-are-evil.html" (680 words) No need to translate, the page exists at "/ru/2016/04/12/java-annotations-are-evil.html" (1417 words) No need to translate, the page exists at "/zh/2018/09/05/monolithic-repositories.html" (729 words) No need to translate, the page exists at "/ru/2018/09/05/monolithic-repositories.html" (1839 words) No need to translate, the page exists at "/zh/2018/09/18/fear-of-coupling.html" (679 words) No need to translate, the page exists at "/ru/2018/09/18/fear-of-coupling.html" (1466 words) No need to translate, the page exists at "/zh/2016/04/26/why-inputstream-design-is-wrong.html" (646 words) No need to translate, the page exists at "/ru/2016/04/26/why-inputstream-design-is-wrong.html" (997 words) No need to translate, the page exists at "/zh/2019/03/12/how-to-move-faster.html" (875 words) No need to translate, the page exists at "/ru/2019/03/12/how-to-move-faster.html" (1597 words) No need to translate, the page exists at "/zh/2017/09/19/what-motivates-me.html" (631 words) No need to translate, the page exists at "/ru/2017/09/19/what-motivates-me.html" (1535 words) No need to translate, the page exists at "/zh/2015/07/16/fools-dont-write-unit-tests.html" (623 words) No need to translate, the page exists at "/ru/2015/07/16/fools-dont-write-unit-tests.html" (1101 words) No need to translate, the page exists at "/zh/2019/07/30/joy-of-programming.html" (634 words) No need to translate, the page exists at "/ru/2019/07/30/joy-of-programming.html" (1655 words) No need to translate, the page exists at "/zh/2015/10/17/award-2016.html" (1432 words) No need to translate, the page exists at "/ru/2015/10/17/award-2016.html" (2118 words) No need to translate, the page exists at "/zh/2016/08/30/decomposition-of-responsibility.html" (667 words) No need to translate, the page exists at "/ru/2016/08/30/decomposition-of-responsibility.html" (986 words) No need to translate, the page exists at "/zh/2019/04/09/beg-them.html" (634 words) No need to translate, the page exists at "/ru/2019/04/09/beg-them.html" (1458 words) No need to translate, the page exists at "/en/2017/04/18/dnepr-corruption-item.html" (1638 words) No need to translate, the page exists at "/zh/2017/04/18/dnepr-corruption-item.html" (835 words) No need to translate, the page exists at "/zh/2017/05/17/single-statement-unit-tests.html" (644 words) No need to translate, the page exists at "/ru/2017/05/17/single-statement-unit-tests.html" (921 words) No need to translate, the page exists at "/zh/2015/07/06/public-static-literals.html" (688 words) No need to translate, the page exists at "/ru/2015/07/06/public-static-literals.html" (1164 words) No need to translate, the page exists at "/zh/2019/06/26/syncem.html" (641 words) No need to translate, the page exists at "/ru/2019/06/26/syncem.html" (843 words) No need to translate, the page exists at "/zh/2014/08/13/strict-code-quality-control.html" (648 words) No need to translate, the page exists at "/ru/2014/08/13/strict-code-quality-control.html" (1418 words) No need to translate, the page exists at "/zh/2016/03/01/how-we-interview-programmers.html" (603 words) No need to translate, the page exists at "/ru/2016/03/01/how-we-interview-programmers.html" (1293 words) No need to translate, the page exists at "/zh/2014/09/23/built-in-fake-objects.html" (690 words) No need to translate, the page exists at "/ru/2014/09/23/built-in-fake-objects.html" (1131 words) No need to translate, the page exists at "/zh/2014/08/29/docker-non-root.html" (671 words) No need to translate, the page exists at "/ru/2014/08/29/docker-non-root.html" (755 words) No need to translate, the page exists at "/en/2018/10/07/history-simplification.html" (1408 words) No need to translate, the page exists at "/zh/2018/10/07/history-simplification.html" (806 words) No need to translate, the page exists at "/zh/2022/02/16/ai-coding.html" (623 words) No need to translate, the page exists at "/ru/2022/02/16/ai-coding.html" (1290 words) No need to translate, the page exists at "/zh/2020/01/15/question-never-ask.html" (626 words) No need to translate, the page exists at "/ru/2020/01/15/question-never-ask.html" (975 words) No need to translate, the page exists at "/zh/2019/10/29/sql-as-a-service.html" (654 words) No need to translate, the page exists at "/ru/2019/10/29/sql-as-a-service.html" (1193 words) No need to translate, the page exists at "/zh/2015/05/11/software-architect-responsibilities.html" (617 words) No need to translate, the page exists at "/ru/2015/05/11/software-architect-responsibilities.html" (1078 words) No need to translate, the page exists at "/zh/2020/05/13/career-killer.html" (632 words) No need to translate, the page exists at "/ru/2020/05/13/career-killer.html" (1258 words) No need to translate, the page exists at "/zh/2015/03/09/objects-end-with-er.html" (672 words) No need to translate, the page exists at "/ru/2015/03/09/objects-end-with-er.html" (1184 words) No need to translate, the page exists at "/zh/2019/05/21/dont-improvise.html" (638 words) No need to translate, the page exists at "/ru/2019/05/21/dont-improvise.html" (1452 words) No need to translate, the page exists at "/zh/2015/06/15/software-outsourcing-survival-guide.html" (641 words) No need to translate, the page exists at "/ru/2015/06/15/software-outsourcing-survival-guide.html" (1301 words) No need to translate, the page exists at "/zh/2016/12/13/mvc-vs-oop.html" (619 words) No need to translate, the page exists at "/ru/2016/12/13/mvc-vs-oop.html" (973 words) No need to translate, the page exists at "/en/2016/12/19/are-you-ashamed-of-voting.html" (1065 words) No need to translate, the page exists at "/zh/2016/12/19/are-you-ashamed-of-voting.html" (829 words) No need to translate, the page exists at "/zh/2016/01/19/how-expensive-is-outsourcing.html" (619 words) No need to translate, the page exists at "/ru/2016/01/19/how-expensive-is-outsourcing.html" (1346 words) No need to translate, the page exists at "/zh/2016/11/21/naked-data.html" (633 words) No need to translate, the page exists at "/ru/2016/11/21/naked-data.html" (1036 words) No need to translate, the page exists at "/zh/2014/07/21/read-only-master-branch.html" (659 words) No need to translate, the page exists at "/ru/2014/07/21/read-only-master-branch.html" (1562 words) No need to translate, the page exists at "/zh/2017/07/04/sexism.html" (642 words) No need to translate, the page exists at "/ru/2017/07/04/sexism.html" (1247 words) No need to translate, the page exists at "/zh/2019/02/03/cloudrepo.html" (711 words) No need to translate, the page exists at "/ru/2019/02/03/cloudrepo.html" (1251 words) No need to translate, the page exists at "/zh/2017/01/31/decorating-envelopes.html" (699 words) No need to translate, the page exists at "/ru/2017/01/31/decorating-envelopes.html" (872 words) No need to translate, the page exists at "/zh/2014/10/03/di-containers-are-evil.html" (674 words) No need to translate, the page exists at "/ru/2014/10/03/di-containers-are-evil.html" (1206 words) No need to translate, the page exists at "/zh/2019/04/17/nutch-from-java.html" (720 words) No need to translate, the page exists at "/ru/2019/04/17/nutch-from-java.html" (1076 words) No need to translate, the page exists at "/en/2024/01/03/not-able-to-speak.html" (1224 words) No need to translate, the page exists at "/zh/2024/01/03/not-able-to-speak.html" (839 words) No need to translate, the page exists at "/en/2023/10/01/individualism-vs-collectivism.html" (1575 words) No need to translate, the page exists at "/zh/2023/10/01/individualism-vs-collectivism.html" (838 words) No need to translate, the page exists at "/zh/2016/02/09/are-you-still-debugging.html" (635 words) No need to translate, the page exists at "/ru/2016/02/09/are-you-still-debugging.html" (1226 words) No need to translate, the page exists at "/zh/2017/06/27/my-environment.html" (1465 words) No need to translate, the page exists at "/ru/2017/06/27/my-environment.html" (1502 words) No need to translate, the page exists at "/zh/2014/04/12/puzzle-driven-development-by-roles.html" (633 words) No need to translate, the page exists at "/ru/2014/04/12/puzzle-driven-development-by-roles.html" (1976 words) No need to translate, the page exists at "/zh/2016/02/18/holacracy-autocracy.html" (609 words) No need to translate, the page exists at "/ru/2016/02/18/holacracy-autocracy.html" (1090 words) No need to translate, the page exists at "/zh/2019/07/10/inversive-management.html" (634 words) No need to translate, the page exists at "/ru/2019/07/10/inversive-management.html" (1300 words) No need to translate, the page exists at "/en/2024/04/02/kulikovo-pole.html" (2364 words) No need to translate, the page exists at "/zh/2024/04/02/kulikovo-pole.html" (878 words) No need to translate, the page exists at "/zh/2014/11/14/hits-of-code.html" (625 words) No need to translate, the page exists at "/ru/2014/11/14/hits-of-code.html" (1406 words) No need to translate, the page exists at "/zh/2018/10/16/dont-make-me-guess.html" (627 words) No need to translate, the page exists at "/ru/2018/10/16/dont-make-me-guess.html" (1185 words) No need to translate, the page exists at "/zh/2015/09/01/redundant-variables-are-evil.html" (601 words) No need to translate, the page exists at "/ru/2015/09/01/redundant-variables-are-evil.html" (920 words) No need to translate, the page exists at "/zh/2017/12/19/srp-is-hoax.html" (653 words) No need to translate, the page exists at "/ru/2017/12/19/srp-is-hoax.html" (1130 words) No need to translate, the page exists at "/zh/2017/10/24/award-2018.html" (1190 words) No need to translate, the page exists at "/ru/2017/10/24/award-2018.html" (1775 words) No need to translate, the page exists at "/en/2016/12/29/who-wants-our-donations.html" (1364 words) No need to translate, the page exists at "/zh/2016/12/29/who-wants-our-donations.html" (823 words) No need to translate, the page exists at "/en/2023/08/27/immigration-by-war.html" (1410 words) No need to translate, the page exists at "/zh/2023/08/27/immigration-by-war.html" (831 words) No need to translate, the page exists at "/en/2016/12/30/tu154-sochi.html" (1323 words) No need to translate, the page exists at "/zh/2016/12/30/tu154-sochi.html" (818 words) No need to translate, the page exists at "/zh/2020/11/10/typing-without-types.html" (689 words) No need to translate, the page exists at "/ru/2020/11/10/typing-without-types.html" (1083 words) No need to translate, the page exists at "/zh/2014/11/03/empty-line-code-smell.html" (638 words) No need to translate, the page exists at "/ru/2014/11/03/empty-line-code-smell.html" (976 words) No need to translate, the page exists at "/zh/2017/10/17/lazy-loading-caching-sticky-cactoos.html" (687 words) No need to translate, the page exists at "/ru/2017/10/17/lazy-loading-caching-sticky-cactoos.html" (1153 words) No need to translate, the page exists at "/en/2019/01/20/drugs.html" (1867 words) No need to translate, the page exists at "/zh/2019/01/20/drugs.html" (850 words) No need to translate, the page exists at "/en/2024/09/21/interpreters-of-chaos.html" (1609 words) No need to translate, the page exists at "/zh/2024/09/21/interpreters-of-chaos.html" (842 words) No need to translate, the page exists at "/zh/2015/04/16/award.html" (2600 words) No need to translate, the page exists at "/ru/2015/04/16/award.html" (3655 words) No need to translate, the page exists at "/zh/2021/10/21/objectionary.html" (965 words) No need to translate, the page exists at "/ru/2021/10/21/objectionary.html" (2464 words) No need to translate, the page exists at "/zh/2019/01/29/dependency-hell.html" (681 words) No need to translate, the page exists at "/ru/2019/01/29/dependency-hell.html" (1219 words) No need to translate, the page exists at "/zh/2014/10/20/how-we-write-product-vision.html" (654 words) No need to translate, the page exists at "/ru/2014/10/20/how-we-write-product-vision.html" (1638 words) No need to translate, the page exists at "/en/2019/12/31/testosterone.html" (2160 words) No need to translate, the page exists at "/zh/2019/12/31/testosterone.html" (824 words) No need to translate, the page exists at "/zh/2017/08/15/bitcoin-pyramid.html" (623 words) No need to translate, the page exists at "/ru/2017/08/15/bitcoin-pyramid.html" (1167 words) No need to translate, the page exists at "/zh/2020/01/07/embrace-the-chaos.html" (624 words) No need to translate, the page exists at "/ru/2020/01/07/embrace-the-chaos.html" (966 words) No need to translate, the page exists at "/zh/2021/04/14/how-we-organized-iccq.html" (732 words) No need to translate, the page exists at "/ru/2021/04/14/how-we-organized-iccq.html" (2031 words) No need to translate, the page exists at "/zh/2015/06/29/simple-diagrams.html" (657 words) No need to translate, the page exists at "/ru/2015/06/29/simple-diagrams.html" (1426 words) No need to translate, the page exists at "/zh/2018/02/27/parsing-objects.html" (647 words) No need to translate, the page exists at "/ru/2018/02/27/parsing-objects.html" (905 words) No need to translate, the page exists at "/zh/2014/07/20/liquibase-in-maven.html" (648 words) No need to translate, the page exists at "/ru/2014/07/20/liquibase-in-maven.html" (977 words) No need to translate, the page exists at "/zh/2015/02/02/xsl-transformations-in-java.html" (623 words) No need to translate, the page exists at "/ru/2015/02/02/xsl-transformations-in-java.html" (932 words) No need to translate, the page exists at "/en/2017/01/30/lifetime-imprisonment-for-separatism.html" (1304 words) No need to translate, the page exists at "/zh/2017/01/30/lifetime-imprisonment-for-separatism.html" (830 words) No need to translate, the page exists at "/zh/2017/10/03/java9.html" (830 words) No need to translate, the page exists at "/ru/2017/10/03/java9.html" (1640 words) No need to translate, the page exists at "/zh/2023/12/26/defend-me-against-chatgpt.html" (628 words) No need to translate, the page exists at "/ru/2023/12/26/defend-me-against-chatgpt.html" (1122 words) No need to translate, the page exists at "/en/2019/09/15/revolution-bottom-up.html" (1640 words) No need to translate, the page exists at "/zh/2019/09/15/revolution-bottom-up.html" (825 words) No need to translate, the page exists at "/zh/2016/07/21/convince-me.html" (627 words) No need to translate, the page exists at "/ru/2016/07/21/convince-me.html" (1355 words) No need to translate, the page exists at "/zh/2014/09/02/java-ssh-client.html" (846 words) No need to translate, the page exists at "/ru/2014/09/02/java-ssh-client.html" (939 words) No need to translate, the page exists at "/zh/2020/12/01/abstract-objects.html" (704 words) No need to translate, the page exists at "/ru/2020/12/01/abstract-objects.html" (1060 words) No need to translate, the page exists at "/zh/2017/09/12/evil-object-name-suffix-client.html" (691 words) No need to translate, the page exists at "/ru/2017/09/12/evil-object-name-suffix-client.html" (1222 words) No need to translate, the page exists at "/zh/2017/06/22/object-oriented-input-output-in-cactoos.html" (709 words) No need to translate, the page exists at "/ru/2017/06/22/object-oriented-input-output-in-cactoos.html" (1243 words) No need to translate, the page exists at "/en/2016/11/28/saakashvili-speaks-ukrainian.html" (1184 words) No need to translate, the page exists at "/zh/2016/11/28/saakashvili-speaks-ukrainian.html" (815 words) No need to translate, the page exists at "/zh/2023/10/11/method-of-research.html" (663 words) No need to translate, the page exists at "/ru/2023/10/11/method-of-research.html" (1047 words) No need to translate, the page exists at "/zh/2017/01/10/how-to-teach-customers.html" (616 words) No need to translate, the page exists at "/ru/2017/01/10/how-to-teach-customers.html" (985 words) No need to translate, the page exists at "/zh/2014/10/29/how-much-do-you-cost.html" (621 words) No need to translate, the page exists at "/ru/2014/10/29/how-much-do-you-cost.html" (2905 words) No need to translate, the page exists at "/zh/2014/06/19/avoid-string-concatenation.html" (665 words) No need to translate, the page exists at "/ru/2014/06/19/avoid-string-concatenation.html" (1085 words) No need to translate, the page exists at "/zh/2014/04/15/definition-of-done.html" (605 words) No need to translate, the page exists at "/ru/2014/04/15/definition-of-done.html" (842 words) No need to translate, the page exists at "/zh/2019/03/26/jpages.html" (722 words) No need to translate, the page exists at "/ru/2019/03/26/jpages.html" (1419 words) No need to translate, the page exists at "/zh/2016/03/22/try-finally-if-not-null.html" (630 words) No need to translate, the page exists at "/ru/2016/03/22/try-finally-if-not-null.html" (817 words) No need to translate, the page exists at "/en/2019/01/13/country-as-a-service.html" (1747 words) No need to translate, the page exists at "/zh/2019/01/13/country-as-a-service.html" (842 words) No need to translate, the page exists at "/zh/2014/06/01/aop-aspectj-java-method-logging.html" (903 words) No need to translate, the page exists at "/ru/2014/06/01/aop-aspectj-java-method-logging.html" (1686 words) No need to translate, the page exists at "/zh/2016/03/08/pimp-up-your-resume.html" (632 words) No need to translate, the page exists at "/ru/2016/03/08/pimp-up-your-resume.html" (2877 words) No need to translate, the page exists at "/en/2017/11/08/crimea.html" (1542 words) No need to translate, the page exists at "/zh/2017/11/08/crimea.html" (844 words) No need to translate, the page exists at "/zh/2014/09/24/why-monetary-awards-dont-work.html" (626 words) No need to translate, the page exists at "/ru/2014/09/24/why-monetary-awards-dont-work.html" (1274 words) No need to translate, the page exists at "/zh/2019/03/12/data-and-maintainability.html" (733 words) No need to translate, the page exists at "/ru/2019/03/12/data-and-maintainability.html" (1901 words) No need to translate, the page exists at "/zh/2014/09/09/restful-web-sites.html" (684 words) No need to translate, the page exists at "/ru/2014/09/09/restful-web-sites.html" (1292 words) No need to translate, the page exists at "/zh/2014/12/15/how-much-your-objects-encapsulate.html" (646 words) No need to translate, the page exists at "/ru/2014/12/15/how-much-your-objects-encapsulate.html" (1016 words) No need to translate, the page exists at "/zh/2019/01/22/10x-paychecks.html" (638 words) No need to translate, the page exists at "/ru/2019/01/22/10x-paychecks.html" (1264 words) No need to translate, the page exists at "/zh/2016/11/18/software-conferences-to-attend.html" (650 words) No need to translate, the page exists at "/ru/2016/11/18/software-conferences-to-attend.html" (709 words) No need to translate, the page exists at "/zh/2017/08/22/to-be-nice-or-not.html" (678 words) No need to translate, the page exists at "/ru/2017/08/22/to-be-nice-or-not.html" (1515 words) No need to translate, the page exists at "/zh/2019/09/17/be-unhappy-to-be-happy.html" (656 words) No need to translate, the page exists at "/ru/2019/09/17/be-unhappy-to-be-happy.html" (1256 words) No need to translate, the page exists at "/zh/2018/06/19/glogin.html" (658 words) No need to translate, the page exists at "/ru/2018/06/19/glogin.html" (889 words) No need to translate, the page exists at "/en/2017/04/24/slaves-of-the-law.html" (1350 words) No need to translate, the page exists at "/zh/2017/04/24/slaves-of-the-law.html" (832 words) No need to translate, the page exists at "/zh/2017/07/18/sexual-harassment.html" (639 words) No need to translate, the page exists at "/ru/2017/07/18/sexual-harassment.html" (1213 words) No need to translate, the page exists at "/zh/2018/08/29/soft-skills.html" (626 words) No need to translate, the page exists at "/ru/2018/08/29/soft-skills.html" (1381 words) No need to translate, the page exists at "/zh/2017/06/13/dynamodb-rack-maven.html" (831 words) No need to translate, the page exists at "/ru/2017/06/13/dynamodb-rack-maven.html" (1357 words) No need to translate, the page exists at "/en/2018/01/10/dalles-plan.html" (1300 words) No need to translate, the page exists at "/zh/2018/01/10/dalles-plan.html" (843 words) No need to translate, the page exists at "/zh/2017/05/10/inversion-of-control.html" (651 words) No need to translate, the page exists at "/ru/2017/05/10/inversion-of-control.html" (858 words) No need to translate, the page exists at "/zh/2021/10/12/calibrated-achievement-points.html" (641 words) No need to translate, the page exists at "/ru/2021/10/12/calibrated-achievement-points.html" (1641 words) No need to translate, the page exists at "/en/2023/08/13/dictators.html" (1717 words) No need to translate, the page exists at "/zh/2023/08/13/dictators.html" (829 words) No need to translate, the page exists at "/en/2019/07/07/strong-opinions.html" (1773 words) No need to translate, the page exists at "/zh/2019/07/07/strong-opinions.html" (821 words) No need to translate, the page exists at "/zh/2017/11/07/five-new-java-features.html" (669 words) No need to translate, the page exists at "/ru/2017/11/07/five-new-java-features.html" (1244 words) No need to translate, the page exists at "/zh/2015/04/02/class-casting-is-anti-pattern.html" (721 words) No need to translate, the page exists at "/ru/2015/04/02/class-casting-is-anti-pattern.html" (1201 words) No need to translate, the page exists at "/en/2017/02/20/nationalism-of-the-future.html" (1847 words) No need to translate, the page exists at "/zh/2017/02/20/nationalism-of-the-future.html" (833 words) No need to translate, the page exists at "/zh/2015/08/04/nine-steps-start-software-project.html" (658 words) No need to translate, the page exists at "/ru/2015/08/04/nine-steps-start-software-project.html" (2271 words) No need to translate, the page exists at "/zh/2014/04/28/xml-xpath-hamcrest-matchers.html" (678 words) No need to translate, the page exists at "/ru/2014/04/28/xml-xpath-hamcrest-matchers.html" (882 words) No need to translate, the page exists at "/zh/2015/10/27/outsourcing-doesnt-work.html" (617 words) No need to translate, the page exists at "/ru/2015/10/27/outsourcing-doesnt-work.html" (1861 words) No need to translate, the page exists at "/zh/2015/04/30/iterating-adapter.html" (633 words) No need to translate, the page exists at "/ru/2015/04/30/iterating-adapter.html" (788 words) No need to translate, the page exists at "/zh/2018/04/17/how-to-be-lazy.html" (659 words) No need to translate, the page exists at "/ru/2018/04/17/how-to-be-lazy.html" (1503 words) No need to translate, the page exists at "/zh/2019/05/07/sibit-bitcoin-command-line-client.html" (675 words) No need to translate, the page exists at "/ru/2019/05/07/sibit-bitcoin-command-line-client.html" (1597 words) No need to translate, the page exists at "/zh/2015/12/01/rethrow-exceptions.html" (655 words) No need to translate, the page exists at "/ru/2015/12/01/rethrow-exceptions.html" (1088 words) No need to translate, the page exists at "/zh/2015/09/07/maven-repository-amazon-s3.html" (686 words) No need to translate, the page exists at "/ru/2015/09/07/maven-repository-amazon-s3.html" (1007 words) No need to translate, the page exists at "/zh/2015/01/26/happy-boss-false-objective.html" (621 words) No need to translate, the page exists at "/ru/2015/01/26/happy-boss-false-objective.html" (1473 words) No need to translate, the page exists at "/en/2017/10/24/motherland.html" (1555 words) No need to translate, the page exists at "/zh/2017/10/24/motherland.html" (840 words) No need to translate, the page exists at "/zh/2014/10/07/stop-chatting-start-coding.html" (609 words) No need to translate, the page exists at "/ru/2014/10/07/stop-chatting-start-coding.html" (1007 words) No need to translate, the page exists at "/en/2017/11/22/opposition.html" (1592 words) No need to translate, the page exists at "/zh/2017/11/22/opposition.html" (816 words) No need to translate, the page exists at "/zh/2018/12/11/unit-testing-anti-patterns.html" (705 words) No need to translate, the page exists at "/ru/2018/12/11/unit-testing-anti-patterns.html" (1462 words) No need to translate, the page exists at "/zh/2014/05/01/dynamodb-local-maven-plugin.html" (696 words) No need to translate, the page exists at "/ru/2014/05/01/dynamodb-local-maven-plugin.html" (952 words) No need to translate, the page exists at "/zh/2019/06/19/how-much-they-suffer.html" (639 words) No need to translate, the page exists at "/ru/2019/06/19/how-much-they-suffer.html" (1329 words) No need to translate, the page exists at "/zh/2014/10/21/incremental-billing.html" (605 words) No need to translate, the page exists at "/ru/2014/10/21/incremental-billing.html" (1277 words) No need to translate, the page exists at "/zh/2022/08/24/research-paper-template.html" (645 words) No need to translate, the page exists at "/ru/2022/08/24/research-paper-template.html" (1295 words) No need to translate, the page exists at "/zh/2013/12/29/proto.html" (760 words) No need to translate, the page exists at "/ru/2013/12/29/proto.html" (1000 words) No need to translate, the page exists at "/zh/2016/04/19/object-must-not-be-configurable.html" (667 words) No need to translate, the page exists at "/ru/2016/04/19/object-must-not-be-configurable.html" (1200 words) No need to translate, the page exists at "/zh/2018/03/21/zerocracy-announcement.html" (658 words) No need to translate, the page exists at "/ru/2018/03/21/zerocracy-announcement.html" (1389 words) No need to translate, the page exists at "/zh/2015/08/18/multiple-return-statements-in-oop.html" (667 words) No need to translate, the page exists at "/ru/2015/08/18/multiple-return-statements-in-oop.html" (899 words) No need to translate, the page exists at "/zh/2015/11/03/chatbot-better-than-ui-for-microservice.html" (704 words) No need to translate, the page exists at "/ru/2015/11/03/chatbot-better-than-ui-for-microservice.html" (2323 words) No need to translate, the page exists at "/zh/2020/12/29/metric-for-emotions.html" (621 words) No need to translate, the page exists at "/ru/2020/12/29/metric-for-emotions.html" (1390 words) No need to translate, the page exists at "/zh/2014/05/05/oop-alternative-to-utility-classes.html" (815 words) No need to translate, the page exists at "/ru/2014/05/05/oop-alternative-to-utility-classes.html" (1290 words) No need to translate, the page exists at "/zh/2017/08/08/raii-in-java.html" (667 words) No need to translate, the page exists at "/ru/2017/08/08/raii-in-java.html" (1081 words) No need to translate, the page exists at "/zh/2014/11/07/how-immutability-helps.html" (754 words) No need to translate, the page exists at "/ru/2014/11/07/how-immutability-helps.html" (2080 words) No need to translate, the page exists at "/zh/2014/10/23/paired-brackets-notation.html" (611 words) No need to translate, the page exists at "/ru/2014/10/23/paired-brackets-notation.html" (791 words) No need to translate, the page exists at "/zh/2018/05/22/default-arguments-against-null.html" (679 words) No need to translate, the page exists at "/ru/2018/05/22/default-arguments-against-null.html" (847 words) No need to translate, the page exists at "/en/2016/12/19/privatbank-nationalization.html" (1255 words) No need to translate, the page exists at "/zh/2016/12/19/privatbank-nationalization.html" (835 words) No need to translate, the page exists at "/zh/2023/08/29/ai-for-software-engineering.html" (606 words) No need to translate, the page exists at "/ru/2023/08/29/ai-for-software-engineering.html" (1461 words) No need to translate, the page exists at "/zh/2014/10/05/ten-hosted-continuous-integration-services.html" (911 words) No need to translate, the page exists at "/ru/2014/10/05/ten-hosted-continuous-integration-services.html" (1745 words) No need to translate, the page exists at "/zh/2019/04/23/elegant-readme.html" (644 words) No need to translate, the page exists at "/ru/2019/04/23/elegant-readme.html" (1855 words) No need to translate, the page exists at "/zh/2018/11/20/journalism.html" (624 words) No need to translate, the page exists at "/ru/2018/11/20/journalism.html" (1048 words) No need to translate, the page exists at "/en/2018/03/25/why-gas.html" (1305 words) No need to translate, the page exists at "/zh/2018/03/25/why-gas.html" (851 words) No need to translate, the page exists at "/en/2016/12/01/what-is-wrong-about-guns.html" (1441 words) No need to translate, the page exists at "/zh/2016/12/01/what-is-wrong-about-guns.html" (828 words) No need to translate, the page exists at "/zh/2018/01/23/sociotech-skills.html" (640 words) No need to translate, the page exists at "/ru/2018/01/23/sociotech-skills.html" (1171 words) No need to translate, the page exists at "/zh/2015/06/02/how-to-estimate-software-cost.html" (614 words) No need to translate, the page exists at "/ru/2015/06/02/how-to-estimate-software-cost.html" (1478 words) No need to translate, the page exists at "/zh/2014/07/31/travis-and-rultor.html" (749 words) No need to translate, the page exists at "/ru/2014/07/31/travis-and-rultor.html" (1392 words) No need to translate, the page exists at "/zh/2018/03/06/speed-vs-quality.html" (652 words) No need to translate, the page exists at "/ru/2018/03/06/speed-vs-quality.html" (1214 words) No need to translate, the page exists at "/zh/2015/06/08/deadly-sins-software-project.html" (634 words) No need to translate, the page exists at "/ru/2015/06/08/deadly-sins-software-project.html" (1941 words) No need to translate, the page exists at "/zh/2022/03/29/bugs-occam-razor.html" (623 words) No need to translate, the page exists at "/ru/2022/03/29/bugs-occam-razor.html" (906 words) No need to translate, the page exists at "/zh/2021/02/10/dataization.html" (749 words) No need to translate, the page exists at "/ru/2021/02/10/dataization.html" (1250 words) No need to translate, the page exists at "/zh/2015/03/29/rultor-with-appveyor.html" (704 words) No need to translate, the page exists at "/ru/2015/03/29/rultor-with-appveyor.html" (930 words) No need to translate, the page exists at "/zh/2014/06/09/objects-should-be-immutable.html" (673 words) No need to translate, the page exists at "/ru/2014/06/09/objects-should-be-immutable.html" (1582 words) No need to translate, the page exists at "/zh/2019/06/11/where-do-you-seek-help.html" (641 words) No need to translate, the page exists at "/ru/2019/06/11/where-do-you-seek-help.html" (1225 words) No need to translate, the page exists at "/zh/2017/03/28/solid.html" (656 words) No need to translate, the page exists at "/ru/2017/03/28/solid.html" (1271 words) No need to translate, the page exists at "/en/2016/12/15/onishenko-our-hero.html" (1022 words) No need to translate, the page exists at "/zh/2016/12/15/onishenko-our-hero.html" (811 words) No need to translate, the page exists at "/zh/2014/08/03/cacheable-java-annotation.html" (650 words) No need to translate, the page exists at "/ru/2014/08/03/cacheable-java-annotation.html" (882 words) No need to translate, the page exists at "/zh/2017/05/30/why-contribute-to-open-source.html" (620 words) No need to translate, the page exists at "/ru/2017/05/30/why-contribute-to-open-source.html" (1005 words) No need to translate, the page exists at "/zh/2024/04/01/ping-me-please.html" (587 words) No need to translate, the page exists at "/ru/2024/04/01/ping-me-please.html" (819 words) No need to translate, the page exists at "/zh/2014/04/06/phandom.html" (665 words) No need to translate, the page exists at "/ru/2014/04/06/phandom.html" (1005 words) No need to translate, the page exists at "/zh/2016/07/06/data-transfer-object.html" (639 words) No need to translate, the page exists at "/ru/2016/07/06/data-transfer-object.html" (1004 words) No need to translate, the page exists at "/zh/2014/06/24/jekyll-github-deploy.html" (650 words) No need to translate, the page exists at "/ru/2014/06/24/jekyll-github-deploy.html" (769 words) No need to translate, the page exists at "/zh/2014/12/22/immutable-objects-not-dumb.html" (643 words) No need to translate, the page exists at "/ru/2014/12/22/immutable-objects-not-dumb.html" (1155 words) No need to translate, the page exists at "/zh/2015/05/04/how-to-protect-business-idea.html" (619 words) No need to translate, the page exists at "/ru/2015/05/04/how-to-protect-business-idea.html" (1923 words) No need to translate, the page exists at "/zh/2020/11/15/award-2021.html" (618 words) No need to translate, the page exists at "/ru/2020/11/15/award-2021.html" (886 words) No need to translate, the page exists at "/zh/2016/05/03/test-methods-must-share-nothing.html" (654 words) No need to translate, the page exists at "/ru/2016/05/03/test-methods-must-share-nothing.html" (1225 words) No need to translate, the page exists at "/zh/2017/07/25/my-favorite-websites.html" (1289 words) No need to translate, the page exists at "/ru/2017/07/25/my-favorite-websites.html" (1324 words) No need to translate, the page exists at "/en/2017/01/05/justice-against-corruption.html" (1268 words) No need to translate, the page exists at "/zh/2017/01/05/justice-against-corruption.html" (822 words) No need to translate, the page exists at "/zh/2016/08/10/if-then-else-code-smell.html" (637 words) No need to translate, the page exists at "/ru/2016/08/10/if-then-else-code-smell.html" (869 words) No need to translate, the page exists at "/zh/2024/12/15/open-source-beginner-advice.html" (874 words) No need to translate, the page exists at "/ru/2024/12/15/open-source-beginner-advice.html" (1720 words) No need to translate, the page exists at "/zh/2021/12/01/teaching.html" (680 words) No need to translate, the page exists at "/ru/2021/12/01/teaching.html" (1867 words) No need to translate, the page exists at "/zh/2019/03/19/logging-without-static-logger.html" (651 words) No need to translate, the page exists at "/ru/2019/03/19/logging-without-static-logger.html" (1134 words) No need to translate, the page exists at "/zh/2014/05/23/avoid-java-static-logger.html" (661 words) No need to translate, the page exists at "/ru/2014/05/23/avoid-java-static-logger.html" (795 words) No need to translate, the page exists at "/zh/2023/08/15/decision-making-process.html" (638 words) No need to translate, the page exists at "/ru/2023/08/15/decision-making-process.html" (1251 words) No need to translate, the page exists at "/zh/2016/07/14/who-is-object.html" (644 words) No need to translate, the page exists at "/ru/2016/07/14/who-is-object.html" (1394 words) No need to translate, the page exists at "/zh/2019/09/03/injection-of-guilt.html" (626 words) No need to translate, the page exists at "/ru/2019/09/03/injection-of-guilt.html" (1594 words) No need to translate, the page exists at "/zh/2017/11/21/trust-pay-lose.html" (633 words) No need to translate, the page exists at "/ru/2017/11/21/trust-pay-lose.html" (996 words) No need to translate, the page exists at "/zh/2018/10/01/remote-work.html" (861 words) No need to translate, the page exists at "/ru/2018/10/01/remote-work.html" (1105 words) No need to translate, the page exists at "/zh/2015/05/13/two-instruments-of-software-architect.html" (605 words) No need to translate, the page exists at "/ru/2015/05/13/two-instruments-of-software-architect.html" (1096 words) No need to translate, the page exists at "/zh/2014/09/11/deployment-script-vs-rultor.html" (662 words) No need to translate, the page exists at "/ru/2014/09/11/deployment-script-vs-rultor.html" (1799 words) No need to translate, the page exists at "/zh/2017/04/18/no-help-via-email.html" (615 words) No need to translate, the page exists at "/ru/2017/04/18/no-help-via-email.html" (852 words) No need to translate, the page exists at "/zh/2016/05/24/who-is-project-manager.html" (599 words) No need to translate, the page exists at "/ru/2016/05/24/who-is-project-manager.html" (1412 words) No need to translate, the page exists at "/zh/2015/01/08/morning-standup-meetings.html" (646 words) No need to translate, the page exists at "/ru/2015/01/08/morning-standup-meetings.html" (2408 words) No need to translate, the page exists at "/zh/2017/05/23/unlimited-number-of-bugs.html" (644 words) No need to translate, the page exists at "/ru/2017/05/23/unlimited-number-of-bugs.html" (993 words) No need to translate, the page exists at "/zh/2015/01/12/compound-name-is-code-smell.html" (679 words) No need to translate, the page exists at "/ru/2015/01/12/compound-name-is-code-smell.html" (984 words) No need to translate, the page exists at "/zh/2017/10/10/streams-vs-decorators.html" (717 words) No need to translate, the page exists at "/ru/2017/10/10/streams-vs-decorators.html" (1372 words) No need to translate, the page exists at "/zh/2017/02/07/private-method-is-new-class.html" (669 words) No need to translate, the page exists at "/ru/2017/02/07/private-method-is-new-class.html" (899 words) No need to translate, the page exists at "/zh/2020/05/05/open-source-arms-race.html" (676 words) No need to translate, the page exists at "/ru/2020/05/05/open-source-arms-race.html" (1349 words) No need to translate, the page exists at "/zh/2019/01/15/what-if-architect-is-wrong.html" (631 words) No need to translate, the page exists at "/ru/2019/01/15/what-if-architect-is-wrong.html" (1357 words) No need to translate, the page exists at "/en/2019/07/31/moscow-protests.html" (1732 words) No need to translate, the page exists at "/zh/2019/07/31/moscow-protests.html" (845 words) No need to translate, the page exists at "/zh/2017/11/28/microtasking.html" (621 words) No need to translate, the page exists at "/ru/2017/11/28/microtasking.html" (2339 words) No need to translate, the page exists at "/zh/2016/06/21/how-to-hire-programmer.html" (613 words) No need to translate, the page exists at "/ru/2016/06/21/how-to-hire-programmer.html" (1518 words) No need to translate, the page exists at "/zh/2016/01/26/defensive-programming.html" (642 words) No need to translate, the page exists at "/ru/2016/01/26/defensive-programming.html" (969 words) No need to translate, the page exists at "/zh/2015/06/22/valid-reasons-to-reject-bug-fix.html" (660 words) No need to translate, the page exists at "/ru/2015/06/22/valid-reasons-to-reject-bug-fix.html" (1323 words) No need to translate, the page exists at "/zh/2018/10/30/mailanes.html" (654 words) No need to translate, the page exists at "/ru/2018/10/30/mailanes.html" (1150 words) No need to translate, the page exists at "/zh/2018/06/26/are-you-an-architect.html" (673 words) No need to translate, the page exists at "/ru/2018/06/26/are-you-an-architect.html" (2105 words) No need to translate, the page exists at "/zh/2014/09/16/getters-and-setters-are-evil.html" (621 words) No need to translate, the page exists at "/ru/2014/09/16/getters-and-setters-are-evil.html" (1528 words) No need to translate, the page exists at "/zh/2015/05/25/unit-test-scaffolding.html" (657 words) No need to translate, the page exists at "/ru/2015/05/25/unit-test-scaffolding.html" (1070 words) No need to translate, the page exists at "/zh/2023/11/28/research-questionnaire.html" (622 words) No need to translate, the page exists at "/ru/2023/11/28/research-questionnaire.html" (1063 words) No need to translate, the page exists at "/zh/2018/11/13/bigotry.html" (667 words) No need to translate, the page exists at "/ru/2018/11/13/bigotry.html" (1394 words) No need to translate, the page exists at "/zh/2015/06/18/good-programmers-bug-free.html" (635 words) No need to translate, the page exists at "/ru/2015/06/18/good-programmers-bug-free.html" (1066 words) No need to translate, the page exists at "/zh/2020/06/23/individual-performance-metrics.html" (700 words) No need to translate, the page exists at "/ru/2020/06/23/individual-performance-metrics.html" (1575 words) No need to translate, the page exists at "/zh/2016/03/28/unspoken-secrets-of-elevator-pitch.html" (637 words) No need to translate, the page exists at "/ru/2016/03/28/unspoken-secrets-of-elevator-pitch.html" (1427 words) No need to translate, the page exists at "/en/2016/12/26/what-would-you-ask-putin.html" (1508 words) No need to translate, the page exists at "/zh/2016/12/26/what-would-you-ask-putin.html" (882 words) No need to translate, the page exists at "/zh/2016/07/26/active-record.html" (641 words) No need to translate, the page exists at "/ru/2016/07/26/active-record.html" (975 words) No need to translate, the page exists at "/zh/2025/04/12/four-builds.html" (953 words) No need to translate, the page exists at "/ru/2025/04/12/four-builds.html" (1759 words) No need to translate, the page exists at "/zh/2018/03/27/how-to-test-thread-safety.html" (705 words) No need to translate, the page exists at "/ru/2018/03/27/how-to-test-thread-safety.html" (1231 words) No need to translate, the page exists at "/zh/2019/03/30/survival-guide.html" (902 words) No need to translate, the page exists at "/ru/2019/03/30/survival-guide.html" (1527 words) No need to translate, the page exists at "/zh/2015/05/07/ctors-must-be-code-free.html" (658 words) No need to translate, the page exists at "/ru/2015/05/07/ctors-must-be-code-free.html" (1179 words) No need to translate, the page exists at "/zh/2022/08/30/dont-group-exception-catchers.html" (672 words) No need to translate, the page exists at "/ru/2022/08/30/dont-group-exception-catchers.html" (906 words) No need to translate, the page exists at "/zh/2018/01/09/micro-budgeting.html" (632 words) No need to translate, the page exists at "/ru/2018/01/09/micro-budgeting.html" (1343 words) No need to translate, the page exists at "/zh/2014/06/26/sass-in-java-webapp.html" (653 words) No need to translate, the page exists at "/ru/2014/06/26/sass-in-java-webapp.html" (714 words) No need to translate, the page exists at "/zh/2014/04/15/github-guidelines.html" (617 words) No need to translate, the page exists at "/ru/2014/04/15/github-guidelines.html" (1370 words) No need to translate, the page exists at "/zh/2015/03/02/team-morale-myths-and-reality.html" (608 words) No need to translate, the page exists at "/ru/2015/03/02/team-morale-myths-and-reality.html" (1308 words) No need to translate, the page exists at "/zh/2017/06/06/gluten-free-management.html" (640 words) No need to translate, the page exists at "/ru/2017/06/06/gluten-free-management.html" (1364 words) No need to translate, the page exists at "/zh/2016/08/15/what-is-wrong-object-oriented-programming.html" (1347 words) No need to translate, the page exists at "/ru/2016/08/15/what-is-wrong-object-oriented-programming.html" (1437 words) No need to translate, the page exists at "/en/2017/01/16/ukrainian-startups.html" (1583 words) No need to translate, the page exists at "/zh/2017/01/16/ukrainian-startups.html" (822 words) No need to translate, the page exists at "/en/2017/01/02/ukraine-budget-2017.html" (1242 words) No need to translate, the page exists at "/zh/2017/01/02/ukraine-budget-2017.html" (836 words) No need to translate, the page exists at "/zh/2017/08/01/how-to-manage-a-manager.html" (622 words) No need to translate, the page exists at "/ru/2017/08/01/how-to-manage-a-manager.html" (1516 words) No need to translate, the page exists at "/en/2016/12/05/who-needs-war.html" (1428 words) No need to translate, the page exists at "/zh/2016/12/05/who-needs-war.html" (833 words) The page is absent, need to translate "/zh/2025/04/19/dont-merge-into-broken-master.html" Current OpenAI API Base URL: "https://api.openai.com/" 31mChatGPT failed to answer to "Please, translate the following two Markdown paragraphs from English to Chinese, don't translate technical terms and proper nouns:\n\nWhat do you think is the most typical reason for delays in pull request reviews? A [study](https://doi.org/10.1145/3183519.3183525) at Google confirms that it's the size---the more changes, the slower the review. Another [study](https://doi.org/10.1109/ACCESS.2020.3002663) shows that it's the emotional tone---anger and dominance expressed in comments are linked to a lower likelihood of a pull request being merged. A more recent [study](https://doi.org/10.1016/j.jss.2020.110806) finds that it's the author's reputation: we merge PRs faster if we know the author. All of the above is true. In our projects, though, what often slows down PR reviews is the message: **\"CI failures are not related to my changes!\"**\n\nHere's how it happens: You fork a repo. You make changes to fix a bug or introduce a new feature. You commit them and push. You submit a pull request. You realize that some GitHub CI jobs fail. You read the logs. You don't see any relevance between the error messages and your edits. You post a comment: \"CI failures are not related to my changes!\" You expect us to merge your pull request."(attempt no.1): "the server responded with status 429" 0m 31mChatGPT failed to answer to "Please, translate the following two Markdown paragraphs from English to Chinese, don't translate technical terms and proper nouns:\n\nWhat do you think is the most typical reason for delays in pull request reviews? A [study](https://doi.org/10.1145/3183519.3183525) at Google confirms that it's the size---the more changes, the slower the review. Another [study](https://doi.org/10.1109/ACCESS.2020.3002663) shows that it's the emotional tone---anger and dominance expressed in comments are linked to a lower likelihood of a pull request being merged. A more recent [study](https://doi.org/10.1016/j.jss.2020.110806) finds that it's the author's reputation: we merge PRs faster if we know the author. All of the above is true. In our projects, though, what often slows down PR reviews is the message: **\"CI failures are not related to my changes!\"**\n\nHere's how it happens: You fork a repo. You make changes to fix a bug or introduce a new feature. You commit them and push. You submit a pull request. You realize that some GitHub CI jobs fail. You read the logs. You don't see any relevance between the error messages and your edits. You post a comment: \"CI failures are not related to my changes!\" You expect us to merge your pull request."(attempt no.2): "the server responded with status 429" 0m 31mChatGPT failed to answer to "Please, translate the following two Markdown paragraphs from English to Chinese, don't translate technical terms and proper nouns:\n\nWhat do you think is the most typical reason for delays in pull request reviews? A [study](https://doi.org/10.1145/3183519.3183525) at Google confirms that it's the size---the more changes, the slower the review. Another [study](https://doi.org/10.1109/ACCESS.2020.3002663) shows that it's the emotional tone---anger and dominance expressed in comments are linked to a lower likelihood of a pull request being merged. A more recent [study](https://doi.org/10.1016/j.jss.2020.110806) finds that it's the author's reputation: we merge PRs faster if we know the author. All of the above is true. In our projects, though, what often slows down PR reviews is the message: **\"CI failures are not related to my changes!\"**\n\nHere's how it happens: You fork a repo. You make changes to fix a bug or introduce a new feature. You commit them and push. You submit a pull request. You realize that some GitHub CI jobs fail. You read the logs. You don't see any relevance between the error messages and your edits. You post a comment: \"CI failures are not related to my changes!\" You expect us to merge your pull request."(attempt no.3): "the server responded with status 429" 0m 31m ------------------------------------------------0m 31m Jekyll 4.4.1 Please append `--trace` to the `build` command 0m 31m for any additional information or backtrace. 0m 31m ------------------------------------------------0m /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/response/raise_error.rb:30:in `on_complete': 1mthe server responded with status 429 (1;4mFaraday::TooManyRequestsErrorm1m)m from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/middleware.rb:57:in `block in call' from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/response.rb:42:in `on_complete' from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/middleware.rb:56:in `call' from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/rack_builder.rb:153:in `build_response' from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/connection.rb:452:in `run_request' from /usr/local/rvm/gems/ruby-3.2.2/gems/faraday-2.13.0/lib/faraday/connection.rb:280:in `post' from /usr/local/rvm/gems/ruby-3.2.2/gems/ruby-openai-8.1.0/lib/openai/http.rb:22:in `json_post' from /usr/local/rvm/gems/ruby-3.2.2/gems/ruby-openai-8.1.0/lib/openai/client.rb:24:in `chat' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/chatgpt.rb:122:in `translate_par' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/chatgpt.rb:109:in `translate_pars' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/chatgpt.rb:100:in `translate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:108:in `block (2 levels) in generate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:52:in `each' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:52:in `block in generate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:49:in `each' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:49:in `each_with_index' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-chatgpt-translate-0.1.0/lib/jekyll-chatgpt-translate/generator.rb:49:in `generate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/site.rb:193:in `block in generate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/site.rb:191:in `each' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/site.rb:191:in `generate' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/site.rb:79:in `process' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/command.rb:28:in `process_site' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/commands/build.rb:65:in `build' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/commands/build.rb:36:in `process' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/command.rb:91:in `each' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program' from /usr/local/rvm/gems/ruby-3.2.2/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute' from /usr/local/rvm/gems/ruby-3.2.2/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each' from /usr/local/rvm/gems/ruby-3.2.2/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute' from /usr/local/rvm/gems/ruby-3.2.2/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go' from /usr/local/rvm/gems/ruby-3.2.2/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program' from /usr/local/rvm/gems/ruby-3.2.2/gems/jekyll-4.4.1/exe/jekyll:15:in `<top (required)>' from /usr/local/rvm/gems/ruby-3.2.2/bin/jekyll:25:in `load' from /usr/local/rvm/gems/ruby-3.2.2/bin/jekyll:25:in `<main>' from /usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `eval' from /usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `<main>' + rm -rf /tmp/jgd-1w9 /usr/local/rvm/gems/ruby-3.2.2/gems/jgd-1.14.0/bin/jgd:55:in `<top (required)>': 1mdeployment failed, see log above (1;4mRuntimeErrorm1m)m from /usr/local/rvm/gems/ruby-3.2.2/bin/jgd:25:in `load' from /usr/local/rvm/gems/ruby-3.2.2/bin/jgd:25:in `<main>' from /usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `eval' from /usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `<main>' container e1909b561c749493699a8aa5830030ed7ce80eacce3187cea113c27e0667d40a is dead Sun Apr 20 19:27:25 UTC 2025