Search
Write a publication
Pull to refresh
3
0.1
Send message

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Level of difficultyHard
Reading time8 min
Views18K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

Сегодня я хочу рассказать, как на самом деле работают переменные в CPython.

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее

Почему я предпочитаю исключения, а не значения ошибок

Level of difficultyMedium
Reading time11 min
Views26K

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

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

Давайте рассмотрим пример, в котором применено защищённое от ошибок целочисленное деление:

int safeDiv(int a, int b) {
   if (b == 0)
      throw Div0(); // Исключения передаются особым образом
   return a / b; // Теперь-то всё абсолютно безопасно, ведь так?
}

Новые языки программирования склонны применять сообщения об ошибках в функциональном стиле и кодировать ошибки в возвращаемый тип. Например, Go кодирует ошибку в возвращаемый тип при помощи кортежа (res, err), а Rust возвращает Result<T, E> — тип-сумму результата и ошибки.
Читать дальше →

Unity для детей: топ-25 бесплатных видеоуроков

Level of difficultyEasy
Reading time10 min
Views11K

Собрали видеоуроки по Unity для детей 10 лет и старше: от создания простой анимации до разработки небольших игр.

Unity — это игровой движок, который позволяет создавать компьютерные игры и приложения. На нем созданы такие игры, как Slender: The Arrival, РПГ Shadowrun Returns, одна из самых красочных игр прошлого десятилетия Ori and the Blind Forest, Outer Wilds и другие. Несмотря на то, что платформа используется профессиональными разработчиками, в качестве обучения детей «Юнити» подходит отлично, поскольку в процессе развиваются не только технические навыки и умение кодить на С#, но и множество других важных компетенций.

Читать далее

Администрирование PostgreSQL для начинающих (часть 1)

Level of difficultyEasy
Reading time33 min
Views29K

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

Читать далее

Необычные приёмы отладки, которые браузер от вас скрывает

Level of difficultyMedium
Reading time8 min
Views19K

Список неочевидных, но при этом полезных хаков, которые позволят использовать отладчик вашего браузера1 более полноценно. Для понимания материала статьи потребуется как минимум средний уровень владения инструментами разработчика.
Читать дальше →

Auth service без библиотек

Level of difficultyMedium
Reading time8 min
Views13K

О чем эта статья: статья посвящена схемам регистрации, аутентификации, авторизации пользователей в веб приложениях, смене паролей, отзыве токенов, и т. п. Мы также рассмотрим, как организовать хранение данных, обсудим, что такое JWT, коротко поговорим о «сервисе для отправки email»

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

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

Читать далее

План действий на 2024 для UX/UI-дизайнера и ссылки на статьи

Level of difficultyEasy
Reading time6 min
Views9.4K

UI/UX-дизайн — это перспективная сфера деятельности, которая удачно сочетает творческий подход и аналитическое мышление. Профессиональные дизайнеры UI/UX разрабатывают визуально привлекательные интерфейсы, делая их при этом удобными и интуитивно понятными.

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

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 5

Level of difficultyMedium
Reading time26 min
Views5.4K


Привет, друзья!


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



Сегодня мы рассмотрим систему непересекающихся множеств, фильтр Блума и кэш актуальных данных.


Код, представленный в этой и других статьях серии, можно найти в этом репозитории.


Интересно? Тогда прошу под кат.

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

Подробно про JWT

Level of difficultyMedium
Reading time6 min
Views49K

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

Читать далее

Хранение данных в Postgresql

Level of difficultyMedium
Reading time10 min
Views23K

В этом тексте хочется подробнее рассмотреть хранение данных в PostgreSQL на физическом уровне.

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

Подробнее под катом

Неизвестно полезный CSS. Часть 4

Level of difficultyMedium
Reading time6 min
Views10K


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах.


Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

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

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

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

Как в Netflix сделали поиск по федеративному графу

Reading time11 min
Views2.3K

За последние несколько лет те, кто занимается в Netflix направлением Content Engineering, перевели множество служб компании на использование федеративной платформы GraphQL. Этот процесс продолжается и сегодня. Применение федерации GraphQL даёт командам, отвечающим за различные предметные области, новые возможности. Теперь они могут, независимо от других команд, создавать и использовать собственные графовые службы, относящихся к сфере их деятельности (Domain Graph Service, DGS). Команды, кроме того, могут связывать свои предметные области с другими областями в унифицированной схеме GraphQL, доступ к которой даёт федеративный шлюз.

Давайте, в качестве примера, рассмотрим три главнейшие сущности этого графа.

Читать далее

Как вкусно приготовить «Сельдерей» (Celery)

Level of difficultyHard
Reading time8 min
Views5.5K

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

Читать далее

PostgreSQL 16. Страницы и версии строк. Часть 3

Level of difficultyMedium
Reading time10 min
Views6.8K

Данная статья является продолжением: PostgreSQL 16. Изоляция транзакций. Часть 2.

В этой части мы рассмотрим, из каких частей состоит страница в PostgreSQL, как выполняются операции CRUD (создание, чтение, обновление, удаление) для строк с сохранением нескольких версий одной и той же строки в таблице и как на это влияют транзакции. Также рассмотрим вложенные транзакции.

Читать далее

Как извлечь пользу из статической типизации

Reading time29 min
Views16K

Эта статья о том, как извлечь максимум пользы из статической системы типов при дизайне вашего кода. Статья пытается быть language agnostic (получается не всегда), примеры на Java и взяты из жизни.

Читать далее

Стать программистом: не с нуля не до профи (Flutter и не только)

Level of difficultyMedium
Reading time46 min
Views6.5K

Как найти первую работу в IT? Что нужно знать для этого? На сколько это вообще сложно?

Обо всём по-подробнее здесь.

Читать далее

Чтение на выходные: «Принципы изменения мирового порядка. Почему одни нации побеждают, а другие терпят поражение»

Level of difficultyEasy
Reading time3 min
Views3.1K

Рэй Далио — американский финансист и инвестор, основатель одного из самых крупных в мире хедж-фондов Bridgewater Associates. Он регулярно входит в списки 100 самых влиятельных людей в мире по версии журнала Time и 50 самых щедрых благотворителей в США по версии Forbes. Автор ряда книг об успехе, бизнесе и финансах.

Читать далее

Как я превратил обычный бизнес в IT компанию, читая книги

Level of difficultyEasy
Reading time14 min
Views10K

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

Я готовился к настоящему валу звонков, ведь никто ничего похожего не предлагал.

Казалось бы, что могло пойти так?

Мем айсберг SQL: погружение в глубины баз данных

Level of difficultyMedium
Reading time53 min
Views23K

Мем айсберг SQL: погружение в глубины изучения баз данных

Мем айсберг SQL — это вирусное интернет-изображение, изображающее айсберг с несколькими слоями. Вершина айсберга содержит общеизвестные концепции и инструменты SQL, такие как операторы SELECT и JOIN. Однако по мере погружения под воду становятся видны более абсурдные и малоизвестные аспекты SQL.

Читать далее

Как мыслить нестандартно. Топ-5 книг для развития креативности и интуиции

Reading time2 min
Views21K

Привет, Хабр! Я бизнес-тренер в ОТП Банке. И моя новая статья посвящена книгам про мышление. Решила выделить топ-5, но их, конечно, больше. Если есть, что добавить в этот список – кидайте в комментарии, буду очень благодарна. О хороших книгах должны знать все:)

Пополнить багаж знаний

Information

Rating
5,811-th
Registered
Activity