Pull to refresh
0
0
alecksey @alecksey

User

Send message

Материалы митапа GOnline: дизайн библиотек, кодогенерация, машинное обучение

Reading time3 min
Views5.4K

Делимся материалами с нашего совместного митапа с сообществами GolangKazan и Go Yola для Go-разработчиков. Под катом — видеозаписи выступлений с таймкодами для удобной навигации и ссылки на презентации спикеров.


Читать дальше →
Total votes 14: ↑13 and ↓1+15
Comments0

Лучшие практики и рекомендации для запуска контейнеров и Kubernetes в производственных средах

Reading time10 min
Views7.1K

Экосистема технологий контейнеризации быстро развивается и меняется, поэтому в этой сфере не хватает хороших рабочих практик. Тем не менее Kubernetes и контейнеры используют все чаще — как для модернизации старых приложений, так и для разработки современных облачных приложений. 

Команда Kubernetes aaS от Mail.ru собрала прогнозы, советы и лучшие практики для лидеров рынка от Gartner, 451 Research, StacxRoх и других. Они позволят обеспечить и ускорить развертывание контейнеров в производственных средах.
Читать дальше →
Total votes 11: ↑9 and ↓2+19
Comments0

Установка и правильная настройка Docker на Windows Subsystem Linux (WSL)

Reading time5 min
Views34K

Предварительные требования


Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию:

  • Windows 10 Version 1803 Build 1734 и выше
  • Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться)

Важно, чтобы версия и сборка Windows были не ниже того, что здесь указано. Дело в том, что, начиная с этих цифр, в ядро Windows ​​WSL были внесены принципиальные изменения, которые позволяют использовать cgroups (control groups — в 2008 году добавлены в ядро Linux). А они необходимы Docker’у для управления ресурсами вашей системы в контейнерах.


Читать дальше →
Total votes 6: ↑5 and ↓1+6
Comments37

Истории аварий с Patroni, или Как уронить PostgreSQL-кластер

Reading time25 min
Views33K
В PostgreSQL нет High Availability из коробки. Чтобы добиться HA, нужно что-то поставить, настроить — приложить усилия. Есть несколько инструментов, которые помогут повысить доступность PostgreSQL, и один из них — Patroni.

На первый взгляд, поставив Patroni в тестовой среде, можно увидеть, какой это прекрасный инструмент и как он легко обрабатывает наши попытки развалить кластер. Но на практике в production-среде не всегда всё происходит так красиво и элегантно. Data Egret начали использовать Patroni еще в конце 2018 года и накопили определенный опыт: как его диагностировать, настраивать, а когда вовсе не полагаться на автофейловер.

На HighLoad++ Алексей Лесовский обстоятельно, на примерах и с разбором логов рассказал о типовых проблемах, возникающих при работе с Patroni, и best practice для их преодоления.


В статье не будет: инструкций по установке Patroni и примеров конфигураций; проблем за пределами Patroni и PostgreSQL; историй, основанных на чужом опыте, а только те проблемы, с которыми в Data Egret разобрались сами.
Total votes 18: ↑18 and ↓0+18
Comments1

Принцип Единой Ответственности (SRP) на примере Laravel

Reading time4 min
Views9.1K
Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel.

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

Конечно, в статьях и книгах это описывается в качестве примера, но часто воспринимается как призыв к действию в рабочих проектах. Такой подход неизбежно приведет к неконтролируемому разрастанию класса и сильно усложнит поддержку кода.
Читать дальше →
Total votes 12: ↑9 and ↓3+9
Comments14

Мой путь к секционированию в PostgreSQL

Reading time4 min
Views13K


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

Привет, Хабр! Меня зовут Алмаз и сейчас я хочу поделиться методом, который помог мне реализовать секционирование.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments20

PostgreSQL Antipatterns: обновляем большую таблицу под нагрузкой

Reading time6 min
Views28K
Как стоит поступить (а как точно не надо), если в «многомиллионной» активно используемой таблице PostgreSQL нужно обновить большое количество записей — проинициализировать значение нового поля или скорректировать ошибки в существующих записях? А при этом сохранить свое время и не потерять деньги компании из-за простоя.


Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments8

Лучший игровой движок по версии пользователей хабра

Reading time3 min
Views223K

В этом обзоре мы рассмотрим популярные в 2016 году игровые движки и проголосуем за лучшие из них.

Игровые движки предоставляют средства разработки, которые могут быть использованы программистами, чтобы упростить их работу. Короче говоря, предоставляют инструменты и функциональные возможности для разработки игры.
Читать дальше →
Total votes 54: ↑43 and ↓11+32
Comments91

Как мы Elasticsearch готовили, или О том, как обработать 36 тысяч логов в секунду

Reading time5 min
Views32K
В один прекрасный момент для одного из проектов появилась необходимость в хранении, обработке и визуализации большого количества логов. Необходимо было индексировать около 10-20 тысяч запросов в секунду с пиками до сотни тысяч, что, как оказалось, является нетривиальной задачей. Для решения этой проблемы мы решили использовать уже знакомый многим ELK- стек. Единственным вопросом было — «а потянет ли он». Как оказалось, потянет, но не сразу.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments24

Кейс NGINX: Как противостоять DDoS-атакам

Reading time2 min
Views26K
Основная цель нашей работы состоит в том, чтобы сделать IaaS простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Поэтому мы проводим постоянную оптимизацию всех систем и рассказываем о том, что нам удалось сделать, в нашем блоге на Хабре.

Пара примеров:


Сегодня мы решили взглянуть на западный опыт и кратко проанализировать тему балансировки нагрузки. Нас привлекла заметка на тему работы с DDoS-атаками.

Читать дальше →
Total votes 34: ↑24 and ↓10+14
Comments5

Параллельный Sequential Scan Commited

Reading time3 min
Views4K
В предыдущих статьях я писал о получении параллельного sequential scan закоммиченного в PostgreSQL 9.5. Но этого не случилось. Однако, я с удовольствием расскажу вам о первом коммите parallel sequential scan в PostgreSQL в master ветку с целью предстоящего релиза PostgreSQL 9.6.

Параллельные запросы для PostgreSQL были долгое время моей мечтой, над которыми я работал несколько лет. Их разработка их началась c PostgreSQL 9.4 релизном цикле, где я добавил динамические воркеры, работающие в фоне и динамическую shared memory, разработка которой продолжилась в PostgreSQL 9.5, где имела место идея в добавлении фундаментальной инфраструктуры для параллелизма которая сегодня была закоммиченна. Я хотел бы рассказать вам немного о сегодняшних коммитах и о работе, которая будет проделана дальше.

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments11

Теплый ламповый звук

Reading time7 min
Views328K
Как-то случайно обратил внимание, что 90% статей на хабре с тегом «теплый ламповый» рассказывают о чем угодно, но только не о ламповой технике. В то же время, немногие публикации о ламповых устройствах собирают множество лайков восхищенных комментариев.



Я уже не помню как и когда в моей голове поселилась эта странная идея — собрать ламповый усилитель. Зачем тоже не совсем понятно — меломаном я не являюсь, домашними кинотеатрами давно и быстро переболел, на память об этом времени остались напольные колонки Wharfedale Diamond 8.4, последние годы использовавшиеся исключительно как декоративная подставка для цветов. Как бы то ни было, мысль настолько глубоко поселилась в моей голове, что началось неспешное изучение профильных ресурсов, чтение форумов, поиск схем ламповых усилителей «для чайников» и т.д. и т.п. Отсутствие какого-либо опыта общения с ламповой техникой (самый современный гаджет, который я помню — это ч/б телевизор в студенческой общаге в начале 90-х годов прошлого века) отпугивало и привлекало одновременно.
Подробности
Total votes 286: ↑273 and ↓13+260
Comments118

Bondic — светоотверждаемый пластик для мелкого ремонта

Reading time4 min
Views26K
Недавно мне на тестирование попал интересный «Экспонат» — светоотверждаемый пластик — Bondic.


Вообще, материалы, затвердевающие под действием ультрафиолетового излучения известны давно и широко применяются. Наверное, самый распространенный пример – т.н. «световые пломбы», которые стоматологи закрепляют с помощью УФ-излучения. Еще пример – наращивание ногтей из специального геля и т.д.

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

Итак, заполучив коробку с устройством, и первым делом склеив пару листочков, я понял, что для проведения нормальных тестов понадобится кто-то с более корректным креплением верхних конечностей. Поэтому дальше передаю слово своему брату, имеющему большой опыт в области ручной и даже ювелирной работы.
Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments12

Доступна preview Android Studio 2.0: две убер-фичи

Reading time2 min
Views39K
Приветствую. Сегодня утром состоялся ожидаемый анонс Android Studio версии 2.0, в которой google представил нам сразу две крутые фичи. Во-первых, это новый эмулятор android. Который, по словам google, «на хорошем железе работает быстрее физического устройства». Во-вторых, это новая функция «instant run», которая позволяет почти мгновенно обновлять запущенное под отладкой мобильное приложение при изменении исходного кода. Это практически «hot reload» из веб разработки. Под катом — чуть подробнее и ряд менее заметных улучшений. Новая версия уже доступна для скачивания в canary канале обновления.

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments22

Риски и проблемы хеширования паролей

Reading time11 min
Views38K
Безопасность всегда была неоднозначной темой, провоцирующей многочисленные горячие споры. И всё благодаря обилию самых разных точек зрения и «идеальных решений», которые устраивают одних и совершенно не подходят другим. Я считаю, что взлом системы безопасности приложения всего лишь вопрос времени. Из-за быстрого роста вычислительных мощностей и увеличения сложности безопасные сегодня приложения перестанут завтра быть таковыми.

Прим. перев.: для более полной картины здесь вас также будет ждать перевод Hashing Passwords with the PHP 5.5 Password Hashing API, на которую автор ссылается в статье.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments42

Мой опыт миграции на PHP 7

Reading time2 min
Views75K
image
Несколько дней назад я переключил свой сервер с порядка 30-ти сайтами на PHP 7. Некоторые из них были достаточно старыми и составляли широкий набор с различных фреймворков и CMS. Вот несколько советов для тех кто еще не решил переходить на PHP 7 или нет.

Начнем с того что я понимаю что есть много людей которые не считают стабильную версию действительно «стабильной» пока она чуть-чуть не повзрослела, ожидая что еще найдутся какие-то баги или несовместимости. С того что я пока видел, пробуя каждый release candidate как только он выходил, совсем безопасно переключиться на PHP 7 как только он выйдет. Я ни разу не заметил какого-то непонятного поведения или вылета которому виной не был бы я сам. Несмотря на то что это новая версия она не несет много несовместимых изменений, то есть по большому счету можете относиться к ней как к просто PHP 5.7 только существенно быстрее.
Читать дальше →
Total votes 35: ↑22 and ↓13+9
Comments56

Почти весь умный дом: большая подборка отдельных смарт-элементов: лампы, розетки, климат, экология и безопасность

Reading time17 min
Views59K
Категория управляемых смарт-устройств в «рубрике» умный дом уже близка к тому, чтобы перестать поддаваться исчислению и систематизации, и отдельные прогнозы пока еще указывают на рост интереса пользователей к этой нише.



Из-за высокой конкуренции среди производителей стала заметна тенденция к созданию отдельных дешевых элементов, не входящих в какую-либо систему, а автономно работающих в паре с собственным софтом. Сегодня практически все время про них: управляемые смарт-девайсы для умного дома: свет, электричество, экология и видеонаблюдение. Выбираем среди дорогих и дешевых.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments23

Новый алгоритм для проверки надёжности паролей

Reading time2 min
Views29K
Многие сайты пытаются помочь пользователям установить более сложные пароли. Для этого устанавливают базовые правила, которые требуют обычно указать хотя бы одну прописную букву, одну строчную букву, одну цифру и так далее. Правила обычно примитивные вроде таких:

'password' => [
    'required',
    'confirmed',
    'min:8',
    'regex:/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/',
];

К сожалению, такие простые правила означают, что пароль Abcd1234 будет признан хорошим и качественным, так же как и Password1. С другой стороны, пароль mu-icac-of-jaz-doad не пройдёт валидацию.

Некоторые специалисты говорят, что это не лучший вариант.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments25

Egret. Free open source HTML5 game engine

Reading time5 min
Views31K
В данной статье будет рассмотрены вопросы, возникающие во время выбора Game Engine для разработки 2D игр. И, как вариант ответов на эти вопросы, будет предложено использовать Egret.


Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments26

PostgreSQL 9.5: что нового? Часть 2. TABLESAMPLE

Reading time9 min
Views28K
Продолжаем обзор нововведений в PostgreSQL 9.5.
Часть 1. INSERT… ON CONFLICT DO NOTHING/UPDATE и ROW LEVEL SECURITY.
Часть 3. GROUPING SETS, CUBE, ROLLUP
От автора
Приношу свои извинения за задержку с выпуском второй части. Изначально я планировал выпустить вторую часть статьи через неделю после первой, но, в связи с большой занятостью, не смог этого сделать. Поэтому я решил, что буду публиковать не большие статьи, а небольшими порциями, но чаще.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments6
1
23 ...

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity