Обновить
Андрій@walkman7read⁠-⁠only

Розробник

Отправить сообщение

Traefik, docker и docker registry

Время на прочтение14 мин
Охват и читатели39K

Под катом вы увидите:

• Использования Traefik в качестве обратного прокси для маршрутизации трафика внутрь docker контейнеров.

• Использование Traefik для автоматического получения Let’s Encrypt сертификатов

• Использование Traefik для разграничения доступа к docker registry при помощи basic auth

• Все перечисленное выше будет настраиваться исключительно внутри docker-compose.yml и не потребует передачи отдельных конфигурационных файлов внутрь контейнеров.

Практически все инструкции, которые есть в интернете, используют несколько дополнительных  файлов с конфигурациями, которые нужно будет скопировать в контейнер при запуске. Мы нашли способ сделать все необходимые настройки исключительно внутри compose файла.

Помимо этого в интернете мало информации на тему использования traefik для контроля доступа к docker registry. Описанную ниже технику можно использовать для контроля доступа к любому приложению, реализующему Rest API.

Читать далее

ВКонтакте снова выкладывает KPHP

Время на прочтение13 мин
Охват и читатели60K
Привет! Сейчас будет дежавю.

Мы снова выложили на GitHub наш PHP-компилятор — KPHP. Он проделал большой путь, и чтобы рассказать о нём, сначала телепортируемся на шесть лет назад.

Поясню для тех, кто не в теме: платформа ВКонтакте изначально была написана на PHP. Со временем нас перестала устраивать производительность, и мы решили ускорить VK. Сделали компилятор — KPHP, который поддерживал узкое подмножество PHP. Это было давно, и с тех пор мы о нём не рассказывали, так как KPHP почти не развивался до 2018-го года.

Но два года назад мы взялись за него, чтобы вдохнуть в эту разработку новую жизнь. Что сделали и какой получили результат — расскажу в этой статье. Она будет не о громком релизе, который можно прямо сейчас внедрять в свои проекты, а о внутренней разработке ВКонтакте, которую мы показываем сообществу и продолжаем развивать. Представлюсь: меня зовут Александр Кирсанов, я руковожу командой Backend-оптимизаций.

А теперь — телепортация.

delorean
Читать дальше →

Лёгкие приложения Linux для старого железа

Время на прочтение7 мин
Охват и читатели45K

Окружение Xfce

Любую систему можно разогнать, есть стандартные способы оптимизации десктопа: минимум софта в автозагрузке, preload, оптимальное зеркало для пакетов, apt-fast вместо apt-get, настройки для оптимизации отдельных приложений и так далее.

Но всё это мелкие оптимизации по сравнению с фундаментальными столпами:

  1. Лёгкий дистрибутив
  2. Легковесное окружение рабочего стола
  3. Быстрый софт

Это в первую очередь актуально для старого железа, хотя в принципе на каждом ПК мы хотим, чтобы система работала максимально эффективно, разве нет? Даже на современном многоядерном CPU больно видеть запуск программы в несколько секунд или задержку интерфейса 100-200 миллисекунд после нажатия по клавиатуре. Всё должно реагировать мгновенно, со скоростью человеческого восприятия. В нативных приложениях нет места лагам, как у веб-интерфейсов.

Поэтому — легковесное окружение и быстрый софт.
Читать дальше →

Понимаем планы PostgreSQL-запросов еще удобнее

Время на прочтение4 мин
Охват и читатели22K
Полгода назад мы представили explain.tensor.ru — публичный сервис для разбора и визуализации планов запросов к PostgreSQL.



За прошедшие месяцы мы сделали про него доклад на PGConf.Russia 2020, подготовили обобщающую статью по ускорению SQL-запросов на основе рекомендаций, которые он выдает… но самое главное — собирали ваши отзывы и смотрели за реальными use case.

И теперь готовы рассказать о новых возможностях, которыми вы можете пользоваться.
Читать дальше →

Юрист, ставший кошмаром компании DuPont

Время на прочтение27 мин
Охват и читатели422K
Роб Билот работал корпоративным адвокатом восемь лет. Затем он взялся за судебный иск, связанный с окружающей средой, перевернувший всю его карьеру – и вскрыл бесстыдную историю химического загрязнения, длившуюся десятилетиями.

image

Всего лишь за несколько месяцев до того, как стать партнёром в юридической фирме Taft Stettinius & Hollister, Роб Билот ответил на телефонный звонок от фермера, занимавшегося разведением скота. Фермер Уилбур Тенант [Wilbur Tennant] из Паркерсбурга в Западной Виргинии рассказал, что его коровы дохнут. Он решил, что виной тому компания-химический гигант DuPont, до недавнего времени хозяйничавшая на участке в Паркесбурге, превышающем Пентагон по площади в 35 раз. Тенант пытался заручиться помощью местных властей, но у DuPont весь город был в кармане. Его просьбы с презрением отвергли не только юристы Паркерсбурга, но и его политики, журналисты, доктора и ветеринары. Раздосадованный фермер говорил с сильным акцентом, выдававшим в нём жителя региона Апалачиа. Билот пытался понять, что говорит фермер. Он, возможно, бросил бы трубку, не упомяни фермер имени бабушки Билота, Альмы Холланд Уайт.

Какие английские слова IT-лексикона мы неправильно произносим чаще всего

Время на прочтение5 мин
Охват и читатели175K
Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
Читать дальше →

Подборка полезных слайдов от Джулии Эванс

Время на прочтение1 мин
Охват и читатели53K
Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



Читать дальше →

Debian + Postfix + Dovecot + Multidomain + SSL + IPv6 + OpenVPN + Multi-interfaces + SpamAssassin-learn + Bind

Время на прочтение28 мин
Охват и читатели32K
Данная статья о том как настроить современный почтовый сервер.
Postfix + Dovecot. SPF + DKIM + rDNS. С IPv6.
С шифрованием TLS. С поддержкой нескольких доменов — часть с настоящим SSL сертификатом.
С антиспам-защитой и высоким антиспам-рейтингом у других почтовых серверов.
С поддержкой нескольких физических интерфейсов.
С OpenVPN, подключение к которому через IPv4, и которое даёт IPv6.

Если вы не хотите изучать эти все технологии, но хотите настроить такой сервер — тогда эта статья для вас.

В статье отсутствуют попытки пояснить каждую деталь. Пояснение идёт к тому, что настроено не стандартно или важно с точки зрения потребителя.
Читать дальше →

2 минуты с Webpack tree-shaking и re-export

Время на прочтение5 мин
Охват и читатели11K

Вступление


Позвольте мне начать. У нас был монолитный фронтэнд с большим наследием. Сервисы жили в одних файлах с компонентами. Всё было вперемешку и с лозунгом на фасаде: “Пусть всё будет под рукой – так легче найти, что надо". И не важно, что длина файла 200+, 300+, 500+ или даже больше строк кода.


Цель


Cделать всё читабельнее, меньше и быстрее.


Реализация


Разделить всё, что возможно на файлы и золотая пуля здесь это принцип единственной ответственности. Если у нас есть компонент и чистые функции внутри файла, мы их разделим.


С приходом ES6+, стало возможно использовать import … from синтакс – это отличная фича, ведь мы можем также использовать export … from.

Читать дальше →

Как я хакера ловил

Время на прочтение6 мин
Охват и читатели129K

Аннотация


Каждый из нас может стать жертвой злоумышленника, но иногда хищник и добыча меняются местами.

Это краткая история о том, как неумелое использовании технологий может привести к раскрытию личности. Статья будет полезна как юным хакерам, желающим получить «легкие деньги», так и тем, кто хочет их поймать.

Введение


Одним февральским вечерком я был занят поиском места для романтичного свидания со своей возлюбленной. Через какое-то время мое внимание привлек сайт milleniumfilm.ru, не доступный в настоящее время. Сайт предоставлял услуги аренды небольших кинозалов для частного просмотра. Красивые картинки, умеренные цены, есть онлайн поддержка, одно но: данные банковской карты предлагалось ввести на не защищенной странице этого же домена. Насторожившись, я написал в техподдержку сайта, и мошенники не заставили себя долго ждать — поняв, что я достаточно технически грамотен послали меня на 3 буквы. Конечно, мошенникам нет смысла тратить на меня время, но зачем так грубо? — В любой ситуации нужно оставаться Человеком.

С отзывами о сайтах такого же плана можно ознакомиться тут: zhaloba-online.ru. Некоторые из них даже до сих пор работают.

Взлом


Чувствуя вселенскую несправедливость, с целью установления личности злоумышленника и пресечения его деятельности, я принялся изучать сайт на предмет уязвимостей.
Читать дальше →

Приложение в строке меню для macOS

Время на прочтение10 мин
Охват и читатели9.9K
Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню.
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:

  • назначать иконку приложения в строке меню
  • делать приложение размещенным только в строке меню
  • добавлять пользовательское меню
  • показывать всплывающее по запросу пользователя окно и прятать его, когда необходимо, используя Event Monitoring

Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.
Поехали!

Размыкаем замыкания и внедряем Dependency Injection в JavaScript

Время на прочтение5 мин
Охват и читатели20K

image


В этой статье мы рассмотрим, как писать чистый, легко тестируемый код в функциональном стиле, используя паттерн программирования Dependency Injection. Бонусом идет 100% юнит-тест coverage.

Читать дальше →

Ликбез по электротравмам (часть вторая): лонгрид о первой помощи и реанимации

Время на прочтение13 мин
Охват и читатели45K
По многочисленным просьбам, рассказываем о первой помощи при поражении электрическим током. Напомню, что мы намеренно коснулись этой темы в связи с участившимися сообщениями в СМИ об электротравмах, полученных при использовании смартфонов, наушников и др. гаджетов. В пособиях, статьях и учебниках предлагаются различные алгоритмы и методики оказания такой помощи. Это создает проблемы для людей, оказывающих помощь, которые порой не могут решить, как на самом деле правильно. Ситуация в очередной раз демонстрирует, что медицина вторая по точности наука после богословия.



При этом большинство людей хотят четко представлять “как правильно” и “как эффективно”, а не додумывать и спорить, автор какого пособия прав и чей преподаватель. Под катом вас ждёт лонгрид о первой помощи при электротравме с упором в сердечно-легочную реанимацию (с которой больше всего путаницы). Запихнуть всё в одну статью будет тяжело, поэтому в данный момент мы обойдемся первой помощью для взрослых, ещё один материал я посвящу возрастным особенностям.

42 оператора расширенного поиска Google (полный список)

Время на прочтение15 мин
Охват и читатели384K
Те, кто давно занимается поисковой оптимизацией, хорошо знают об операторах расширенного поиска Google. Например, почти все знают об операторе site:, который ограничивает поисковую выдачу одним сайтом.

Большинство операторов легко запомнить, это короткие команды. Но уметь эффективно их использовать — совсем другая история. Многие специалисты знают основы, но немногие по-настоящему овладели этими командами.

В этой статье я поделюсь советами, которые помогут освоить поисковые операторы для 15 конкретных задач.
Читать дальше →

Небольшая заметка про wildcard сертификаты Let’s Encrypt

Время на прочтение2 мин
Охват и читатели27K
Все уже, наверное, в курсе про такую организацию как Let’s Encrypt. С некоторых пор там можно получить и wildcard сертификат. В этой короткой заметке я опишу пару не очень очевидных моментов, с которыми столкнулся.
Читать дальше →

Git: советы новичкам – часть 3

Время на прочтение6 мин
Охват и читатели69K

В финальной части нашей серии статей о работе с Git мы продолжим разговор о ветках, рассмотрим особенности работы с командой push и расскажем, что такое rebase. Первую и вторую статьи серии вы можете прочитать по ссылкам.
Читать дальше →

Создаём динамическую обложку ВКонтакте

Время на прочтение5 мин
Охват и читатели116K
В последнее время всё большую популярность обретают различные интерактивные способы завлечь аудиторию и привлечь к себе больше внимания. Тут и боты для социальных сетей и мессенджеров, и другие решения, придающие «уникальности». Среди них можно выделить и динамические обложки для сообществ, официально поддерживать которые ВКонтакте начали в марте.

Почему я решил написать эту небольшую статью? Хотя ажиотаж вокруг этой темы и спал, всё равно она остаётся довольно популярной, находятся как «клиенты», готовые платить очень большие деньги, так и желающие научиться это делать самому. Я работал с одной «студией», которая берет шестизначные суммы за эту работу, при этом кидая своих разработчиков и мелких клиентов. Так вот, чтобы в этой сфере не было монополии, и все увидели, насколько легко это делается, я и решил написать статью.


На примере моего пустого сообщества-песочницы
Читать дальше →

Простейший HTTP сервер на Golang и Elixir. Сравнение производительности

Время на прочтение10 мин
Охват и читатели34K

image
Пару недель назад, я решил взять простейший пример HTTP сервера на Go и измерить его производительность. Потом я смело взял Phoenix, прогнал на тех же тестах, и расстроился. Результаты были не в пользу Elixir/Erlang (45133 RPS у Go и всего 3065 RPS у Phoenix). Но Phoenix — это тяжело. Надо что-то хотя бы примерно равное по простоте и логике разработки тому, что есть на Go: когда есть путь — "/" и handler для него. Логичной аналогией мне показалось решение cowboy + plug, где у нас есть Router, который так же ловит "/" и отвечает на него. Результаты убили — Elixir/Erlang опять оказался медленнее:


Golang
sea@sea:~/go$ wrk -t10 -c100 -d10s http://127.0.0.1:4000/
...
  452793 requests in 10.03s, 58.30MB read
Requests/sec:  45133.28
Transfer/sec:      5.81MB

elixir cowboy plug
sea@sea:~/http_test$ wrk -t10 -c100 -d10s http://127.0.0.1:4000/
...
  184703 requests in 10.02s, 28.57MB read
Requests/sec:  18441.79
Transfer/sec:      2.85MB

Как жить дальше? Две недели я не спал и не ел (почти). Все, во что я верил все эти годы: совершенство vm erlang, ФП, зеленые процессы, было растоптано разорвано, сожжено и пущено по ветру. Немного отойдя от шока, успокоившись, и подтерев сопли я решил разобаться, в чем дело.

Читать дальше →

Удаленная переустановка Linux по ssh без доступа к консоли

Время на прочтение8 мин
Охват и читатели68K
Понадобилось мне переустановить сервер, который как бы хостился у знакомых знакомых. Там был сильно устаревший Debian, а, самое главное, система стояла на обычных разделах без lvm и пространство было распределено очень не оптимально. Физический доступ получить к нему было практически нереально, местного админа попросить что-то сделать было можно, но занять это могло неделю. Виртуальный KVM у сервера был, но извне на него попасть было нельзя; у как бы хостера не было лишних IP-адресов, а внутрь его сети попасть было невозможно. Надо было переустановить сервер из-под работающей системы по ssh. Ага, давайте поменяем ротор у турбины не выключая, потом её перезапустим и будет она с новым ротором работать!
Читать дальше →

Чистый javascript.Классы

Время на прочтение8 мин
Охват и читатели38K
1
23 ...

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность