/img/avatar-zima.png

Totaku

Keep your expectations low and you will never be disappointed

Установка Docker и Docker-compose на Ubuntu 24.04

В этом году я не завтыкал и все успел написать очень даже во время. Все еще нет смысла рассказывать, что такое Docker раз вы читаете это. В этом посте я расскажу как быстро и просто установить Docker и Docker-compose на Ubuntu 24.04. Установка Docker В репозитории Ubuntu может быть не самая последняя версия Docker. По этому мы будем устанавливать его из официального репозитория Docker. Сначала обновите существующий список пакетов: 1 sudo apt update Затем установите несколько обязательных пакетов, которые позволяют apt использовать пакеты по HTTPS: 1 sudo apt install apt-transport-https ca-certificates curl software-properties-common Добавляем ключ GPG официального репозитория Docker в вашу систему: 1 2 3 sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Добавляем репозиторий Docker: 1 2 3 4 echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Обновляем список пакетов: 1 sudo apt update Теперь надо убедится, что все нормально и установка будет из репозитория Docker, а не Ubuntu: 1 apt-cache policy docker-ce На выходе видим плюс минус такую картину: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 docker-ce: Installed: (none) Candidate: 5:26.1.1-1~ubuntu.24.04~noble Version table: 5:26.1.1-1~ubuntu.24.04~noble 500 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages 5:26.1.0-1~ubuntu.24.04~noble 500 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages 5:26.0.2-1~ubuntu.24.04~noble 500 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages 5:26.0.1-1~ubuntu.24.04~noble 500 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages 5:26.0.0-1~ubuntu.24.04~noble 500 500 https://download.docker.com/linux/ubuntu noble/stable amd64 Packages Если все так, то прекрасно! Установится откуда надо и все будет хорошо. Ну и финальный штрих, установим Docker: 1 sudo apt install docker-ce Проверяем работает ли Docker Для начала узнаел, что там с Docker’ом: 1 sudo systemctl status docker На выходе: 1 2 3 4 5 6 7 8 9 10 11 ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-04-01 21:30:25 UTC; 22s ago TriggeredBy: ● docker.

Как встроить Youtube в сайт на Nuxt используя Markdown

Встраивать Youtube в блог с Nuxt еще никогда не было так просто. Подключите к нему пакет lite-youtube-embed, создайте плагин и компонент Nuxt, и все. Дальше вы сможете использовать этот компонент во всех своих Markdown файлах. 1. Установливаем lite-youtube-embed Сначала нам нужно установить npm-пакет lite-youtube-embed, созданный членом команды Google Chrome и разработчиком фронтенда Полом Айришем. Этот пакет предназначен для вставки видео с Youtube с улучшенной производительностью по сравнению с " обычным" способом. Я не хочу углубляться в проблемы производительности при встраивании Youtube-плееров в ваш блог. Я хочу показать вам, как вы можете внедрить Youtube-плеер в ваши Markdown-файлы с использованием Nuxt. Выполняем в папке с проектом следующую команду. 1 yarn add lite-youtube-embed или 1 npm i lite-youtube-embed Подключите CSS-файл к свойству css в файле nuxt.config.js. 1 2 3 4 5 export default { css: [ 'node_modules/lite-youtube-embed/src/lite-yt-embed.css' ] } 2. Создаем плагин Создайте файл плагина youtube.client.js в папке plugins. Убедитесь, что в его названии присутствует .client.js, чтобы Nuxt загружал его только в браузере. Записываем в него следующее. 1 import 'lite-youtube-embed' Теперь вам нужно зарегистрировать этот плагин в файле nuxt.config.js, как показано ниже. 1 2 3 export default { plugins: ['@/plugins/youtube.client.js'] } 3. Создаем компонент Чтобы использовать компонент <lite-youtube> в файлах Markdown, необходимо создать Vue компонент для его отображения. В ином случае вы не сможете его использовать на странице. Я создал компонент Youtube.vue в папке components. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <template> <div class="youtube"> <lite-youtube :videoid="id" :playlabel="label" /> </div> </template> <script> export default { props: { id: String, label: String, }, fetchOnServer: false, } </script> Создав данный компонент, вы можете начать использовать его в своих Markdown-файлах. 4. Используем наш компонент Возникает вопрос, как использовать его в ваших Markdown-файлах? Добавьте его в файлы, как вы обычно делаете это с компонентами Vue. 1 <youtube id="5SR_NUdg7t8"></youtube> Nuxt волшебным образом превратит весь ваш Markdown-файл в HTML-страницу, которую вы сможете увидеть в браузере.

Установка Docker и Docker-compose на Ubuntu 22.04

Совершенно в этот раз завтыкал и пропустил момент, но традиции нарушать нельзя. Все еще нет смысла рассказывать, что такое Docker раз вы читаете это. В этом посте я расскажу как быстро и просто установить Docker и Docker-compose на Ubuntu 22.04. Установка Docker В репозитории Ubuntu может быть не самая последняя версия Docker. По этому мы будем устанавливать его из официального репозитория Docker. Сначала обновите существующий список пакетов: 1 sudo apt update Затем установите несколько обязательных пакетов, которые позволяют apt использовать пакеты по HTTPS: 1 sudo apt install apt-transport-https ca-certificates curl software-properties-common Добавляем ключ GPG официального репозитория Docker в вашу систему: 1 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg Добавляем репозиторий Docker: 1 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Обновляем список пакетов: 1 sudo apt update Теперь надо убедится, что все нормально и установка будет из репозитория Docker, а не Ubuntu: 1 apt-cache policy docker-ce На выходе видим плюс минус такую картину: 1 2 3 4 5 6 7 8 docker-ce: Installed: (none) Candidate: 5:20.10.14~3-0~ubuntu-jammy Version table: 5:20.10.14~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages 5:20.10.13~3-0~ubuntu-jammy 500 500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages Если все так, то прекрасно! Установится откуда надо и все будет хорошо. Ну и финальный штрих, установим Docker: 1 sudo apt install docker-ce Проверяем работает ли Docker Для начала узнаел, что там с Docker’ом: 1 sudo systemctl status docker На выходе: 1 2 3 4 5 6 7 8 9 10 11 ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-04-01 21:30:25 UTC; 22s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 7854 (dockerd) Tasks: 7 Memory: 38.3M CPU: 340ms CGroup: /system.slice/docker.service └─7854 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Отлично! Все завелось и прекрасно работает. Давайте попробуем запустить какой нибудь контейнер:

Синхронизация локальных и рабочих сайтов на Drupal 8/9

Не так давно мне пришлось вернуться к друпалу. До сих пор помню, что это один из самых простых и быстрых способов накидать прототип сайта. И вот встал у меня вопрос как же синхронизировать локальную и рабочую версию сайта. Поковырявшись в памяти вспомнил, что у друпала появилась своя родная штука по синхронизации. Там, же все просто. На доноре выполняем drush config:export или drush cex, копируем файлы на сервер и там выполняем drush config:import или drush cim. И все должно работать. Но хер там не ночевал! Оно начинает выдавать ошибку, говорит uuid разный. Ну думаю, ладно может дело в драше. Пробую через веб морду. Таже ошибка. Решил погуглить. И вот на drupal.ru встречаю самый сука вредный совет из того, что мог найти. Говорится там примерно следующее: «А чтоб не было этой ошибки вы это экспортируйте/импортируйте базу данных». Причем это признано лучшим ответом. Конечно так можно сделать, но лучше так делать на самом старте, когда локальная копия еще пуста и не содержит всяких тестовых данных. Ну а иначе вам на проде придется это удалить. Покопавшись еще чуть чуть, я нашел лучшее решение. Раз проблема в том, что на сайтах разные uuid надо их сделать одинаковыми. Для начала на любом из сайтов выполняем: 1 drush cget system.site uuid Увидим в ответ примерно следующее: 1 'system.site:uuid': 03151e31-4801-412e-97b7-354d6sd1033f Это uuid нашего сайта, теперь на втором сайте устанавливаем точно такой же: 1 drush cset system.site uuid 03151e31-4801-412e-97b7-354d6sd1033f ВСЕ! Теперь все будет синхронизироваться без каких либо нареканий. Может конечно еще возникнуть проблема с «Ярлыками», но тогда вы просто удалите их и там и там. Photo by Joshua Aragon on Unsplash.

Делаем автоматическое резервное копирование сайта на Drupal 8/9

У Drupal разработчиков есть несколько путей для резервного копирования сайта. В этой статье я расскажу вам про два способа. Первый с использованием модуля Backup and Migrate. А для второго способа нам понадобится: терминал, drush и cron. Способ первый, Backup and Migrate С помощью этого модуля можно создавать резервные копии как базы данных, так и файлов. Можно и все целиком копировать. Модуль имеет функцию шифрования, но для этого вам нужно поставить дополнительную PHP библиотеку Defuse PHP encryption. 1 composer require defuse/php-encryption Погнали Устанавливаем модуль Backup and Migrate Создайте каталог личными файлами (private directory) и назначьте ему права на запись (аналогично тому, что мы даем папке с файлами) Задайте путь к личному каталогу в файле settings.php, чтобы модуль мог использовать его для хранения резервных копий. UI модуля Backup and Migrate После установки модуля перейдите в Администрирование -> Конфигурация -> Разработка -> Backup and Migrate. Вы увидите 5 вкладок: Backup — здесь вы сможете сделать быстрое резервное копирование. После того, как вы нажмете «Backup now», вы сможете увидеть его на вкладке «Saved Backups». Restore — тут вы сможете восстановить свои данные. Saved Backups — тут будет список всего что вы набэкапили. Schedule — расписание. Именно то, что нам нужно. Тут можно будет настроить бэкапы по расписанию. Settings — есть подозрение, что вы сами догадаетесь, что же тут. Но если вдруг нет, то тут настройки модуля. Расписание Это пожалуй единственная на самом деле нужная нам функция модуля. Тут мы настраиваем планировщик наших бэкапом. Они запускаются автоматический по cron’у. Вы можете добавить сколько угодно задач которые будут выполняться по расписанию. Бэкапить можно базу данных, файлы или весь сайт целиком. Все настроенные задачи по расписанию Настройка бэкапов по расписания Здесь вы можете создать задачи, которые будут выполняться по, пам пам пам, расписанию. Любые созданные вами задачи, вы можете включить или выключить. При создании задачи вы можете:

Docker и Drupal 9 — как быстро их свести

В целом существует много способов скрестить Docker и Drupal. Но большая часть из них либо большая и сложна, либо дурацкая и не самая удобная. Покопавшись какое то время в разных способах я нашел идеальный для себя. Ну вы почитайте, может и вам пригодится. Для локальной разработки, нужно чтоб все разворачиваемое окружения было простым как раз два три. А что может быть проще чем выполнить несколько команд? Да ничего! Вот например для работы с docker4drupal не достаточно просто скачать с гита и начать комфортно работать. Нужно все же открыть как минимум .env и поиграться с ним. А Lando? Да там ваще без поллитра не разберешься. DDEV И вот я наткнулся на DDEV. Просто идеальное решение! Раз два три и все готово. Установка Пожалуй самая сложная часть. Для начала нужно установить Docker. Как установить его в Ubuntu я уже писал, а для всего остального читать тут. Далее нужно установить сам DDEV. Если вы пользуетесь маком, то скорей всего вы уже давно знаете, что такое Homebrew и нафига оно нужно. Если нет, что я ваще не понимаю нахера вы это читаете. Линуксойды читаем тут как установить эту штуку для вас. Ну а виндузятникам разработчики очень рекомендуют устанавливать DDEV через Chocolatey. Установка DDEV на macOS/Linux 1 brew tap drud/ddev && brew install ddev Установка DDEV на Windows 1 choco install ddev Что дальше? А дальше создавайте проекты и работаете с ними. Например можете выполнить ddev -h и посмотреть на список команд. Либо почитать документацию на сайте и посмотреть примеры конфигурации под разные проекты. Установка Drupal И вот то ради чего я все затеял. Нужно выполнить все 6 команд: 1 2 3 4 5 6 mkdir my-drupal9-site cd my-drupal9-site ddev config --project-type=drupal9 --docroot=web --create-docroot ddev start ddev composer create "drupal/recommended-project" ddev launch Если вам нужно установить Drush, выполняем следующую команду: 1 ddev composer require drush/drush Ну, а далее для установки чего-то для Drupal через Composer вам нужно выполнить:

Сверхъестественное все

Наконец-то оно закончилось! Наконец-то! 15 лет, шел сериал. Я смотрел его конечно же не столько, уже не помню на выходе какого сезона я начал смотреть. Но мнение мое не изменилось, закрыть его надо было еще на первом сезоне и это была бы куда лучше концовка, чем то что показали. Финал просто разочаровывает. Ну точнее даже не так. Я не могу принять такую концовку, ну просто не могу. То есть я даже могу принять, что Дин умер как охотник. Что Сэм дожил до старости и помер. Но блин неужели нельзя было убить Дина как то поизящней, а не показать 100500 раз арматуру к которой его прибили? Прощание братьев было ужасное, да моя внутренняя 14 летняя девочка напишет лучше финальный диалог. Сэм перестал быть охотником? Почему? Потому, что всегда хотел и охотился только из-за брата? А че монстры кончились, что ли? Неужели его никто из охотников не вытащил на последнюю охоту? Ну какой то бред. Прощайте братья! В течении 15 сезонов, я не раз менял свое мнение о сериале. Иногда мне хотелось больше, но чаще всего мне это казалось полнейшей ебаниной. Даже моя внутренняя 14 летняя девочка бросила смотреть сериал на 6 сезоне и досматривал я его уже один. Было конечно не привычно, но я справился, я смог. Но случилось страшное! После просмотра спешела, на меня накатила ностальгия. Я вспомнил какими же не плохими были 4 первых сезона. Я теперь чертовски хочу пересмотреть их. Конечно же не буду, но очень хочу. Прощайте братья!

Поиграл в «Судьбу Атлантиды»

Примерно неделю назад, решил дать шанс DLC «Судьба Атлантиды» для Assassin’s Creed Odyssey (про саму игру я обязательно как нибудь возможно нет напишу). Слышал от знакомых, что оно хорошее. Запустил и охренел! На всякий случай напомню. За окном 2020 год. Осень. Питер. Слякоть. Снега нет. Солнца нет. Радости нет. В окружении этого я окунулся в солнечный мир Древней Греции. Перед тем как попасть в Атландиту мне пришлось убить 4 мифических существ! И я прямо пищал от восторга когда убивал их! Медуза Горгона, просто прекрасная. Остальные тоже не подкачали. И вот уже замаячила сама Атлантида! Точнее ее первый эпизод в очень солнечном Элизие. Мне там на столько понравилось, что я зачистил всю карту, открыл все вопроси, получил все ачивки, оторвался по полной! Все хорошее когда, то заканчивается. И вот эпизод 2, в подземном царстве Аида. Началось все прекрасно. Убил Цербера, поговорил с Аидом, встретился с Хароном. А потому случился осенний Питер. Что блять такое??? Я сюда пришел за развлечение, а на Питер я в окно могу посмотреть. Тьфу.

Телеграмм

Не так давно настал тот день разблокировки телеграмма в России. Большенство пользователей толком и не заметили этой блокировки. По этому решил поделиться своими каналами. Дадада, это ваще капец как не актуально, каналов гора и маленькая тележка и у всех есть свой канал с мемчиками. @bunker404 — канал о программировании. Ну то есть это просто сборник того, что читаю я и мои друзья. Мы в одном месте собираем интересные ссылки. В основном конечно все на английском, но на дворе 2020 и если вы все же собираетесь вкатиться в айти, без него ни как. @dotG_pro — тут все просто, Я НАШЁЛ ТОЧКУ G! Если серьезно, в этом канале я пишу про игры, фильмы, сериалы, технологии, игры игры и еще раз игры. Я люблю игры. Очень люблю игры. Очень очень очень люблю игры. На сайте писать об этом не хочу, тут все же больше про айти и вот так вот родился этот канал. @dru_ru — наш ламповый чатик. Да на входе вас может обматерить бот и сказать как вам тут не рады, но чат все равно ламповый. Поговорить можно о чем угодно: погоде, поездках, животных, пэхэпэшниках и прочих инвалидах, ну и конечно если у вас есть вопросы про программирование вам там тоже помогут. На этом пожалуй все.

Yarn или npm: все, что вам нужно знать о них

Yarn это новый менеджер пакетов, совместно созданный Facebook, Google, Exponent и Tilde. Как можно прочитать в официальной документации, его целью является решение целого ряда проблем, с которыми столкнулись разработчики при использовании npm, а именно: установка пакетов не была достаточно быстрой и последовательной; существовали проблемы с безопасностью, так как npm позволяет пакетам запускать код при установке. Но не тревожьтесь. Это не попытка полностью заменить npm. Yarn это новый клиент командной строки, скачивающий модули из реестра npm. В самом реестре ничего не меняется — вы можете скачивать и публиковать модули также, как и прежде. Должен ли теперь каждый срочно перейти на Yarn? Вполне возможно, что вы никогда не сталкивались с этими проблемами, используя npm. В этой статье мы сравним Yarn и npm, чтобы вы могли определиться, что лучше подходит для вас. Yarn или npm: функциональные отличия На первый взгляд Yarn и npm кажутся похожими. Но если заглянуть под капот, мы увидим отличия Yarn. Файл yarn.lock В файле package.json, с помощью которого Yarn и npm отслеживают зависимости, номера версий не указываются точно, вместо этого задается их диапазон. Таким образом, вы можете задать определенную основную или вспомогательную версию, при этом позволяя npm установить последний патч с исправлениями каких-либо багов. В идеальном мире семантического версионирования, релизы с патчами не содержат коренных изменений. Но, к сожалению, в реальности это не всегда верно. Стратегия, выбранная npm может привести к тому, что на двух машинах с идентичными файлами package.json будут установлены различные версии пакетов, что может привести к появлению багов. Чтобы избежать несоответствия версий, установленная версия закрепляется в файле блокировки. При каждом добавлении модуля создается файл yarn.lock. Таким образом вы можете гарантировать, что на другой машине будет установлен тот же самый пакет; при этом у нас сохраняется диапазон допустимых версий в файле package.json. В npm команда npm shrinkwrap так же генерирует файл блокировки, а команда npm install считывает его до чтения package.

25 креативных страниц 404 с крутой анимацией

Если вы откроете страницу, которой нет (больше не существует), вы будете переправлены на страницу 404. Это не плохо, потому что на странице 404 можно творить чудеса и красоту. Ниже примеры которыми вы можете либо вдохновляться, либо использовать на своем сайте. Responsive 404 Stranger things Автор: ARiyou Jahan Используется: HTML, CSS (SCSS) No Vacancy 404 Автор: Riley Shaw Используется: Slim, Sass, CoffeScript 404 Kittens Автор: nclud team Используется: HTML, CSS (SCSS), JS Glitched out Автор: ZonFire99 Используется: HTML, CSS, JS Fargo 404 Автор: Nathaniel Watson Используется: Pug, CSS (SCSS), JS 404 No signal Автор: Adem ilter Используется: HTML, CSS, JS Glitchy 404 Page Автор: Kay Pooma Используется: HTML, CSS Bluescreen – 404 Page Автор: Angela Galliat Используется: HTML, CSS 404 Space Автор: Keith Используется: HTML, CSS (SCSS), JS Error page – #Project 4 Автор: Jake Используется: HTML, CSS (SCSS), JS 404 Автор: Metty Используется: HTML, CSS, JS Space 404 Автор: Ethan Используется: HTML, CSS (SCSS), JS 404 Error Page Автор: anhat.dev Используется: HTML, CSS, JS Daily UI #008 – 404 Page Автор: Rafaela Lucas Используется: HTML, CSS (SCSS), JS Lost in Space (ERRORS) (not responsive) Автор: Radu Используется: HTML, CSS (SCSS) 404 Page Not Found Автор: João Sousa Используется: HTML, PostCSS 404 Error Page See the Pen 404 Error Page by miranda (@mirandalwashburn) on CodePen. Автор: miranda Используется: HTML, CSS 404 Error page Автор: Abolfazl Arab Используется: HTML, CSS 404 Makes bear sad 🐻😭 Автор: Jhey Используется: Pug, Stylus, Babel 404-magnifying-glass-svg-animation-css Автор: Maelle Gomez Используется: HTML, CSS en 404 page Автор: Arman Azizpour Используется: HTML, CSS 404 Venn Diagram Автор: Michael Richins Используется: HTML, CSS (SCSS) Tractor Pull 404 Error Автор: Nick Soltis Используется: HTML, CSS (SCSS) Neon – 404 Page Not Found Автор: Tibix Используется: HTML, CSS 8-bit mario 404 Автор: JFabre Используется: HTML, CSS (SCSS), Babel Оригинал.

Установка Docker и Docker-compose на Ubuntu 20.04

Все еще нет смысла рассказывать, что такое Docker раз вы читаете это. В этом посте я расскажу как быстро и просто установить Docker и Docker-compose на Ubuntu 20.04. Установка Docker В репозитории Ubuntu может быть не самая последняя версия Docker. По этому мы будем устанавливать его из официального репозитория Docker. Сначала обновите существующий список пакетов: 1 sudo apt update Затем установите несколько обязательных пакетов, которые позволяют apt использовать пакеты по HTTPS: 1 sudo apt install apt-transport-https ca-certificates curl software-properties-common Добавляем ключ GPG официального репозитория Docker в вашу систему: 1 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Добавляем репозиторий Docker: 1 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" Обновляем список пакетов: 1 sudo apt update Теперь надо убедится, что все нормально и установка будет из репозитория Docker, а не Ubuntu: 1 apt-cache policy docker-ce На выходе видим плюс минус такую картину: 1 2 3 4 5 6 docker-ce: Installed: (none) Candidate: 5:19.03.9~3-0~ubuntu-focal Version table: 5:19.03.9~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages Если все так, то прекрасно! Установится откуда надо и все будет хорошо. Ну и финальный штрих, установим Docker: 1 sudo apt install docker-ce Проверяем работает ли Docker Для начала узнаел, что там с Docker’ом: 1 sudo systemctl status docker На выходе: 1 2 3 4 5 6 7 8 9 10 ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 24321 (dockerd) Tasks: 8 Memory: 46.4M CGroup: /system.slice/docker.service └─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock Отлично! Все завелось и прекрасно работает. Давайте попробуем запустить какой нибудь контейнер: 1 sudo docker run hello-world Если все хорошо, то на выходе увидим: 1 2 3 4 5 6 7 8 Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 0e03bdcc26d7: Pull complete Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1 Status: Downloaded newer image for hello-world:latest Hello from Docker!

35

Когда-то в прошлом году мне исполнилось 35. Я больше не орал как Джо в Друзьях. Нет, мне просто исполнилось 35. Я просто пригласил друзей в гости. И просто отметил праздник. Понимаете? Просто! Просто исполнилось, просто пригласил, просто отпраздновал. И дело не в «просто», дело в том, что я состарился! Я больше не хочу «бляяяя, как же мне плохо! больше никогда не пью!». Я понимаю смысл этих обещаний. Они до сих пор значат ровным счетом ничего. НО! Сейчас я это понимаю. Сейчас они осознанно значат ничего. Сейчас если я говорю, что я больше не буду пить, я правда не буду пить какое-то время. Какое-то внушительное для меня молодого время или я просто так сказал это в пустоту. И вот тут надо понимать: я понял к этому значению пустота или пизжу на 36 году жизни. Нет, я и раньше понимал, что утреннее «все, больше не пью» - это пиздешь и, скорей всего, я сегодня же вечером неправильно похмелюсь и буду прекрасен (ну а как я себя должен ощущать пьяным?). Но вот тут мне 35, у меня все просто и я понимаю, что утреннее «бляяя! больше не пью» это уже не то, которое было в 34. Это именно то не пью, что за этим и следует, после этого я не пью. Давайте для примера. Последний раз я такое сказал 4 или 5 января, а может 6, хуй упомнишь. Помню, что мы были в Выборге, спорили о джээс и питон, ели бургеры, смотрели на кораблики викингов. Употребил я не критичную для себя долю алкоголя: я мог передвигаться без посредников и достаточно прямо (не ебёт как это было в мире трезвенников, в моем мире коньяка и пива это было так). На следующий день я проснулся и сказал про себя «бляяя, больше не пью». Про себя, ПРО СЕБЯ БЛЯ!!!! Нет, у меня не было похмелья, у меня ваще не было ничего того, что предвещало бы эту фразу в 34.

Drupal 8, nginx и Let's Encrypt

Нашел хорошую заметку о дружбе Drupal 8, nginx и Let’s Encrypt. Сделал для вас перевод. Мой сайт работает на Drupal 8. Я использую nxinx в качестве веб сервера и Let’s Encrypt сертификаты. В этом посте я покажу как выглядит мой nginx конфиг. Мой домен gorannikolovski.com. Все запросы используют https-without-www перенаправление. Это значит, что если вы попробуете перейти по адресам: http://www.gorannikolovski.com https://www.gorannikolovski.com http://www.gorannikolovski.com Вы будете перенаправлены на https://gorannikolovski.com. Вот мой nginx конфиг: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 server { server_name gorannikolovski.com; root /var/www/gorannikolovski.com/web; ## <-- Your only path reference. access_log /var/log/web/gorannikolovski.com_access_log; error_log /var/log/web/gorannikolovski.com_error_log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Very rarely should these ever be accessed outside of your lan location ~* \.(txt|log)$ { allow 192.168.0.0/16; deny all; } location ~ \..*/.*\.php$ { return 403; } location ~ ^/sites/.*/private/ { return 403; } # Allow "Well-Known URIs" as per RFC 5785 location ~* ^/.well-known/ { allow all; } # Block access to "hidden" files and directories whose names begin with a # period.

Diablo III, сказ о том как я в чудо-долину ходил

В лохматые годы я играл в прекрасную Diablo II. В ней был чудо уровень с коровами, на котором можно было налутаться и обогатиться. Когда я начал играть в Diablo III я совершенно про него забыл. Но вчера случилось страшное! Я попал в **Чудо-долину **и вспомнил весь угар уровня с коровами. На этом чудо уровне вас ожидают: цветочки, мишки-обнимашки, толстые единорожки и прочая живность. Кроме этого есть нефиговый такой шанс выбить уникальный легендарный шмот. Как же попасть на этот уровень? Как обычно есть 2 пути: Найти и убить радужного гоблина (именно так я туда попал, см. видео). Собрать все предметы и изготовить у кузнеца Пастуший посох. Акт 1: Найти Берцовую Кость Леорика в камине, что в Замке Леорика. Акт 1: Найти Черный Гриб на одном из этажей Собора. Акт 2: Найти жидкую радугу (спрятана в Таинственном Сундуке Таинственной Пещеры, что в Далгурском оазисе). Акт 2: Купить у Попрыгушки Колокольчик Вирта. Акт 3: Добыть Бормочущий драгоценный камень, выпадающий с уникального монстра Чилтара в Ледяных Пещерах. Акт 4: Выбить с Изуала рецепт: Пастуший посох.

Как сделать бьющееся сердце на чистом CSS

Каждый год 14 февраля многие люди обмениваются открытками, конфетами, подарками или цветами со своей особой «валентинкой». День романтики, который мы называем Днем Святого Валентина, назван в честь христианского мученика и восходит к 5-му веку, но берет свое начало в римском празднике Луперкалия. Пока все хорошо. Но что может сделать программист для своей валентинки? Мой ответ: использовать CSS и быть креативным! Я люблю CSS. Это не очень сложный язык (в большинстве случаев он даже не считается языком программирования). Но с некоторой геометрией, математикой и некоторыми основными правилами CSS, вы можете превратить ваш браузер в основу своего творчества! Итак, начнем. Как бы вы создали сердце с помощью геометрии? Вам просто нужен квадрат и два круга. Правильно? Мы можем нарисовать это одним элементом, благодаря псевдоэлементам ::after и ::before. Говоря о псевдоэлементах, ::after - это псевдоэлемент, который позволяет вставлять контент на страницу из CSS (без необходимости HTML). ::before - то же самое, только он вставляет контент перед любым другим контентом в HTML, а не после. Для обоих псевдоэлементов конечный результат фактически отсутствует в DOM, но он появляется на странице так, как если бы он был. Итак, давайте создадим наше сердце. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 .heart { background-color: red; display: inline-block; height: 50px; margin: 0 10px; position: relative; top: 0; transform: rotate(-45deg); position: absolute; left: 45%; top: 45%; width: 50px; } .heart:before, .heart:after { content: ""; background-color: red; border-radius: 50%; height: 50px; position: absolute; width: 50px; } .heart:before { top: -25px; left: 0; } .heart:after { left: 25px; top: 0; } Вы можете заметить, что мы определяем квадрат и его расположение, используя основной класс heart и два круга с псевдоэлементами ::before и ::after. Круги - это лишь 2 квадрата с border-radius 50%.

Drupal Commerce и Total order

Если вы хоть раз делали сайт на Drupal Commerce, то сталкивались с непереводимой строкой Order Total. В сети достаточно решений этой проблемы, но вот самое простое. Прописываем в template.php следующую конструкцию:

Бойцовский клуб

Если вы читаете это, значит это предупреждение именно для вас. Каждое слово, которое вы прочитаете, бессмысленно — вы просто тратите напрасно очередную частичку своей жизни. Неужели вам больше нечего делать? Неужели ваша жизнь настолько пустая и серая, что вы даже не можете найти, чем занять себя в свободное время? Неужели вы прочитали все, что хотели прочитать? Неужели вы подумали обо всем, о чем хотели подумать? Немедленно отправляйтесь на улицу. Найдите себе особу противоположного пола. Прекратите совершать дурацкие покупки и завязывайте с мастурбацией. Увольтесь с работы. Начните драку. Докажите, что вы живы. Если вы не начнете действовать, то так и проживете свою никчемную жизнь. Я вас предупредил… Тайлер

На игле

Choose life. Choose a job. Choose a career. Choose a family. Choose a fucking big television, Choose washing machines, cars, compact disc players, and electrical tin can openers. Choose good health, low cholesterol and dental insurance. Choose fixed-interest mortgage repayments. Choose a starter home. Choose your friends. Choose leisure wear and matching luggage. Choose a three piece suite on hire purchase in a range of fucking fabrics. Choose DIY and wondering who the fuck you are on a Sunday morning. Choose sitting on that couch watching mind-numbing spirit-crushing game shows, stuffing fucking junk food into your mouth. Choose rotting away at the end of it all, pishing your last in a miserable home, nothing more than an embarrassment to the selfish, fucked-up brats you have spawned to replace yourself. Choose your future. Choose life… But why would I want to do a thing like that? I chose not to choose life: I chose something else. And the reasons? There are no reasons. **Who needs reasons when you’ve got heroin? ** Swanney taught us to respect the National Health Service, for it was the source of much of our gear. We stole drugs, we stole prescriptions, or bought them, sold them, swapped them, forged them, photocopied them, or traded drugs with cancer victims, alcoholics, old-age pensioners, AIDS patients, epileptics, and bored housewives. We took morphine, diamorphine, cyclizine, codeine, temazepam, nitrazepam, phenobarbitone, sodium amytal, dextropropo xyphene, methadone, nalbuphine, pethidine, pentazocine, buprenorphine, dextromoramide, chlormethiazole. The streets are awash with drugs you can have for unhappiness and pain, and we took them all. Fuck it, we would have injected vitamin C if only they’d made it illegal. — You’re not getting any younger, Mark. The world’s changing. Music’s changing. Even drugs are changing. You can’t stay in here all day dreaming about heroin and Ziggy Pop.

Установка Docker и Docker-compose на Ubuntu 18.04

Нет смысла расказывать, что такое Docker раз вы читаете это. В этом посте я расскажу как быстро и просто установить Docker и Docker-compose на Ubuntu 18.04. Существует 2 способа установить Docker: из репозитории Ubuntu, из официального репозитория Docker’а. Расскажу про оба. Инфо Установка Docker и Docker-compose на Ubuntu 20.04 Установка Docker из репозитория Ubuntu Тут все просто. Вооружаемся apt или apt-get и ставим как обычное приложение: 1 2 sudo apt update sudo apt install docker.io Запускаем службу докер и включаем автозапуск при старте системы: 1 2 sudo systemctl start docker sudo systemctl enable docker Проверяем, какая версия докер установилась: 1 docker --version На выходе видим плюс минус такую картину: 1 Docker version 17.12.1-ce, build 7390fc6 Установка Docker из официального репозитория Докер доступен в 2 вариантах: Community Edition (CE) Enterprise Edition (EE) Мы будем ставить Docker Community Edition (CE). Перед началом Если у вас стоит один из следующих пакетов: docker или docker-engine или docker.io, то их надо удалить. Если же докера в системе нет, то скипайте этот шаг. 1 sudo apt-get -y remove docker docker-engine docker.io Подключаем Docker репозиторий Для начала нужно установить все необходимые зависимости: 1 2 sudo apt update sudo apt-get install -y apt-transport-https software-properties-common ca-certificates curl wget Добавляем GPG ключ репов докера в систему: 1 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Теперь добавляем непосредственно сами репозитории. Выбираем одну из подходяших команд и выполняем ее в терминале. На момент написания не работали репы STABLE и EDGE, но вы попробуйте вдруг уже все заработало 1 2 3 4 5 6 7 8 ### STABLE - Ubuntu 18.04 - НЕ РАБОТАЕТ ### echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" | sudo tee /etc/apt/sources.list.d/docker.list ### EDGE - Ubuntu 18.04 - НЕ РАБОТАЕТ ### echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic edge" | sudo tee /etc/apt/sources.list.d/docker.list ### NIGHTLY - Ubuntu 18.04 ### echo "deb [arch=amd64] https://download.