Search
Write a publication
Pull to refresh
1
0

User

Send message

Python — Эволюция создания объектов (первая часть)

Level of difficultyMedium
Reading time10 min
Views8.5K

Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?

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

В вопросе "как создавать объект?" я сторонник эволюционного подхода. Я не стремлюсь использовать порождающие паттерны при первой возможности. У меня есть простой набор вопросов самому себе, который помогает мне принять решение, стоит ли изменить способ создания объекта или нет.

Читать далее

Почему квантовая механика и теория относительности несовместимы?

Reading time7 min
Views89K


Несмотря на то, что мы достигли определенных успехов в понимании внутреннего устройства вселенной (бозон Хиггса, ага), в наших знаниях все еще есть зияющие пробелы. В конце концов, почему у нас до сих пор нет Теории Великого Объединения и Теории Всего?.. И почему Общая теория относительности Эйнштейна никак не может подружиться с квантовой механикой?

Кстати говоря, а зачем нам их вообще дружить?

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

Могут ли они сосуществовать вместе?

Вы наверно уже догадались, что мы точно не знаем, как квантовая механика и ОТО могут объединиться в квантовую гравитацию. Не смотря на больше количество любопытных теорий о том, как это можно сделать, я не буду сейчас на них останавливаться, а просто попытаюсь объяснить, зачем это вообще нужно.
Читать дальше →

Как обхитрить мозг и заставить его полюбить сложные задачи [Дофаминовый детокс]

Level of difficultyEasy
Reading time7 min
Views160K

Как часто вы ловили себя на мысли «Вот, блин, весь выходной прозалипал в бесконечных лентах, а ничего полезного так и не сделал»? Не спешите себя винить! Скорее всего, все дело в вашем мозге, который привык баловаться дофамином. Увы, с этой проблемой сталкиваются большинство современных людей (и мы в beeline cloud — не исключение). Хорошая новость: ее можно решить!

Почему некоторых людей гораздо сильнее мотивируют именно сложные задачи? И есть ли способ превратить трудные дела в легкие?

Скорее всего, вы можете играть в видеоигры хоть каждый день. Или, например, листать социальные сети. Не сомневаюсь также, что вы без труда сможете просидеть целый день перед экраном монитора.

А теперь попробуйте целый час посвятить учебе... Звучит очень утомительно. А что, если вместо этого часок-другой поработать над своим сайд-проектом? Хм. Всё равно скукотища.

Читать далее

Шпаргалка по безопасной сборке Docker-образов

Reading time17 min
Views24K

Каждый контейнер Docker основан на образе, который обеспечивает базу для всего, что вы когда-либо будете развертывать и запускать. Если злоумышленник как-то повлияет на сборку образа и изменит Dockerfile, то сможет совершить навредить вашим системам. Например, добавить вредоносный код, получить доступ к секретным данным сборки или атаковать хост-компьютер. Поэтому защита начинается уже во время подготовки образа, с первой инструкции.

Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. Под катом расскажу, как настроить сборку образов, обеспечить безопасность и добавить сканирование в пайплайн.
Читать дальше →

Сложнейшая проблема компьютерных наук: центрирование

Level of difficultyMedium
Reading time7 min
Views37K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →

Настоящая причина, по которой вы не станете сеньором

Level of difficultyEasy
Reading time5 min
Views12K

История о воробушках, правильном фидбеке и житейских проблемах/

В 1958 году Мао Цзэдун инициировал «Большой скачок» — организованную китайской коммунистической партией кампанию по трансформации страны в индустриально развитое государство.

Акция «Четыре зла» входила в число первых шагов, предпринятых в рамках «Большого скачка». Под девизом «Человек должен победить природу» власти нацелились на уничтожение четырех вредителей: крыс, мух, комаров и воробьев.

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

Истребление воробьев привело к серьезному экологическому дисбалансу. Отсутствие естественных хищников повлекло за собой нашествие насекомых на поля и порчу урожая, что в итоге послужило одной из причин Великого китайского голода 1959-1961 годов.

Читать далее

10 полезных сочетаний клавиш в PyCharm

Reading time2 min
Views197K

Привет, мои дорогие!

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

Читать далее

Этот опасный рефакторинг

Level of difficultyMedium
Reading time7 min
Views6.9K

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

Делаем код-ревью правильно

Level of difficultyMedium
Reading time12 min
Views24K

В начале своей карьеры я как-то работал над одним заказом, создавая платформу сентимент-анализа для социальных сетей. В то время Twitter ещё был Twitter’ом. Наша команда состояла из семи человек, среди которых я был джуниором. Мы были молоды и полны энтузиазма. Наш девиз можно было описать как: «Мы гибкие, быстрые и всё ломаем!». Да, мы действительно гордились своей скоростью. Код-ревью? Я вас умоляю. Мы считали эту практику бюрократическим пережитком корпоративного мира.

И что вы думаете? Через несколько месяцев наша база кода стала подобна минному полю. Причём баги нас волновали меньше всего, хотя их была уйма. Реальная проблема заключалась в том, что никто не мог понять код, написанный другими. У нас во многих местах дублировалась логика, и в модулях использовались разные стили кода. Всё было очень печально.

Тогда до нас дошло! Нужно взять всё под контроль. Код-ревью реально помогают сохранять код читаемым, обслуживаемым и масштабируемым.

Итак, в двух словах: если вы не проводите код-ревью, или делаете их «для галочки», то обрекаете себя на боль, пусть не сразу, но в конечном итоге однозначно. Это можно сравнить с возведением дома на фундаменте из песка. Какое-то время он, может, и простоит, но явно недолго. А в мире стартапов второго шанса у вас может уже не быть.
Читать дальше →

Немыслимое – как тебя обсуждать?

Level of difficultyEasy
Reading time7 min
Views4K

В своей предпоследней статье на Хабре, «Оде о бесполезности споров» я рассказал об эксперименте, в котором ученый пытался переубедить убежденного сторонника плоской Земли. Как вы помните, он отказался даже посмотреть в телескоп, заявляя что «Сама мысль об искривленной поверхности воды оскорбительна для здравого смысла».

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

Поведение человека определяется логикой и эмоциями. Именно поэтому, все дискуссии тяготеют к одному из двух полюсов — прочитанное настолько неправильно, что ошибку хочется исправить. Или настолько возмутительно, что пройти мимо невозможно! Понять, в каком состоянии вы сейчас находитесь можно по отношению к автору статьи — если вами боретесь с его тезисами, то управляет логика. Если с личностью — то эмоции. Проблема в том, что это знание бесполезно: когда управляют эмоции вам не до логики — гадину надо давить!

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

Набраться мужества и посмотреть в телескоп

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Reading time7 min
Views44K

В жизни любого разработчика наступает момент, когда он роняет прод. Представьте: полдень, в Skyeng час пик, тысячи запланированных онлайн-уроков, а наша платформа лежит… 

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

Читать далее

Самый лучший в мире курс по Машинному обучению — Алгоритмы Машинного обучения с нуля

Reading time1 min
Views27K

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

Курс на Степике: https://stepik.org/a/68260

Читать далее

Как эффективно самостоятельно изучать английский язык

Level of difficultyEasy
Reading time8 min
Views55K

Читатели Хабра, категорически вас приветствую! В этой статье я хочу поделиться с вами моделью эффективного изучения английского языка, которую я постарался сформировать исходя из своего n-летнего опыта его изучения.

Расскажу вам насколько это актуально, с чего начать, какие ресурсы и приемы использовать и как эффективно достичь результата.

Читать далее

Small talk для большого успеха: общение с рекрутером, коллегами и новыми знакомыми

Level of difficultyEasy
Reading time6 min
Views12K

Ребята, привет! Это Лена, методист курсов английского языка в Практикуме, преподаватель и англоговорящий интервьюер в международных IT-компаниях. Мы с вами уже знакомы по статье о собеседовании на английском для разработчиков.

Я хочу более подробно раскрыть пункт о софтскилах, а точнее, поговорить про small talk. Это часть англоязычной культуры, освоить которую полезно всем, кто хочет работать общаться с иностранными коллегами.

Но вот загвоздка: small talk часто кажется чем-то неловким — непонятно, о чём говорить и как долго. Именно с этим я и постараюсь помочь.

Читать далее

Лучший стек для питониста-джуна 2024 (2 часть)

Level of difficultyEasy
Reading time7 min
Views30K

Итак, что же поменялось за чуточку больше чем полгода? Если мы будем говорить об актуальности - ничего. Django до сих пор, а скорее всего так будет и всегда, остается "на плаву". Большая часть вакансий для back-end разработчика на Python имеет в себе требования по знаниям Django. Говорить вечно о том, что он удобен, постоянно поддерживаем, дает довольно обширный функционал и так далее - бессмысленно. Все основные моменты я упомянул в первой части.

Ладно, вступление в сторону! Лучше обсудить то, что изменилось с Django за это время.

Самое грандиозное из этого - выход Django 5! По сути скачок на пятую версию не принес в фреймворк особо крупных изменений, но парочку моментов хочу подчеркнуть. Первое и самое важное, на мой взгляд, это то, что разработчики решили добавить больше асинхронности без подключения таск-менеджеров. Для этого они добавили несколько декораторов и методов. Хотя это немного, на мой взгляд, противоречит самому принципу работы Django (напоминаю: Django синхронный фреймворк и для того, чтобы сделать очередь задач, нужно подключать таск-менеджеры, например, Celery), но тем не менее, это все равно крутой шаг в эволюцию. Надеюсь, что разработчики и дальше будут двигаться в этом направлении.

Далее, не могу не упомянуть очень важный момент - совместимость с Python. Django 5 будет работать только с версиями Python 3.10 и выше. Django 4.2.x - последняя версия, которая работает с Python 3.8 и 3.9.

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

Смотреть польностью

Всё не то, чем кажется: как когнитивные искажения мешают работать и что с ними делать

Reading time11 min
Views17K

Привет! Это Анна из click.ru с очередным рассказом на тему личной (не)эффективности. Когда я впервые услышала про когнитивные искажения, я усмехнулась: «Ну, я-то мыслю рационально, в отличие от Васи, который делает из всего катастрофу». Наступил 2022-й, и однажды, после очередного приступа под девизом «Всё пропало!», я внезапно почувствовала духовное родство с Васей...

Раскапывая глубже, поняла, что наши головы часто наполнены устойчивыми схемами реакций и суждений, которые усиливаются во времена адаптации к новым обстоятельствам. А поскольку основное поле деятельности у меня – это работа, расскажу вам об искажениях на примере нее.

Читать далее

Прокачиваем вёрстку ARIA-атрибутами. Атрибут role

Level of difficultyMedium
Reading time8 min
Views7.4K

В разговорах людей, интересующихся доступностью, часто можно услышать слово «Роль». Так, что это такое? Это специальная форма представления элемента для скринридера. Устанавливается она с помощью атрибута role. Сегодня поговорим о нем.


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


Давайте начнём!

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

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

Level of difficultyMedium
Reading time16 min
Views7.2K

Любая программная компания рано или поздно сталкивается с проблемой должностей. Некоторые организации довольствуются «плоской» системой, но в отсутствие системы должностей возникают теневые иерархии, что на самом деле хуже. Должности дают чёткую демаркацию ожиданий от конкретного сотрудника. Например, гораздо проще возложить на ведущего разработчика ответственность за техническое руководство, если эта роль чётко определена. Без определений должностей наверх будут подниматься самые громкие, а тихие и вдумчивые останутся незамеченными.

Сложность чёткого определения должностей заключается в том, что люди пытаются обмануть систему (всегда заявляя, что они заслуживают новой должности/повышения зарплаты). Я наблюдал, как для борьбы с этим организации создают всё более длинные определения, позволяющие избегать пограничных случаев. Постепенно определения начинают занимать несколько страниц и перестают умещаться в головах. В процессе сложности системы соблюдение её правил ослабевает, а потом люди просто перестают им следовать. Я считаю, что есть более правильный путь, поэтому предлагаю следующее:

Не платите за то, сколько людей под руководством или сколько строк кода они написали. Платите им за генерируемые результаты.

Эта философия сильна и наделяет свободой. Неважно, если вы сотрудник, вносящий индивидуальный вклад (individual contributor, IC), занимаетесь техническим руководством или управлением командой. Важно то, насколько ваш вклад влияет на прибыль бизнеса.

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

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Level of difficultyMedium
Reading time12 min
Views20K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

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

Читать далее

Nginx: шпаргалка

Level of difficultyEasy
Reading time2 min
Views31K

Шпаргалка по основным секциям Nginx, которые следует держать под рукой. Ниже приведены самые частые функции: включение SSL, переадресация, раздача статики и т.д.

Читать далее

Information

Rating
Does not participate
Registered
Activity