Как стать автором
Обновить
23
0
Михаил Гуляев @gmixo

Full stack web developer

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

Alpine собирает Docker билды под Python в 50 раз медленней, а образы в 2 раза тяжелей

Время на прочтение 4 мин
Количество просмотров 63K


Alpine Linux — часто рекомендованный как базовый образ для Docker`а. Вам говорят, что использование Alpine сделает ваши билды меньше, а процесс сборки быстрей.

Но если вы используете Alpine Linux для Python приложений, то он:

  • Делает ваши билды намного медленней
  • Делает ваши образы больше
  • Тратит ваше время
  • И в итоге может стать причиной ошибок в рантайме
Читать дальше →
Всего голосов 61: ↑49 и ↓12 +37
Комментарии 30

Чтобы избавиться от боли в спине вам, возможно, придётся сидеть по-другому

Время на прочтение 7 мин
Количество просмотров 345K


Когда я сижу, у меня болит спина.

Это происходит уже последние 10 лет. И неважно, где я нахожусь – на работе, в ресторане, даже дома на диване. Моя поясница кричит: «Прекрати сидеть!»

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

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

Эти средства немного помогли – сначала. Но боль так и не ушла. Поэтому несколько лет назад я решила принять это как должное: сидячее положение причиняет мне боль, и так будет всегда.
Всего голосов 72: ↑62 и ↓10 +52
Комментарии 231

Антисобеседования

Время на прочтение 11 мин
Количество просмотров 141K
Я побывал на многих плохих собеседованиях, и в качестве кандидата и в качестве ведущего, и в качестве наблюдателя. В результате сформулировался крайне субъективный набор заметок о том, как стоит и как не стоит проводить собеседование разработчиков.


Собеседование — это экзамен


Ведущий — строгий учитель, а кандидат — студент. Классический сеттинг. Обычно проходит так. Спросили откуда ты, что ты, и потом пошло техническое собеседование.

Начинается с простых вопросов на раскачку, примерно таких:
Читать дальше →
Всего голосов 221: ↑206 и ↓15 +191
Комментарии 677

Добро пожаловать на борт: вводим новых разработчиков в команду

Время на прочтение 11 мин
Количество просмотров 48K

Привет, Хабр! Меня зовут Андрей Гоменюк, я тимлид одной из команд серверной разработки Badoo.

На майском Badoo Techleads Meetup, посвящённом управлению разработкой, я поделился опытом интеграции новичков в команду. А сегодня делюсь текстовым дополненным и улучшенным вариантом своего доклада.

Представьте, что сегодня ваш первый рабочий день в Badoo. Каких же знаний и умений ждёт от вас отдел и в частности я, руководитель? Как минимум таких:
Читать дальше →
Всего голосов 112: ↑103 и ↓9 +94
Комментарии 52

Полноценный REST API для перфекционистов за 5 минут

Время на прочтение 15 мин
Количество просмотров 229K


Привет, Хабр! Меня зовут Владимир, мне 28 лет и я наркоман наркоман. Мой наркотик – простота. На простоту я подсел из-за своего перфекционизма, которым меня наградили при рождении.

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

Мир вокруг не идеален, сложную вещь сделать простой – невероятно сложно, поэтому всё чрезмерно усложнено. Людям нравится чувствовать себя профессионалами, поэтому они оперируют сложными терминами, когда в этом нет необходимости, так они ощущают свою значимость и заполняют пустоту, которая образовалась из-за страха потерянного времени.
Читать дальше →
Всего голосов 49: ↑41 и ↓8 +33
Комментарии 78

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

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

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


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

Читать дальше →
Всего голосов 34: ↑24 и ↓10 +14
Комментарии 5

Чего мы больше получаем от компьютерных игр: вреда или пользы?

Время на прочтение 7 мин
Количество просмотров 88K


Большинство людей, сталкивавшихся с компьютерными играми, имеют об этом времяпрепровождение либо отрицательно, либо положительное мнение. Равнодушных, в общем-то, немного. И вот уже много лет не утихают споры между противниками и сторонниками компьютерных игр, причём аргументы приводятся самые разнообразные. Порой диву даёшься, какие логические цепочки выстраивают. И в основном обе стороны упирают на моменты, связанные с психикой, социумом, личностным развитием. Давайте попробуем разобраться, что думают о видеоиграх психологи.
Читать дальше →
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 207

Разработчик заявил об «официальном джейлбрейке» PS4

Время на прочтение 2 мин
Количество просмотров 29K


Если у вас есть игровая консоль PS4 и вы ждете ее взлома, то есть немного хороших новостей. На днях разработчик, известный под ником CTurt, объявил о выходе «официального джейлбрейка PS4». Для того, чтобы добиться поставленной цели, CTurt решил использовать эксплоит для ядра FreeBSD.

Сам взломщик является «С-программистом», который интересуется эксплоитами и реверсивным инжинирингом. Также он интересуется веб-разработкой и игровым дизайном.
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Комментарии 21

Как работает yield

Время на прочтение 6 мин
Количество просмотров 659K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Всего голосов 141: ↑136 и ↓5 +131
Комментарии 41

Django DB Mailer — простая и удобная батарейка, для отправки почтовых сообщений в вашем проекте

Время на прочтение 8 мин
Количество просмотров 24K
В подавляющем большинстве проектов используется отправка сообщений на почтовые адреса клиентов/админов/отделов. На сколько утомительно каждый раз создавать шаблоны на файловой системе, задавать сигналы, использовать часто дублирующийся код для рендеринга и отправки.

В конечном итоге встают задачи о фоновой отправке, об изменениях отправителя, приоритизации, повторной отправке сообщения в случае неудачи, частом редактировании по просьбе клиента/маркетологов, прикреплению к письму стандартных файлов в виде каких-то инструкций по применению продукта, или же стандартных документов, отчетов по клиентам, переводам и тд и тп.

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

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


Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 17

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность