Search
Write a publication
Pull to refresh
1
0

User

Send message

Я люблю питон, и вот почему он меня бесит

Level of difficultyEasy
Reading time18 min
Views60K

Вас приветствует ваш зануда!

Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил

Посмотришь так - я уже давно должен был сгореть. Но я, аки феникс, возрождаюсь, и сегодня у меня горит от, внезапно, Питона, на котором я пишу больше десяти лет. Если вам интересно, что же, по моему мнению, с ним не так - то прошу под кат.

Это что же получается, kesn опять открыл postman и сломал вёрстку на сайте? Поразительно, никогда такого не было, и вот опять! В принципе, тут можно писать текст любой длины (похоже, у них на бэкенде не Char(255), а Text). Они проверяют длину только на фронтенде, а бэкенд принимает строку любой длины. И это, блин, забавно) Вообще мой девиз - 'кто ищет, тот всегда найдёт', поэтому я ищу постоянно. Кстати, на Хабре скоро выйдет статья про программирование глазами Погромиста, там в том числе про уязвимости на сайтах будет - поэтому если не хотите пропустить, то подписывайтесь на меня в телеге: @blog_pogromista

Что происходит, когда запускаешь «Hello World» в Linux

Level of difficultyMedium
Reading time15 min
Views30K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →

Автоматизация написания ВКР: LaTeX, GitHub, Google Drive и ChatGPT в действии

Level of difficultyMedium
Reading time9 min
Views6.3K

В жизни каждого студента наступает момент, когда необходимо написать выпускную квалификационную работу (ВКР). Бывшие выпускники говорят, что успех ВКР в значительной степени зависит от правильного оформления документации, в то время как основное содержание работы остается на втором плане. Но почему бы не внедрить автоматизированный процесс оформления, который соответствовал бы ГОСТам и внутренним стандартам университета, был бы удобен для проверки научному руководителю и позволял бы студенту сконцентрироваться на сути своего проекта ВКР? Вкратце, в процессе чтения вы узнаете, зачем и как внедрить LaTeX в ВКР, настроить отправку документов на Google Drive через Github Actions для отзыва научного руководителя и пользоваться LLM.

Читать далее

Оптическое выравнивание и пользовательские интерфейсы

Reading time16 min
Views43K


Привет, меня зовут Иван Греков, я работаю во фронтенд-команде Badoo, занимаюсь вёрсткой пользовательских интерфейсов на проектах компании.


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


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

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

Асинхронные микросервисы на Python

Level of difficultyEasy
Reading time8 min
Views17K

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

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

Читать далее

14 глаз против VPN: что нужно знать про то, как главные разведки мира совместно шпионят за пользователями

Reading time11 min
Views39K

«Пять глаз», «Девять глаз» и «Четырнадцать глаз» — это реально существующие международные альянсы по массовому наблюдению, включающие в себя, соответственно, 5, 9 и 14 западных стран, а также партнёрские страны-сателлиты. На основе соглашений в основе этих альянсов, спецслужбы развитых стран образуют единую машину слежения и контроля практически за любой коммуникационной активностью людей в их странах и по всему миру, включая все виды онлайн-коммуникаций.

Корнями эти альянсы уходят к секретному соглашению США и Великобритании об обмене сигнальной разведкой между странами-союзниками в годы Холодной войны. Это соглашение оставалось секретом для общественности до 2005 года, потому что один из методов альянса — помощь спецслужб друг другу в обходе законов своих стран: если законы одной страны не позволяют спецслужбам копаться в интернет-делах своих граждан, то выполнить грязную работу для них могут коллеги из другой страны. Например, спецслужбы Великобритании попались на использовании возможностей американского Агентства национальной безопасности (АНБ) для сбора данных о жителях Соединенного Королевства.

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

Читать далее

Что порой кроется за «успехом»

Level of difficultyEasy
Reading time9 min
Views43K

Хочу рассказать вам свой путь в поиске новой работы в 2023 году и поддержать тех, кто сейчас проходит через это. За 6 месяцев я собеседовался в 25 компаний, прошел 54 этапа (а какие-то не прошел), получил 2 оффера и в итоге один из них принял. Если вы сейчас в поиске работы, эта статья будет для вас глотком свежего воздуха. Если же вы матерый специалист, устраивающий процессы онбординга в своей компании, вам это может быть интересно с другой стороны.

Читать далее

Как получить визу таланта О-1 в США: требования, критерии, личный опыт

Level of difficultyMedium
Reading time11 min
Views21K

На сегодняшний день виза О-1 — это самый простой и надежный способ переехать в США для профессионалов. Получить ее намного проще, чем EB-1 или H1B, при этом нет привязки к работодателю и количество выдаваемых виз не квотируется государством, а процент одобрения сейчас на уровне 96% от всех поданных заявлений.

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views35K

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

Читать далее

Прекратите превращать программирование в религию (восклицательный знак)

Level of difficultyEasy
Reading time8 min
Views50K

Как вы меня задолбали, священники, святые отцы и монахи с кадилами. Сколько можно это терпеть? Я учился в университете, чтобы получить диплом по специальности, но вместо этого я получил пропуск в какую-то конспирологическую теоретическую секту.

Не верите?

Давайте я покажу вам.

«Я больше не могу найти работу» — истории карьерных неуспехов

Level of difficultyEasy
Reading time4 min
Views124K

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

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

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

Читать истории

Python декораторы на максималках. Универсальный рецепт по написанию и аннотированию от мала до велика

Level of difficultyMedium
Reading time13 min
Views61K

Декорирование функций - это, наверное, самая сложная среди базовых и самая простая среди продвинутых фич языка Python. С декораторами, наверное, знакомы все джуны (хотя бы в рамках подготовки к собеседованиям). Однако, крайне мало разработчиков пишут их правильно. Особенно принимая во внимания тенденции последних нескольких лет к аннотированию всего и вся. Даже популярные open-source проекты (если основная часть их кода была написана до 2018 года) вряд ли дадут вам примеры декораторов, отвечающих всем современным требованиям к коду.

Так давайте разбираться!

Материал полностью написан на основе моего опыта по работе над OSS проектами, поэтому в нем вы найдете примеры достаточно сложных кейсов, которые никогда не рассматриваются в других подобных гайдах. В то же время я постарался подвести к ним максимально "мягко", чтобы было понятно даже начинающим питонистам.

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

Давайте разбираться

Пожалуйста, чаще спрашивайте кандидата на собеседовании: «Зачем? Для чего?»

Level of difficultyEasy
Reading time9 min
Views30K

Поделюсь своими мыслями о том, как проходят интервью и что на них обсуждается. Подчеркну, что я буду рассуждать в проекции веб‑разработки, но, вероятно, это можно применить на любую область.

Оговорюсь сразу — у меня нет огромного опыта прохождения интервью: всего довелось присутствовать на 7–10. К этому добавляются интервью знакомых, которыми они поделились, а также те, что лежат на просторах интернета (например, на YouTube).

Читать далее

Автоматизация обеспечения качества кода на языке Python

Level of difficultyEasy
Reading time17 min
Views17K

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

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

Читать далее

Я бы пересмотрел вообще всё

Reading time4 min
Views78K

В программировании нет вообще никаких непреложных истин. Даже самые очевидные правила могут иметь контекст, в которых их применять нельзя. К сожалению в 99% организаций есть прям заповеди, обязательные к исполнению. И есть правила, которые считаются правилами хорошего тона (как не сморкаться в занавеску). Однако всегда бывают ситуации, когда лучше все-таки сморкаться.


Вот примеры.


1) Например, DRY — don’t repeat yourself. Хорошее полезное правило, но его можно довести до маразма. Из того что я встречал на практике: есть два разных по бизнес-смыслу раздела, которые начинались с простого CRUD, и многие части (и фронта и бека) выглядели во многом абсолютно одинаково. Если их объединить с помощью общей высосанной из пальца абстракции и тем самым избавиться от небольшого дублирования кода, то потом (очень скоро) можно будет сойти с ума, потому что эти две вещи скоро разъедутся, обрастая кастомными фичами, и абстракция будет только вредить. Нельзя абстрагировать неабстрагуемое, даже если DRY нарушен.


«[Немного] дублирования обходится гораздо дешевле, чем неправильная абстракция» — Сэнди Мец

Т.е. DRY — хороший принцип, но бывают исключения.

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

Ряд Фурье как Фильтр Нижних Частот

Level of difficultyEasy
Reading time4 min
Views9.4K

Обычно когда говорят про ряды Фурье вспоминают, что они показывают частоты в сигнале. Однако преобразование Фурье показывает также и фазу для каждой частоты.

При этом я ни разу не видел, чтобы на основе преобразования Фурье делали фильтры нижних частот, а ведь, справедливости ради, можно заметить что из преобразования Фурье можно сделать отличный фильтр нижних частот.

Читать далее

Вам нужно увеличить RAM и перейти на SSD…

Level of difficultyEasy
Reading time6 min
Views31K
…если вы всё ещё не сделали это.


Задумывались ли вы, хватает ли вашему компьютеру, локальному или удалённому серверу оперативной памяти? Задумывались, но не знаете, как это определить? А накопители какого типа вы предпочитаете? Надеемся, данная статья поможет вам в этом разобраться.
Читать дальше →

Первое доказательство невскрываемой стеганографии

Reading time4 min
Views9.3K


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

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

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

Все, что нужно знать об антивирусных сканерах

Level of difficultyEasy
Reading time2 min
Views13K

Недавно я хотел скачать с гитхаб файлы со своего первого репозитория ;) и внезапно оказалось, что Yandex brouser ругается, что они заражены вирусом.
 
 Не-не, дело не в гитхабе!

 Скачиваем репозиторий через Download.ZIP

Читать далее

Звериные алгоритмы: какими представителями животного мира вдохновлялись исследователи для создания алгоритмов

Level of difficultyEasy
Reading time16 min
Views8.5K

По мере развития технологий в мире появляется все больше различных технологических алгоритмов. Часть из названы в честь ученых, имеющих отношение к их разработке, другая часть имеет простые (или не очень простые) «сухие» названия или же забавные наименования, например, коктейльная сортировка (Cocktail shaker sort), в русском языке называемая просто — «сортировка перемешиванием». Сегодня поговорим про алгоритмы, названные в честь различных представителей животного мира.

Читать далее

Information

Rating
Does not participate
Registered
Activity