От Аристотеля до Тьюринга: простыми словами о функциональном программировании
Функциональное программирование (ФП) — это не магия, а способ организовать код через чистые функции, неизменяемость и композицию, без побочных эффектов. И, знаете, когда начинают речь о монадах и функторax, многие теряются.
В этой статье автор объясняет, почему функциональный подход — это не про заумные термины и мракобесие, а про чистоту, понятность и чёткие правила. Причём делает это без пафоса и ненужной теории — с понятными примерами, метафорами и парой неожиданных исторических отсылок.
Если вам давно хотелось разобраться, что за зверь этот ФП и зачем он вообще в современных проектах — вот отличный шанс.
Используете ФП в своей работе или предпочитаете ООП?
#функциональноепрограммирование
Функциональное программирование (ФП) — это не магия, а способ организовать код через чистые функции, неизменяемость и композицию, без побочных эффектов. И, знаете, когда начинают речь о монадах и функторax, многие теряются.
В этой статье автор объясняет, почему функциональный подход — это не про заумные термины и мракобесие, а про чистоту, понятность и чёткие правила. Причём делает это без пафоса и ненужной теории — с понятными примерами, метафорами и парой неожиданных исторических отсылок.
Если вам давно хотелось разобраться, что за зверь этот ФП и зачем он вообще в современных проектах — вот отличный шанс.
Используете ФП в своей работе или предпочитаете ООП?
#функциональноепрограммирование
Как из России опубликовать приложение в App Store и Google Play
Сейчас, когда российским разработчикам стало куда сложнее выходить на международные площадки, вопрос «как всё-таки выкатить своё приложение в App Store и Google Play» звучит как никогда актуально.
Здесь пошагово разобрано, как пройти весь процесс публикации: от создания аккаунтов разработчика и оплаты комиссии — до обхода новых ограничений и поиска посредников, если потребуется. Автор предупреждает о подводных камнях и даёт рабочие советы, чтобы не потерять время и деньги впустую.
#mobidev #appstore #googleplay
Сейчас, когда российским разработчикам стало куда сложнее выходить на международные площадки, вопрос «как всё-таки выкатить своё приложение в App Store и Google Play» звучит как никогда актуально.
Здесь пошагово разобрано, как пройти весь процесс публикации: от создания аккаунтов разработчика и оплаты комиссии — до обхода новых ограничений и поиска посредников, если потребуется. Автор предупреждает о подводных камнях и даёт рабочие советы, чтобы не потерять время и деньги впустую.
#mobidev #appstore #googleplay
Где учиться на проджекта или продакта в 2025 — подборка курсов для начинающих
Если вы давно хотите войти в IT, но не кодить, а управлять продуктами и командами — самое время посмотреть на направления проджект‑ и продакт‑менеджмента.
В этой статье мы собрали лучшие курсы 2025 года для новичков, где дают не только теорию, но и практику на реальных кейсах.
#курсы #продакт #проджект
Если вы давно хотите войти в IT, но не кодить, а управлять продуктами и командами — самое время посмотреть на направления проджект‑ и продакт‑менеджмента.
В этой статье мы собрали лучшие курсы 2025 года для новичков, где дают не только теорию, но и практику на реальных кейсах.
#курсы #продакт #проджект
Forwarded from Zen of Python
__init__.py
в Python: зачем он нужен и как с ним работатьФайл
__init__.py
играет ключевую роль в функционировании модулей и пакетов. В этой посте разберём, зачем нужен этот файл, как его использовать, и какие трюки можно с ним провернуть.__init__.py
используется для обозначения директории как пакета Python. Пакет — это просто каталог, содержащий код, который можно импортировать. До Python 3.3 файл __init__.py
был обязателен для того, чтобы Python распознавал директорию как пакет. Начиная с Python 3.3, это уже не строго обязательно благодаря PEP 420, который ввёл поддержку 'implicit namespace packages'.Тем не менее,
__init__.py
всё ещё активно используется, потому что он позволяет:— Настроить импорты, переменные окружения и т.д.;
— Реализовать алиасы и проксировать импорты;
— Управлять логикой и поведением при импорте.
Пример: простой пакет с
__init__.py
my_package/
├── __init__.py
├── module1.py
└── module2.py
В
__init__.py
можно явно указать, какие модули экспортируются:
from .module1 import func1
from .module2 import func2
__all__ = ['func1', 'func2']
Теперь из внешнего кода можно написать:
from my_package import func1, func2
И это сработает — благодаря тому, что
__init__.py
делает интерфейс «плоским».Что можно писать в
__init__.py
Всё, что угодно — это обычный Python-скрипт. Вот что часто в нём делают:
1. Инициализация логики:
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
2. Упрощение структуры:
# Вместо длинного:
from my_package.module1.submodule import ClassA
# можно:
from my_package import ClassA
И в
__init__.py
:
from .module1.submodule import ClassA
3. Версионирование:
__version__ = "1.0.0"
4. Работа с абсолютными и относительными импортами:
Python различает абсолютные и относительные импорты. Благодаря
__init__.py
, относительные импорты типа from . import module1
работают корректно.Когда
__init__.py
не нуженPEP 420 ввёл концепцию namespace packages — это директории без
__init__.py
, которые Python всё равно распознаёт как пакеты. Это удобно, когда вы хотите:— Распределить один пакет между несколькими каталогами (например, для плагинной архитектуры);
— Избежать необходимости в поддержке пустых
__init__.py
.Пример:
project/
├── pkg/
│ └── subpkg1/
│ └── a.py
└── other/
└── pkg/
└── subpkg2/
└── b.py
Если в
pkg/
нет __init__.py
, Python объединит содержимое в один namespace package. Когда
__init__.py
обязателен— При тестировании и использовании
pytest
(некоторые тест-раннеры не обнаруживают модули без `__init__.py`);— При работе с устаревшими инструментами;
— При построении плоского интерфейса пакета;
— Для поддержки специфичных путей и логики импорта.
#основы
Python Enhancement Proposals (PEPs)
PEP 420 – Implicit Namespace Packages | peps.python.org
Namespace packages are a mechanism for splitting a single Python package across multiple directories on disk. In current Python versions, an algorithm to compute the packages __path__ must be formulated. With the enhancement proposed here, the import ...
✍2❤2
new Date("wtf") — квиз по датам, который взорвёт вам мозг
Если вы хоть раз пытались работать с датами в JavaScript, то уже знаете — там творится какая‑то магия и абсурд вперемешку. Именно об этом и напоминает этот квиз.
Он предлагает вам проверить (и заодно посмеяться над) своим знанием (или незнанием) того, как JavaScript работает с датами и временем. Здесь странные кейсы и неожиданные результаты. Будет и полезно, и весело — особенно если вы уже пару раз рвали волосы из‑за Date.
Попробуйте пройти и проверьте: кто вы — мастер календарей или жертва часовых поясов.
#javascript #квиз
Если вы хоть раз пытались работать с датами в JavaScript, то уже знаете — там творится какая‑то магия и абсурд вперемешку. Именно об этом и напоминает этот квиз.
Он предлагает вам проверить (и заодно посмеяться над) своим знанием (или незнанием) того, как JavaScript работает с датами и временем. Здесь странные кейсы и неожиданные результаты. Будет и полезно, и весело — особенно если вы уже пару раз рвали волосы из‑за Date.
Попробуйте пройти и проверьте: кто вы — мастер календарей или жертва часовых поясов.
#javascript #квиз
❤3👍1
Что такое <!DOCTYPE> и зачем он нужен
Для начала, стоит разобрать, что такое quirks mode и standards mode.
Quirks Mode (режим совместимости) — это режим работы веб-браузеров, который сознательно симулируют множество багов старых браузеров. Этот режим необходим для поддержки сайтов, созданных до начала широкого применения веб стандартов.
Standards Mode (стандартный режим) — это режим, при котором поведение браузера соответствует описанному в спецификациях HTML и CSS. Этот режим используется во всех современных браузерах.
Вернемся к доктайпу.
<!DOCTYPE html> — это описание типа документа, которое позволяет браузеру понять, какую версию html следует использовать. Поставьте его первой строчкой HTML-документа, и браузер обработает страницу правильно, в стандартном режиме. Без него браузер переключается в режим совместимости со старым кодом.
Если сравнивать HTML с устройством человека, то <!DOCTYPE> — это его вид. Важно знать, что было раньше, но стоит быть австралопитеком. Единственный вариант, который можно использовать — это <!DOCTYPE html>, все остальные устарели.
#html #простымисловами
Для начала, стоит разобрать, что такое quirks mode и standards mode.
Quirks Mode (режим совместимости) — это режим работы веб-браузеров, который сознательно симулируют множество багов старых браузеров. Этот режим необходим для поддержки сайтов, созданных до начала широкого применения веб стандартов.
Standards Mode (стандартный режим) — это режим, при котором поведение браузера соответствует описанному в спецификациях HTML и CSS. Этот режим используется во всех современных браузерах.
Вернемся к доктайпу.
<!DOCTYPE html> — это описание типа документа, которое позволяет браузеру понять, какую версию html следует использовать. Поставьте его первой строчкой HTML-документа, и браузер обработает страницу правильно, в стандартном режиме. Без него браузер переключается в режим совместимости со старым кодом.
Если сравнивать HTML с устройством человека, то <!DOCTYPE> — это его вид. Важно знать, что было раньше, но стоит быть австралопитеком. Единственный вариант, который можно использовать — это <!DOCTYPE html>, все остальные устарели.
#html #простымисловами
❤3🤔1
ML Visualized — машинное обучение на пальцах, в интерактиве
Если вам всегда казалось, что машинное обучение — это сплошная математика и загадочные формулы, этот учебник‑тренажёр докажет обратное. ML Visualized объясняет ключевые концепции ML так, что их можно буквально «пощупать» и сразу увидеть результат.
На экране — интерактивные визуализации: вы меняете параметры, подбираете веса, двигаете точки — и смотрите, как меняется модель. Всё это помогает понять, что именно происходит «под капотом» у линейной регрессии, деревьев решений, градиентного бустинга и других алгоритмов.
Отличный инструмент как для новичков, которые хотят разобраться без зубрёжки, так и для тех, кто уже знаком с ML.
#ml #обучение
Если вам всегда казалось, что машинное обучение — это сплошная математика и загадочные формулы, этот учебник‑тренажёр докажет обратное. ML Visualized объясняет ключевые концепции ML так, что их можно буквально «пощупать» и сразу увидеть результат.
На экране — интерактивные визуализации: вы меняете параметры, подбираете веса, двигаете точки — и смотрите, как меняется модель. Всё это помогает понять, что именно происходит «под капотом» у линейной регрессии, деревьев решений, градиентного бустинга и других алгоритмов.
Отличный инструмент как для новичков, которые хотят разобраться без зубрёжки, так и для тех, кто уже знаком с ML.
#ml #обучение
Hack Frontend: тренируйтесь для собеседования с огоньком
Если вы мечтаете прокачать фронтенд‑скиллы и спокойно заходить на тех‑интервью — обратите внимание на Hack Frontend. Это платформа, где вы сможете отточить навыки и подготовиться к успешному собеседованию.
Что внутри:
— Современный фронтенд‑стек и лучшие практики.
— Задания, которые реальнее всего встретить на интервью.
— Построено для реализации — вы сразу тренируетесь на реальных примерах, не просто читаете теорию.
#фронтенд #тренажер #javascript
Если вы мечтаете прокачать фронтенд‑скиллы и спокойно заходить на тех‑интервью — обратите внимание на Hack Frontend. Это платформа, где вы сможете отточить навыки и подготовиться к успешному собеседованию.
Что внутри:
— Современный фронтенд‑стек и лучшие практики.
— Задания, которые реальнее всего встретить на интервью.
— Построено для реализации — вы сразу тренируетесь на реальных примерах, не просто читаете теорию.
#фронтенд #тренажер #javascript
Hack Frontend
Hack Frontend — платформа для подготовки к собеседованиям по фронтенд-разработке. Изучайте теорию, решайте задачи и готовьтесь к успешному собеседованию. Подготовка к фронтенд собеседованию
❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Система анализа событий в реальном времени
Новая фича обнаружена в приложении Лиги Ставок — микробеттинг. До появления этого механизма в российских беттинговых приложениях ставить на следующее событие в реальном времени было невозможно, а его внедрение, вероятно, потребовало значительных инвестиций в разработку.
Фактически они преобразовали спортивную трансляцию в 20-секундные интервалы, где пользователь может делать ставки на: назначение штрафного, забитый гол, удар с углового, пенальти или владение мячом.
Фича работает так: например, пользователь смотрит футбольную трансляцию в приложении и ставит на то, что следующее событие — угловой. Система отправляет ставку на расчёт, а через пару секунд (учитывая задержку трансляции) расчёт проходит автоматически: если первым событием в реальном времени был, например, фол, то ставка проигрывает. И как только трансляция «догоняет» этот момент, пользователь своими глазами видит итог и может сразу сделать следующее «предсказание».
Похоже, что внедрение микробеттинга перекликается с тем, что пользователи уже давно привыкли к короткому контенту. Такой подход помогает удержать внимание в условиях постоянного дефицита времени и переключения между множеством источников информации. Осталось только узнать, как они это реализовали.
Новая фича обнаружена в приложении Лиги Ставок — микробеттинг. До появления этого механизма в российских беттинговых приложениях ставить на следующее событие в реальном времени было невозможно, а его внедрение, вероятно, потребовало значительных инвестиций в разработку.
Фактически они преобразовали спортивную трансляцию в 20-секундные интервалы, где пользователь может делать ставки на: назначение штрафного, забитый гол, удар с углового, пенальти или владение мячом.
Фича работает так: например, пользователь смотрит футбольную трансляцию в приложении и ставит на то, что следующее событие — угловой. Система отправляет ставку на расчёт, а через пару секунд (учитывая задержку трансляции) расчёт проходит автоматически: если первым событием в реальном времени был, например, фол, то ставка проигрывает. И как только трансляция «догоняет» этот момент, пользователь своими глазами видит итог и может сразу сделать следующее «предсказание».
Похоже, что внедрение микробеттинга перекликается с тем, что пользователи уже давно привыкли к короткому контенту. Такой подход помогает удержать внимание в условиях постоянного дефицита времени и переключения между множеством источников информации. Осталось только узнать, как они это реализовали.
❤3🔥2⚡1👏1
Как прокачать свой профессиональный образ перед выходом на рынок IT в 2025
Рынок IT нынче диктует свои правила — конкуренция высокая, отклики редки, и использовать только код и опыт недостаточно. В этой статье вы узнаете, как перейти от «отправил резюме и молюсь» к продуманной, чёткой стратегии продвижения себя как профессионала.
Пошагово: обновление резюме под ATS, работа над профилью в LinkedIn и Telegram, настройка публичных репозиториев с понятными описаниями, наращивание полезных связей, и даже тренировка через AI-инструменты перед интервью. Всё без воды, только реальные действия.
#карьера
Рынок IT нынче диктует свои правила — конкуренция высокая, отклики редки, и использовать только код и опыт недостаточно. В этой статье вы узнаете, как перейти от «отправил резюме и молюсь» к продуманной, чёткой стратегии продвижения себя как профессионала.
Пошагово: обновление резюме под ATS, работа над профилью в LinkedIn и Telegram, настройка публичных репозиториев с понятными описаниями, наращивание полезных связей, и даже тренировка через AI-инструменты перед интервью. Всё без воды, только реальные действия.
#карьера
Почему «белых хакеров» зовут искать баги и платят за это
Слышали про людей, которым недостатки чужого кода приносят премии, а не бан? В статье рассказали кто такие этичные хакеры, как они спасают проекты и почему компании сами зовут их проверить защиту. Плюс честный рассказ эксперта о закулисье профессии и первые шаги для новичков.
А вы попробовали бы себя в такой роли?
#безопасность #хакинг
Слышали про людей, которым недостатки чужого кода приносят премии, а не бан? В статье рассказали кто такие этичные хакеры, как они спасают проекты и почему компании сами зовут их проверить защиту. Плюс честный рассказ эксперта о закулисье профессии и первые шаги для новичков.
А вы попробовали бы себя в такой роли?
#безопасность #хакинг
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Как работает токен, сессия, JWT, SSO, OAuth2 и QR-код?
Зачастую при ходе на сайт, возникает необходимость управления вашей учетной записью.
Сессия — сервер сохраняет учетную запись и передает браузеру файл cookie с идентификатором сеанса, что позволяет отслеживать состояние входа в систему. Файлы cookie не работают на разных устройствах.
JWT — веб-токены JSON стандартизируют токены идентификации, используя цифровые подписи для проверки подлинности. Подпись содержится в токене, поэтому сеанс сервера не требуется.
Токен — учетная запись закодирована в токене, отправленном в браузер. Браузер отправляет этот токен при будущих запросах аутентификации. Требуется шифрование и дешифрование.
SSO — система единого входа, использует центральную службу аутентификации, что позволяет одному логину работать на нескольких сайтах.
OAuth2 — разрешает ограниченный доступ к вашим данным на одном сайте другому сайту без разглашения паролей.
#безопасность #простымисловами
Зачастую при ходе на сайт, возникает необходимость управления вашей учетной записью.
Сессия — сервер сохраняет учетную запись и передает браузеру файл cookie с идентификатором сеанса, что позволяет отслеживать состояние входа в систему. Файлы cookie не работают на разных устройствах.
JWT — веб-токены JSON стандартизируют токены идентификации, используя цифровые подписи для проверки подлинности. Подпись содержится в токене, поэтому сеанс сервера не требуется.
Токен — учетная запись закодирована в токене, отправленном в браузер. Браузер отправляет этот токен при будущих запросах аутентификации. Требуется шифрование и дешифрование.
SSO — система единого входа, использует центральную службу аутентификации, что позволяет одному логину работать на нескольких сайтах.
OAuth2 — разрешает ограниченный доступ к вашим данным на одном сайте другому сайту без разглашения паролей.
#безопасность #простымисловами
❤1
Привет, на связи Tproger!
Мы хотим лучше понять нашу аудиторию и её интересы. Помогите нам — пройдите небольшой опрос по ссылке.
Спасибо и отличного дня!
Мы хотим лучше понять нашу аудиторию и её интересы. Помогите нам — пройдите небольшой опрос по ссылке.
Спасибо и отличного дня!
Forwarded from Метод утёнка
«Scrum-то какой!» — почему программисты не всегда в восторге от спринтов
Agile и Scrum давно стали стандартом, но на практике спринты часто критикуют — не из-за методологии, а из-за того, как они внедряются .
Автор статьи рассказал, что постановка спринтов по книге — это ещё не гарантия успеха. Когда команды буквально следуют коробочному Scrum, процветают торопливость, перегрузка формальностями и потеря фокуса на продукте. А ещё показал примеры компаний, которым помог не отказ от Agile, а изменение подхода специально под их ситуации.
#agile #scrum #команда
Agile и Scrum давно стали стандартом, но на практике спринты часто критикуют — не из-за методологии, а из-за того, как они внедряются .
Автор статьи рассказал, что постановка спринтов по книге — это ещё не гарантия успеха. Когда команды буквально следуют коробочному Scrum, процветают торопливость, перегрузка формальностями и потеря фокуса на продукте. А ещё показал примеры компаний, которым помог не отказ от Agile, а изменение подхода специально под их ситуации.
#agile #scrum #команда
8 полезных Telegram-каналов о нейросетях и промптинге
Если вы устали шарить по всему интернету в поисках свежих инсайтов про ИИ, то в этой подборке мы собрали самые годные русскоязычные каналы — от гайдовых постов до примеров промптов для ChatGPT. Всё, чтобы быстро прокачивать навыки и быть в курсе новинок.
#ии
Если вы устали шарить по всему интернету в поисках свежих инсайтов про ИИ, то в этой подборке мы собрали самые годные русскоязычные каналы — от гайдовых постов до примеров промптов для ChatGPT. Всё, чтобы быстро прокачивать навыки и быть в курсе новинок.
#ии
Приватность данных: как не нарваться на проблемы разработчику
Казалось бы, гонитесь за фичами, хотите сделать красивый быстрый сайт, но тут всплывают законы и правила обработки данных...
В статье — коротко о том, что следует знать разработчику в 2025 о приватности, какие грабли чаще всего встречаются и как защитить проект (и нервы) заранее.
#безопасность
Казалось бы, гонитесь за фичами, хотите сделать красивый быстрый сайт, но тут всплывают законы и правила обработки данных...
В статье — коротко о том, что следует знать разработчику в 2025 о приватности, какие грабли чаще всего встречаются и как защитить проект (и нервы) заранее.
#безопасность
🔥1
Порой начинающим разработчикам не хватает человека, который понятно объяснит и направит траекторию обучения в нужное русло
Поэтому на старте так важно найти место, где упор сделан только на вас.
— Место, где вы получите ответы на свои регулярные вопросы
— Место, где вас поймут и помогут
Если вы только начинаете свой путь в Go и чувствуете, что вам не хватает опыта, понимания и практики, то вам однозначно в канал к Роме — Go-разработчику и по совместительству ментору.
В канале вы встретите объяснения популярных ошибок, много практики, и разборы разных тем. Например, разбор написания первого микросервиса на Go.
Подписывайтесь на канал по Go-разработке:
https://t.iss.one/go_level_up
Это #партнёрский пост
Поэтому на старте так важно найти место, где упор сделан только на вас.
— Место, где вы получите ответы на свои регулярные вопросы
— Место, где вас поймут и помогут
Если вы только начинаете свой путь в Go и чувствуете, что вам не хватает опыта, понимания и практики, то вам однозначно в канал к Роме — Go-разработчику и по совместительству ментору.
В канале вы встретите объяснения популярных ошибок, много практики, и разборы разных тем. Например, разбор написания первого микросервиса на Go.
Подписывайтесь на канал по Go-разработке:
https://t.iss.one/go_level_up
Это #партнёрский пост
👍1🤯1😱1
Как устроено ядро операционной системы
Сегодня отмечается день системного администратора! Мы поздравляем всех причастных и в честь праздника предлагаем вам сегодня познакомиться не только с созданием ПО, но и с тем, за счёт чего это ПО можно запускать.
Ядро в операционной системе — это её сердце, невидимый, но жизненно важный слой, который обеспечивает работу всего: от приложений до оборудования. В этом видео вы узнаете:
— что такое ядро на самом деле;
— как оно управляет временем ЦП, памятью, файлами и «железом»;
— в чём разница между монолитным и микроядром;
— почему инженеры до сих пор помешаны на проектировании ядер;
— где ещё встречаются «ядра» — например, в GPU и квантовых вычислениях.
#видео
Сегодня отмечается день системного администратора! Мы поздравляем всех причастных и в честь праздника предлагаем вам сегодня познакомиться не только с созданием ПО, но и с тем, за счёт чего это ПО можно запускать.
Ядро в операционной системе — это её сердце, невидимый, но жизненно важный слой, который обеспечивает работу всего: от приложений до оборудования. В этом видео вы узнаете:
— что такое ядро на самом деле;
— как оно управляет временем ЦП, памятью, файлами и «железом»;
— в чём разница между монолитным и микроядром;
— почему инженеры до сих пор помешаны на проектировании ядер;
— где ещё встречаются «ядра» — например, в GPU и квантовых вычислениях.
#видео
RUTUBE
Ядро в операционной системе Скрытая мощь, управляющая каждым компьютером!
📌 Мы в телеграм https://t.iss.one/i_odmin и в https://vk.com/i_odmin
Ядро в операционной системе — это её сердце, невидимый, но жизненно важный слой, который обеспечивает работу всего: от приложений до оборудования.
В этом разборе я объясню:
✅ Что такое ядро…
Ядро в операционной системе — это её сердце, невидимый, но жизненно важный слой, который обеспечивает работу всего: от приложений до оборудования.
В этом разборе я объясню:
✅ Что такое ядро…