Я из компании Luxoft. В этой статье будет рассматриваться проект nginx-clickhouse, который будет читать логи nginx, отправлять их в clickhouse. Для просмотра аналитики по логам есть дашборд для Grafana.
Пользователь
Ящик для хранения данных в go-приложениях

Небольшая заметка о встраиваемой key-value БД под названием Coffer
, написанной на Golang. Если совсем коротко: в остановленном состоянии БД данные лежат на диске, при запуске данные копируются в память. Чтение происходит из памяти. При записи изменяются данные памяти, а изменения записываются в журнал на диск. Максимальный размер хранимых данных ограничен размером оперативной памяти. API позволяет создавать хидеры для записей БД и применять их в транзакциях, сохраняя при этом консистентность данных.
Практический опыт обновления MySQL 5.7 до версии 8.0

Недавно мы обновили свои сервера с MySQL 5.7 на 8.0.
Оставим за рамками этой статьи зачем и какие новые плюшки появились в MySQL 8.0, а вместо этого расскажем о том, с какими сложностями мы столкнулись в процессе обновления.
Пишем на Go простой балансировщик

Балансировщики нагрузки играют в веб-архитектуре ключевую роль. Они позволяют распределять нагрузку по нескольким бэкендам, тем самым улучшая масштабируемость. А поскольку у нас сконфигурировано несколько бэкендов, сервис становится высокодоступным, потому что в случае сбоя на одном сервере балансировщик может выбирать другой работающий сервер.
Поигравшись с профессиональными балансировщиками наподобие NGINX, я попробовал ради веселья создать простенький балансировщик. Написал я его на Go, это современный язык, поддерживающий полноценный параллелизм. Стандартная библиотека в Go имеет широкие возможности и позволяет писать высокопроизводительные приложения с меньшим количеством кода. К тому же для простоты распространения она генерирует единственный статически скомпонованный бинарник.
Инкрементальные бэкапы postgresql с pgbackrest — курс молодого бойца от разработчика
Я — разработчик. Я пишу код, с базой данных взаимодействую лишь как пользователь. Я ни в коем случае не претендую на должность системного администратора и, тем более, dba. Но…
Так вышло, что мне нужно было организовать резервное копирование postgresql базы данных. Никаких облаков — держи SSH и сделай, чтобы все работало и не просило денег. Что мы делаем в таких случаях? Правильно, пихаем pgdump в cron, каждый день бэкапим все в архив и если совсем разошлись — отправляем этот архив куда-нибудь подальше.
В этот раз сложность состояла в том, что по планам база должна была расти примерно на +- 100 МБ в день. Разумеется, уже через пару недель желание бэкапить все pgdump'ом отпадет. Тут на помощь приходят инкрементальные бэкапы.
Интересно? Добро пожаловать под кат.
Асинхронное программирование в Python: краткий обзор

Применение асинхронных механизмов при написании некоей программы означает, что эта программа будет выполняться быстрее, чем без использования подобных механизмов. При этом то, что планируется запускать асинхронно, вроде утилиты для логирования, должно быть написано с учётом возникновения нештатных ситуаций. Например, утилита для логирования, если место на диске закончилось, может просто прекратить логирование, а не «обваливать» ошибкой основную программу.
Выполнение асинхронного кода обычно подразумевает работу такого кода в отдельном потоке. Это — если речь идёт о системе с одноядерным процессором. В системах с многоядерными процессорами подобный код вполне может выполняться процессом, пользующимся отдельным ядром. Одноядерный процессор в некий момент времени может считывать и выполнять лишь одну инструкцию. Это напоминает чтение книг. Нельзя читать две книги одновременно.
Если вы читаете книгу, а кто-то даёт вам ещё одну книгу, вы можете взять эту вторую книгу и приступить к её чтению. Но первую придётся отложить. По такому же принципу устроено и многопоточное выполнение кода. А если бы несколько ваших копий читало бы сразу несколько книг, то это было бы похоже на то, как работают многопроцессорные системы.
Пишем чат на Python и Django

Вы видите перед собой руководство, которое расскажет, как создать приложение-чат на Python, Django и React.
В отличие от других руководств, я не использую Python и Django для WebSocket-соединений. Несмотря на то, что это звучит круто с технической точки зрения, работает это довольно вяло и само по себе затратно, особенно, если у вас приличное количество пользователей. Такие языки, как C++, Go и Elixir намного лучше справляются с ядром чата.
Зачем использовать python -m pip

Мариатта — разработчик из Канады, спросила в Твиттере о python -m pip, попросив рассказать об этой идиоме и объяснить принцип ее работы.
Недавно я узнала, что нужно писать python -m pip вместо обычного pip install, но теперь я не могу вспомнить от кого я это услышала. Наверное, от @brettsky или @zooba. У кого-нибудь из вас есть пост в блоге, чтобы я могла поделиться им с читателями?
— Мариатта (@mariatta
) 29 октября 2019 г. (https://twitter.com/mariatta/status/1189243515739561985?ref_src=twsrc%5Etfw)
Я не уверен, что именно я сказал Мариатте о python -m pip, но есть все шансы, что это был именно я, поскольку я же просил, чтобы эта инструкция для установки пакетов с помощью PyPI писалась именно так с 2016 года. Итак, эта статья должна пояснить, что такое python -m pip и почему вы должны использовать именно ее при запуске pip.
Как создать свое первое веб-приложение с помощью Go
Привет, Хабр! Представляю вашему вниманию перевод статьи "How to build your first web application with Go" автора Ayooluwa Isaiah.
Это руководство к вашему первому веб-приложению на Go. Мы создадим новостное приложение, которое использует News API для получения новостных статей по определенной теме, и развернём его на продакшн сервере в конце.
Подборка: 5 книг по маркетингу, которые нужно прочитать основателю стартапа

Создание и развитие новой компании – всегда непростой процесс. И одна из главных сложностей зачастую заключается в том, что основатель проекта поначалу вынужден погружаться в самые разные области знаний. Он должен улучшать сам продукт или услугу, выстроить процесс продаж, а также думать о том, какие маркетинговые тактики подойдут в конкретном случае.
Это нелегко, основные знания может дать только практика и предыдущий опыт, но и хорошая профессиональная литература здесь может помочь. В этой статье мы рассмотрим пять книг по маркетингу, которые стоит прочитать каждому основателю стартапа.
Дискриминация сотрудников по возрасту — беспощадная и бессмысленная
В этой статье я хочу рассказать о распространенных предрассудках, по которым в компаниях возникают возрастные ограничения при подборе персонала на примере профессиональной области “Информационные технологии”.

Организация маршрутов в Laravel
Если вы ни разу не правили файл RouteServiceProvider, добро пожаловать под кат.
34 open source библиотеки Python (2019)

Мы просмотрели и сравнили 10 000 open source библиотек для Python и выбрали 34 самые полезные.

Мы сгруппировали эти библиотеки в 8 категорий.
Python за месяц
(Прим. пер.: это советы от автора-индуса, но вроде дельные. Дополняйте в комментах.)

Месяц — это много времени. Если тратить на обучение по 6-7 часов каждый день, то можно сделать дофига.
Цель на месяц:
- Ознакомиться с основными понятиями (переменная, условие, список, цикл, функция)
- Освоить на практике более 30 проблем программирования
- Собрать два проекта, чтобы применить на практике новые знания
- Ознакомиться хотя бы с двумя фреймворками
- Начать работу с IDE (средой разработки), Github, хостингом, сервисами и т. д.
Так вы станете младшим разработчиком (джуном) Python.
Теперь план по неделям.
Удаленный SSH: советы и лайфхаки

Пробуем preload (PHP 7.4) и RoadRunner

Привет, Хабр!
Мы часто пишем и говорим о производительности PHP: как мы ей занимаемся в целом, как мы сэкономили 1 млн долларов при переходе на PHP 7.0, а также переводим разные материалы на эту тему. Это вызвано тем, что аудитория наших продуктов растёт, а масштабирование PHP-бэкенда при помощи железа сопряжено со значительными затратами — у нас 600 серверов с PHP-FPM. Поэтому инвестирование времени в оптимизацию для нас выгодно.
Прежде мы говорили в основном об обычных и уже устоявшихся способах работы с производительностью. Но сообщество PHP не дремлет! В PHP 8 появится JIT, в PHP 7.4 — preload, а за пределами core-разработки PHP развиваются фреймворки, подразумевающие работу PHP как демона. Пора поэкспериментировать с чем-то новым и посмотреть, что это может нам дать.
Так как до релиза PHP 8 ещё далеко, а асинхронные фреймворки плохо подходят для наших задач (почему — расскажу ниже), сегодня остановимся на preload, который появится в PHP 7.4, и фреймворке для демонизации PHP — RoadRunner.
Это текстовая версия моего доклада с Badoo PHP Meetup #3. Видео всех выступлений мы собрали в этом посте.
Заворачиваем весь трафик ОС в Tor

Все описанное в статье реализовано в виде инструмента Toroxy, доступного на GitHubВ последнее время анонимность в сети является предметом горячих споров. Ни для кого не секрет, что данные о посещениях Интернет-ресурсов с локального устройства могут собираться на разных уровнях с целью построения «модели» пользователя, которая позже против него же и может быть использована (или могла бы). Поэтому не удивительно, что все большее количество активных пользователей Интернета становятся уверены в необходимости механизмов проксирования и анонимизации. В связи с этим появляется все больше новых VPN-клиентов, но, как показывает практика, далеко не всем из них по-настоящему можно доверять: то не все работает из коробки, то анонимизируется только HTTP-трафик, то качество реализации хромает, а то и вовсе разработчики грешат сливанием данных о своих пользователях.
В этой статье мы попробуем собрать из ряда программных компонентов собственный инструмент с UI, который бы позволил полностью анонимизировать трафик локальной системы и не допустить утечек по «прослушиваемым» каналам ни на одном из этапов работы.
Терминальный сервер для админа; Ни единого SSH-разрыва

Если ваша работа требует держать множество SSH-сессий к разным серверам, вы наверняка знаете, как они легко ломаются при переключении на другой Wi-Fi или при временной потере интернета. Но что, если я скажу вам, что все эти проблемы давно решены и можно забыть про сломанные сессии и постоянные переподключения?
Открывая крышку ноутбука, все мои десятки SSH-сессий сразу доступны и находятся в том же состоянии, в каком я их оставил. В статье описывается настройка терминального сервера для системного администратора. Использование такого сервера позволяет забыть о сломанных SSH-сессиях, постоянном переподключении и вводе паролей.
Как заговорить на английском через месяц. 9 простых и проверенных шагов
Меня зовут Марина Могилко, я кофаундер онлайн-платформы LinguaTrip.com.
Мы с командой помогаем людям выучить язык и поступить в зарубежный университет. Я знаю, что за месяц английский не выучишь, но иногда бывают ситуации, когда надо срочно подтянуть язык — предстоит поездка за рубеж или намечается работа в англоязычном проекте. А возможно, просто нет больше сил учить язык и хочется уже начать на нём разговаривать. Для таких случаев мы подобрали простые шаги, которые доступны любому работающему человеку с часом свободного времени в день.
Все советы рассчитаны на тех, кто уже обладает минимальным уровнем английского — учил его в школе или на курсах. Но заговорить через месяц смогут и те, кто только знакомится с языком, правда, им будет труднее. В статье не будет рекомендаций типа «учите язык вместе с носителем языка» или «погрузитесь в языковую среду». Это действенные методы, но они не всегда подходят.
Итак, начинаем! Осторожно: под катом мини-словарик на все случаи жизни.

Немецкая полиция взяла штурмом военный бункер, в котором разместился объявивший независимость дата-центр

Схема бункера. Рисунок: полиция Германии
CyberBunker.com — пионер анонимного хостинга, который начал работу в 1998 году. Компания разместила серверы в одном из самых необычных мест: внутри бывшего подземного комплекса НАТО, построенного в 1955 году как защищённый бункер на случай ядерной войны.
Клиенты становились в очередь: все серверы обычно были заняты, несмотря на завышенные цены: VPS стоил от €100 до €200 в месяц, без учёта платы за установку, при этом планы VPS не поддерживали Windows. Зато хостер успешно игнорировал любые жалобы DMCA из США, принимал биткоины и не требовал от клиентов никакой личной информации, кроме адреса электронной почты.
Но теперь «анонимному беспределу» пришёл конец. Ночью 26 сентября 2019 года бойцы немецкого спецназа и полиции штурмом взяли защищённый и охраняемый бункер. Захват произведён под предлогом борьбы с детской порнографией.
Information
- Rating
- Does not participate
- Registered
- Activity