Что получим при запуске кода?
Anonymous Quiz
26%
SyntaxError
7%
None
15%
<function <lambda> at …>
52%
42
👍9🔥2🙏2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Google снова уронили на нас ИИ-помощника. Прямо в терминал.
Знакомьтесь,
Что тут интересного:
1️⃣ Это бесплатно. Доступно 1000 запросов в день (и 60 в минуту).Ни OpenAI, ни Claude такой щедрости не показывают.
2️⃣ Под капотом Gemini. То есть в код умеет, можно сказать, лучше всех, а контекст — 1 млн токенов. Влезет почти любой ваш проектик.
3️⃣ Умеет в файлы и поиск. Может проанализировать код в директории, сгенерить приложение по PDF или наброску, да и просто в Google сходить за свежей инфой.
4️⃣ Интеграция с внешними тулами. Через MCP-серверы можно прикрутить генерацию картинок (Imagen), видео (Veo) и вообще что угодно.
Конечно, как и всё модное в этом мире, написано на Node.js 🌚. Так что для запуска сначала убедитесь, что он у вас стоит.
Запускается одной командой:
Все! Помощник запустится и попросит вас войти в ваш Google-аккаунт. Пробуем 🐸
Знакомьтесь,
Gemini CLI
— бесплатный и, судя по всему, довольно мощный AI-агент, который живёт прямо в командной строке.Что тут интересного:
1️⃣ Это бесплатно. Доступно 1000 запросов в день (и 60 в минуту).
2️⃣ Под капотом Gemini. То есть в код умеет, можно сказать, лучше всех, а контекст — 1 млн токенов. Влезет почти любой ваш проектик.
3️⃣ Умеет в файлы и поиск. Может проанализировать код в директории, сгенерить приложение по PDF или наброску, да и просто в Google сходить за свежей инфой.
4️⃣ Интеграция с внешними тулами. Через MCP-серверы можно прикрутить генерацию картинок (Imagen), видео (Veo) и вообще что угодно.
Конечно, как и всё модное в этом мире, написано на Node.js 🌚. Так что для запуска сначала убедитесь, что он у вас стоит.
Запускается одной командой:
npx https://github.com/google-gemini/gemini-cli
Все! Помощник запустится и попросит вас войти в ваш Google-аккаунт. Пробуем 🐸
👍18🙏1
Всё, ребята, допрограммировались 😔
Тут сервис знакомств Mamba подвёз исследование с такими результатами: IT-специалисты больше не самые завидные женихи в России. Хайп прошёл, пора возвращаться в реальный мир.
Сухие цифры:
▫️ В 2023 году 72% россиянок хотели замуж за айтишника.
▫️ Сегодня таких осталось всего 27%.
▫️ 45% женщин уже не верят в стереотип об «идеальном муже-программисте».
▫️ Аргумент против: «доход хороший, но слишком уж привязан к своему компьютеру».
А кто теперь в топе? Врачи (43%) и стоматологи (38%). Потому что «ответственность» и «золотые руки»🤘🏻
А по одобрению родителей айтишники оказались где-то между спасателями и музыкантами, почти на дне. Лишь 3% девушек уверены, что мама будет гордиться зятем, «который работает с компьютерами».
Во врачи через курсы уже не попасть 🌝
Тут сервис знакомств Mamba подвёз исследование с такими результатами: IT-специалисты больше не самые завидные женихи в России. Хайп прошёл, пора возвращаться в реальный мир.
Сухие цифры:
▫️ В 2023 году 72% россиянок хотели замуж за айтишника.
▫️ Сегодня таких осталось всего 27%.
▫️ 45% женщин уже не верят в стереотип об «идеальном муже-программисте».
▫️ Аргумент против: «доход хороший, но слишком уж привязан к своему компьютеру».
А кто теперь в топе? Врачи (43%) и стоматологи (38%). Потому что «ответственность» и «золотые руки»🤘🏻
А по одобрению родителей айтишники оказались где-то между спасателями и музыкантами, почти на дне. Лишь 3% девушек уверены, что мама будет гордиться зятем, «который работает с компьютерами».
Во врачи через курсы уже не попасть 🌝
РИА Новости
Исследование показало, кого россиянки считают лучшим кандидатом в мужья
IT-специалисты уже не так востребованы у девушек в качестве кандидатов в супруги, интерес к ним попадает: теперь в "фаворитах" врачи и стоматологи, выяснили для РИА Новости, 26.06.2025
😁22🔥3😢3 2🌚1 1 1
Google обновили модель, которая влезет даже в ваш смартфон 📱
Gemma 3n — компактная мультимодальная модель, созданная для работы прямо на устройствах.
Версия E4B стала первой моделью в категории "до 10 млрд параметров", которая набрала больше 1300 на LMArena. Неплохо для малютки.
Что в ней интересного👇🏻
▫️Работает на вашем железе. Модели требуют всего 2-3 ГБ памяти. Это значит — никаких облаков, API-ключей и платных подписок. Можно пилить фичи, которые будут работать оффлайн и не будут сливать код пользователя на сторонние сервера. Приватность, все дела.
▫️Гибкая архитектура "Матрёшка" (MatFormer). Из одной большой модели (E4B) можно достать модель поменьше (E2B), которая будет работать в 2 раза быстрее. Или даже нарезать кастомный размер под свои нужды.
▫️Улучшения в программировании и логике. Заявляют, что прокачали модель в математике, рассуждениях и в написании кода.
▫️Готовые интеграции. Модель уже поддерживается в Hugging Face Transformers, llama.cpp, Ollama, MLX и куче других инструментов.
Я уже вижу, как это можно вкрутить в IDE для локального автокомплита или в какой-нибудь мобильный клиент для анализа скриншотов с кодом😏
Где пощупать:
👉🏻 Модели на Hugging Face
👉🏻 Поиграться в Google AI Studio
Gemma 3n — компактная мультимодальная модель, созданная для работы прямо на устройствах.
Версия E4B стала первой моделью в категории "до 10 млрд параметров", которая набрала больше 1300 на LMArena. Неплохо для малютки.
Что в ней интересного👇🏻
▫️Работает на вашем железе. Модели требуют всего 2-3 ГБ памяти. Это значит — никаких облаков, API-ключей и платных подписок. Можно пилить фичи, которые будут работать оффлайн и не будут сливать код пользователя на сторонние сервера. Приватность, все дела.
▫️Гибкая архитектура "Матрёшка" (MatFormer). Из одной большой модели (E4B) можно достать модель поменьше (E2B), которая будет работать в 2 раза быстрее. Или даже нарезать кастомный размер под свои нужды.
▫️Улучшения в программировании и логике. Заявляют, что прокачали модель в математике, рассуждениях и в написании кода.
▫️Готовые интеграции. Модель уже поддерживается в Hugging Face Transformers, llama.cpp, Ollama, MLX и куче других инструментов.
Я уже вижу, как это можно вкрутить в IDE для локального автокомплита или в какой-нибудь мобильный клиент для анализа скриншотов с кодом
Где пощупать:
👉🏻 Модели на Hugging Face
👉🏻 Поиграться в Google AI Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7 3 2⚡1🔥1🙏1
Есть такие тестовые, которые дочитать до конца – уже подвиг 🌚 А сделают его только самые упоротные 👇🏻
💳В Авито предлагали реализовать микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.
✍🏻Сценарии использования
Далее описаны несколько упрощенных кейсов приближенных к реальности.
1️⃣ Сервис биллинга с помощью внешних мерчантов (аля через visa/mastercard) обработал зачисление денег на наш счет. Теперь биллингу нужно добавить эти деньги на баланс пользователя.
2️⃣ Пользователь хочет купить у нас какую-то услугу. Для этого у нас есть специальный сервис управления услугами, который перед применением услуги проверяет баланс и потом списывает необходимую сумму.
3️⃣ В ближайшем будущем планируется дать пользователям возможность перечислять деньги друг-другу внутри нашей платформы. Мы решили заранее предусмотреть такую возможность и заложить ее в архитектуру нашего сервиса.
❕Требования к коду
🔸Фреймворки и библиотеки можно использовать любые
🔸Реляционная СУБД: MySQL или PostgreSQL
🔸Весь код должен быть выложен на Github с Readme файлом с инструкцией по запуску и примерами запросов/ответов (можно просто описать в Readme методы, можно через Postman, можно в Readme curl запросы скопировать, вы поняли идею...)
🔸Если есть потребность, можно подключить кеши (Redis) и/или очереди (RabbitMQ, Kafka)
🔸При возникновении вопросов по ТЗ оставляем принятие решения за кандидатом (в таком случае Readme файле к проекту должен быть указан список вопросов с которыми кандидат столкнулся и каким образом он их решил)
🔸Разработка интерфейса в браузере НЕ ТРЕБУЕТСЯ.
🔸Взаимодействие с API предполагается посредством запросов из кода другого сервиса. Для тестирования можно использовать любой удобный инструмент. Например: в терминале через curl или Postman.
➕Будет плюсом
▫️Использование docker и docker-compose для поднятия и развертывания dev-среды.
▫️Методы АПИ возвращают человеко-читабельные описания ошибок и соответствующие статус коды при их возникновении.
▫️Написаны unit/интеграционные тесты.
✔️Основное задание (минимум)
🔹Метод начисления средств на баланс. Принимает id пользователя и сколько средств зачислить.
🔹Метод списания средств с баланса. Принимает id пользователя и сколько средств списать.
🔹Метод перевода средств от пользователя к пользователю. Принимает id пользователя с которого нужно списать средства, id пользователя которому должны зачислить средства, а также сумму.
🔹Метод получения текущего баланса пользователя. Принимает id пользователя. Баланс всегда в рублях.
Думаете это всё? Продолжение ниже 👇🏻
#тестовое | 🍩 Поддержать канал 🫶
💳В Авито предлагали реализовать микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.
✍🏻Сценарии использования
Далее описаны несколько упрощенных кейсов приближенных к реальности.
1️⃣ Сервис биллинга с помощью внешних мерчантов (аля через visa/mastercard) обработал зачисление денег на наш счет. Теперь биллингу нужно добавить эти деньги на баланс пользователя.
2️⃣ Пользователь хочет купить у нас какую-то услугу. Для этого у нас есть специальный сервис управления услугами, который перед применением услуги проверяет баланс и потом списывает необходимую сумму.
3️⃣ В ближайшем будущем планируется дать пользователям возможность перечислять деньги друг-другу внутри нашей платформы. Мы решили заранее предусмотреть такую возможность и заложить ее в архитектуру нашего сервиса.
❕Требования к коду
🔸Фреймворки и библиотеки можно использовать любые
🔸Реляционная СУБД: MySQL или PostgreSQL
🔸Весь код должен быть выложен на Github с Readme файлом с инструкцией по запуску и примерами запросов/ответов (можно просто описать в Readme методы, можно через Postman, можно в Readme curl запросы скопировать, вы поняли идею...)
🔸Если есть потребность, можно подключить кеши (Redis) и/или очереди (RabbitMQ, Kafka)
🔸При возникновении вопросов по ТЗ оставляем принятие решения за кандидатом (в таком случае Readme файле к проекту должен быть указан список вопросов с которыми кандидат столкнулся и каким образом он их решил)
🔸Разработка интерфейса в браузере НЕ ТРЕБУЕТСЯ.
🔸Взаимодействие с API предполагается посредством запросов из кода другого сервиса. Для тестирования можно использовать любой удобный инструмент. Например: в терминале через curl или Postman.
➕Будет плюсом
▫️Использование docker и docker-compose для поднятия и развертывания dev-среды.
▫️Методы АПИ возвращают человеко-читабельные описания ошибок и соответствующие статус коды при их возникновении.
▫️Написаны unit/интеграционные тесты.
✔️Основное задание (минимум)
🔹Метод начисления средств на баланс. Принимает id пользователя и сколько средств зачислить.
🔹Метод списания средств с баланса. Принимает id пользователя и сколько средств списать.
🔹Метод перевода средств от пользователя к пользователю. Принимает id пользователя с которого нужно списать средства, id пользователя которому должны зачислить средства, а также сумму.
🔹Метод получения текущего баланса пользователя. Принимает id пользователя. Баланс всегда в рублях.
Думаете это всё? Продолжение ниже 👇🏻
#тестовое | 🍩 Поддержать канал 🫶
CloudTips
CloudTips – чаевые и донаты картой моментально
Сервис для приема безналичных чаевых и донатов CloudTips
☝🏻Детали по основному заданию
Методы начисления и списания можно объединить в один, если это позволяет общая архитектура.
➰По умолчанию сервис не содержит в себе никаких данных о балансах (пустая табличка в БД). Данные о балансе появляются при первом зачислении денег.
➰ Валидацию данных и обработку ошибок оставляем на усмотрение кандидата.
➰Список полей к методам не фиксированный.
➰Перечислен лишь необходимый минимум. В рамках выполнения доп. заданий возможны дополнительные поля.
➰Механизм миграции не нужен. Достаточно предоставить конечный SQL файл с созданием всех необходимых таблиц в БД.
➰Баланс пользователя - очень важные данные в которых недопустимы ошибки (фактически мы работаем тут с реальными деньгами). Необходимо всегда держать баланс в актуальном состоянии и не допускать ситуаций когда баланс может уйти в минус.
➰Валюта баланса по умолчанию всегда рубли.
🏅Дополнительные задания
Они не являются обязательными, но их выполнение даст существенный плюс перед другими кандидатами.
Доп. задание 1
Эффективные менеджеры захотели добавить в наши приложения товары и услуги в различных от рубля валютах. Необходима возможность вывода баланса пользователя в отличной от рубля валюте.
Задача: добавить к методу получения баланса доп. параметр. Пример:
Примечание: напоминаем, что базовая валюта которая хранится на балансе у нас всегда рубль. В рамках этой задачи конвертация всегда происходит с базовой валюты.
Доп. задание 2
Пользователи жалуются, что не понимают за что были списаны (или зачислены) средства.
Задача: необходимо предоставить метод получения списка транзакций с комментариями откуда и зачем были начислены/списаны средства с баланса. Необходимо предусмотреть пагинацию и сортировку по сумме и дате.
Дочитали? 😏
#тестовое |⚡️ Забустить канал 🚀
Методы начисления и списания можно объединить в один, если это позволяет общая архитектура.
➰По умолчанию сервис не содержит в себе никаких данных о балансах (пустая табличка в БД). Данные о балансе появляются при первом зачислении денег.
➰ Валидацию данных и обработку ошибок оставляем на усмотрение кандидата.
➰Список полей к методам не фиксированный.
➰Перечислен лишь необходимый минимум. В рамках выполнения доп. заданий возможны дополнительные поля.
➰Механизм миграции не нужен. Достаточно предоставить конечный SQL файл с созданием всех необходимых таблиц в БД.
➰Баланс пользователя - очень важные данные в которых недопустимы ошибки (фактически мы работаем тут с реальными деньгами). Необходимо всегда держать баланс в актуальном состоянии и не допускать ситуаций когда баланс может уйти в минус.
➰Валюта баланса по умолчанию всегда рубли.
🏅Дополнительные задания
Они не являются обязательными, но их выполнение даст существенный плюс перед другими кандидатами.
Доп. задание 1
Эффективные менеджеры захотели добавить в наши приложения товары и услуги в различных от рубля валютах. Необходима возможность вывода баланса пользователя в отличной от рубля валюте.
Задача: добавить к методу получения баланса доп. параметр. Пример:
?currency=USD
. Если этот параметр присутствует, то мы должны конвертировать баланс пользователя с рубля на указанную валюту. Данные по текущему курсу валют можно взять отсюда https://exchangeratesapi.io/ или из любого другого открытого источника.Примечание: напоминаем, что базовая валюта которая хранится на балансе у нас всегда рубль. В рамках этой задачи конвертация всегда происходит с базовой валюты.
Доп. задание 2
Пользователи жалуются, что не понимают за что были списаны (или зачислены) средства.
Задача: необходимо предоставить метод получения списка транзакций с комментариями откуда и зачем были начислены/списаны средства с баланса. Необходимо предусмотреть пагинацию и сортировку по сумме и дате.
Дочитали? 😏
#тестовое |⚡️ Забустить канал 🚀
exchangeratesapi.io
Real-Time and Historical Currency Data with Exchange Rates API
Access accurate exchange rate data with ExchangeRatesAPI. Our free API provides reliable rates for 170+ currencies, updated every 60 minutes. Get started now!
ХВАТИТ ТУПИТЬ В
SQL — это тот самый навык, про который многие думают «да я его знаю», а на первом же собесе на
Актуализировал для вас подборочку, где можно и нужно набивать руку 👇🏻
На русском 🇷🇺
▫️SQL Academy — Интерактивный учебник с кучей задач. Есть песочница, чтобы ковыряться с кодом без последствий.
▫️SQL-EX — Настоящий олдскул, где ещё деды учились (и я в том числе). Задач — вагон, до сих пор актуально. Можно даже платную сертификацию пройти, если вам такое надо.
▫️Тренажёр на Stepik — Классический тренажёр на Stepik. Сложность растёт постепенно, от табличек в вакууме до баз данных условного «Интернет-магазина».
Изучаем базу (на английском 🇬🇧)
▫️SQLBolt — Всего 20 интерактивных уроков. Для тех, кому надо быстро въехать в основы, не читая талмуды.
▫️PGExercises — Чисто под PostgreSQL. Для тех, кто работает с Постгресом и не хочет распыляться.
▫️SQL Practice — Практика на базе данных больницы. Лечим пациентов SQL-запросами.
Готовимся к собесам (🇬🇧) ⚔️
▫️Leetcode — Ну это база для подготовки к собесам. Можно подсмотреть чужие решения 🌚
▫️HackerRank — Похож на Leetcode, но со своей атмосферой. Тоже задачи, рейтинги и возможность получить бесполезную, но приятную ачивку-сертификат.
▫️DataLemur — Задачи прямиком с собесов в Microsoft, Tesla и прочих галер. Есть даже игра в Кальмара 🦑
Игровые тренажёры 🕵️♂️
▫️SQL Murder Mystery — Расследуем убийство, отправляя SQL-запросы к базе с уликами. Классная разминка.
▫️SQL Noir — То же самое, но в стиле нуар. Для ценителей.
▫️Lost at SQL — Спасаем команду с тонущей подлодки с помощью SQL. Есть сюжетка и таблица лидеров.
В общем, инструментов валом. Если до сих пор не умеете в SQL, то это не потому, что нет возможности, а потому что вы ленивая жопа 🌝
А где вы учились/практиковались? Кидайте в комменты свои находки, если чего-то в списке не хватает.
JOIN
АХ: БЕСПЛАТНЫЕ SQL-ТРЕНАЖЁРЫSQL — это тот самый навык, про который многие думают «да я его знаю», а на первом же собесе на
GROUP BY
с HAVING
начинают плавать. И неважно, бэкендер ты, аналитик или начинающий дата-сайентист — это очень нужно всем.Актуализировал для вас подборочку, где можно и нужно набивать руку 👇🏻
На русском 🇷🇺
▫️SQL Academy — Интерактивный учебник с кучей задач. Есть песочница, чтобы ковыряться с кодом без последствий.
▫️SQL-EX — Настоящий олдскул, где ещё деды учились (и я в том числе). Задач — вагон, до сих пор актуально. Можно даже платную сертификацию пройти, если вам такое надо.
▫️Тренажёр на Stepik — Классический тренажёр на Stepik. Сложность растёт постепенно, от табличек в вакууме до баз данных условного «Интернет-магазина».
Изучаем базу (на английском 🇬🇧)
▫️SQLBolt — Всего 20 интерактивных уроков. Для тех, кому надо быстро въехать в основы, не читая талмуды.
▫️PGExercises — Чисто под PostgreSQL. Для тех, кто работает с Постгресом и не хочет распыляться.
▫️SQL Practice — Практика на базе данных больницы. Лечим пациентов SQL-запросами.
Готовимся к собесам (🇬🇧) ⚔️
▫️Leetcode — Ну это база для подготовки к собесам. Можно подсмотреть чужие решения 🌚
▫️HackerRank — Похож на Leetcode, но со своей атмосферой. Тоже задачи, рейтинги и возможность получить бесполезную, но приятную ачивку-сертификат.
▫️DataLemur — Задачи прямиком с собесов в Microsoft, Tesla и прочих галер. Есть даже игра в Кальмара 🦑
Игровые тренажёры 🕵️♂️
▫️SQL Murder Mystery — Расследуем убийство, отправляя SQL-запросы к базе с уликами. Классная разминка.
▫️SQL Noir — То же самое, но в стиле нуар. Для ценителей.
▫️Lost at SQL — Спасаем команду с тонущей подлодки с помощью SQL. Есть сюжетка и таблица лидеров.
В общем, инструментов валом. Если до сих пор не умеете в SQL, то это не потому, что нет возможности, а потому что вы ленивая жопа 🌝
А где вы учились/практиковались? Кидайте в комменты свои находки, если чего-то в списке не хватает.
olegtalks.ru
Бесплатные тренажёры по Python, SQL, Regex
🚀 Откройте 30+ бесплатных онлайн-тренажеров по Python, SQL и Regex. Решайте задачи, оттачивайте навыки программирования и готовьтесь к собеседованиям. Всё в одном месте!
❤🔥10❤5🔥4⚡1🙏1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4👀2⚡1👍1🔥1👨💻1🆒1 1
Помните "убийцу Python"? 🐍💀 Так вот, он научился работать на своего врага.
Крис Латтнер, создатель языка, обмолвился, что теперь код на Mojo можно вызывать напрямую из Python. Один энтузиаст провел эксперименты на этот счет, которые показывают всю суть текущего положения дел.
Тест №1: Факториал
Первая задача была простой — посчитать факториал. На маленьких числах
В чём дело? Это классическое целочисленное переполнение (integer overflow). Mojo, как и C++/Rust, использует для целых чисел фиксированный размер в памяти (например, 64 бита). И когда результат вычислений превышает максимальное значение для этого типа, происходит "обнуление" или переход через ноль.
Старый добрый Python же, с его динамической типизацией, использует длинную арифметику. Его целые числа ограничены только объёмом вашей оперативной памяти. Медленнее, да, но надёжнее.
Тест №2: Простые числа
Автор взял вычислительно сложную задачу — подсчёт простых чисел до 20 000 — и написал три одинаково наивных (неэффективных) алгоритма.
И результаты тут уже интересные:
▫️ Чистый Python: ~0.45 секунды
▫️ NumPy: ~0.26 секунды
▫️ Mojo: ~0.011 секунды 🚀
Это значит, что Mojo оказался:
* Примерно в 40 раз быстрее чистого Python.
* Примерно в 20 раз быстрее NumPy, который под капотом использует оптимизированный код на C!
Обогнать NumPy в 20 раз на задаче, где, казалось бы, он должен блистать, — это уже очень серьёзная заявка.
Как это выглядит в коде?
А в Python это вызывается почти как родное:
Крч, пока всё очень сыро, но потенциал может быть.
Не можешь победить — присоединись🤪
Крис Латтнер, создатель языка, обмолвился, что теперь код на Mojo можно вызывать напрямую из Python. Один энтузиаст провел эксперименты на этот счет, которые показывают всю суть текущего положения дел.
Тест №1: Факториал
Первая задача была простой — посчитать факториал. На маленьких числах
factorial(10)
Mojo оказался чуть быстрее. Но вся магия развеялась, как только в него кинули factorial(100)
. Результат? 0
.mojo_module.factorial(100) -> 0
math.factorial(100) -> 93326215... (очень много цифр)
В чём дело? Это классическое целочисленное переполнение (integer overflow). Mojo, как и C++/Rust, использует для целых чисел фиксированный размер в памяти (например, 64 бита). И когда результат вычислений превышает максимальное значение для этого типа, происходит "обнуление" или переход через ноль.
Старый добрый Python же, с его динамической типизацией, использует длинную арифметику. Его целые числа ограничены только объёмом вашей оперативной памяти. Медленнее, да, но надёжнее.
Тест №2: Простые числа
Автор взял вычислительно сложную задачу — подсчёт простых чисел до 20 000 — и написал три одинаково наивных (неэффективных) алгоритма.
И результаты тут уже интересные:
▫️ Чистый Python: ~0.45 секунды
▫️ NumPy: ~0.26 секунды
▫️ Mojo: ~0.011 секунды 🚀
Это значит, что Mojo оказался:
* Примерно в 40 раз быстрее чистого Python.
* Примерно в 20 раз быстрее NumPy, который под капотом использует оптимизированный код на C!
Обогнать NumPy в 20 раз на задаче, где, казалось бы, он должен блистать, — это уже очень серьёзная заявка.
Как это выглядит в коде?
// mojo_module.mojo
// ... бойлерплейт для импорта ...
fn count_primes(py_obj: PythonObject) raises -> PythonObject:
var n = Int(py_obj)
var count: Int = 0
for i in range(2, n + 1):
var is_prime: Bool = True
for j in range(2, i):
if i % j == 0:
is_prime = False
break
if is_prime:
count += 1
return count
А в Python это вызывается почти как родное:
# main.py
import max.mojo.importer # специальный импортер
import mojo_module # и вуаля!
print(mojo_module.count_primes(20_000))
Крч, пока всё очень сыро, но потенциал может быть.
Не можешь победить — присоединись
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
PythonTalk
Релиз Mojo 🎉
Mojo теперь доступен для локальной загрузки.
🔥Кто не слышал про этот проект – это новый язык программирования, который обещает совместимость с Python и сверх-высокую производительность. В том числе за счёт автоматического низкоуровневого р…
Mojo теперь доступен для локальной загрузки.
🔥Кто не слышал про этот проект – это новый язык программирования, который обещает совместимость с Python и сверх-высокую производительность. В том числе за счёт автоматического низкоуровневого р…
👍7❤2🔥2⚡1😁1🙏1👌1👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁22🤣10💯1😈1👨💻1🤪1👾1 1 1
🐍 from exercise import "Задачка на cчастье"
Сегодня будем определять "счастливые числа"!
Число считается "счастливым", если последовательное применение следующей операции в итоге приводит к
1️⃣ Шаг 1: Берем число.
2️⃣ Шаг 2: Заменяем его на сумму квадратов его цифр.
3️⃣ Шаг 3: Повторяем Шаг 2 с новым, полученным числом.
* Если на каком-то этапе мы получаем
* Если же процесс продолжается бесконечно, так и не достигнув
Пример для числа 19:
*
*
*
*
Достигли
🎯 Ваша Задача:
Написать функцию, например,
#задача | ⚡️ Забустить канал 🚀
Сегодня будем определять "счастливые числа"!
Число считается "счастливым", если последовательное применение следующей операции в итоге приводит к
1
:1️⃣ Шаг 1: Берем число.
2️⃣ Шаг 2: Заменяем его на сумму квадратов его цифр.
3️⃣ Шаг 3: Повторяем Шаг 2 с новым, полученным числом.
* Если на каком-то этапе мы получаем
1
— ура, число счастливое! 🎉 Функция должна вернуть True
.* Если же процесс продолжается бесконечно, так и не достигнув
1
(т.е. мы попадаем в цикл, отличный от 1
) — число не счастливое. Функция должна вернуть False
.Пример для числа 19:
*
19
-> 1^2 + 9^2 = 1 + 81 = 82
*
82
-> 8^2 + 2^2 = 64 + 4 = 68
*
68
-> 6^2 + 8^2 = 36 + 64 = 100
*
100
-> 1^2 + 0^2 + 0^2 = 1 + 0 + 0 = 1
Достигли
1
! Значит, 19
— счастливое число. ✅🎯 Ваша Задача:
Написать функцию, например,
is_happy_number(n: int) -> bool
, которая реализует этот алгоритм.#задача | ⚡️ Забустить канал 🚀
❤3🤔3👨💻2 1
Teletype
Анатомия генератора в Python: раскрываем магию yield для эффективной работы с данными
Что такое генераторы и итераторы в Python и как их эффективно использовать?
🐍 Анатомия генератора в Python: раскрываем магию yield!
В статье залазим под капот генераторов и
В статье залазим под капот генераторов и
yield
. Покажем, как эта парочка помогает писать эффективный код, экономить RAM (и ваши нервы!) при работе с гигантскими файлами, потоками данных и сложными пайплайнами. Залетайте! 🚀❤3👍2🔥1🙏1 1
✍️ Решения вчерашней задачи
🏆 Эталон эффективности: алгоритм "черепахи и зайца"
Этот подход является классикой для поиска циклов в последовательностях и обладает лучшей эффективностью по памяти — O(1):
🤔 Как это работает?
1. Представьте гоночный трек (наша последовательность чисел). Он может быть как прямой (ведет к
2. Мы запускаем двух бегунов: "черепаху" (
3. Черепаха делает один шаг за раз (
4. Заяц делает два шага за раз (
5. Исход:
* Если трек прямой (число счастливое), "заяц" просто первым доберется до финиша (1).
* Если трек кольцевой (число несчастливое), "заяц" неизбежно догонит и "перепрыгнет" черепаху, встретившись с ней на одном из витков цикла (
Время: O(L * log N), где L — длина последовательности до цикла.
Память: O(1). Мы не храним историю, нам нужны лишь две переменные!
🐍 Самое идиоматичное решение
Такой алгоритм идеально сочетает читаемость, простоту и эффективность, используя встроенные возможности Python.
🤔 Как это работает?
1. Мы создаем "карту" — пустое множество
2. На каждом шаге проверяем: не были ли мы здесь раньше (
* Если нет — добавляем текущее число на карту (
* Если да — мы попали в цикл! Прерываем путешествие.
3. После выхода из цикла просто проверяем, почему мы остановились. Если
Время: O(L * log N).
Память: O(L). В худшем случае нам придется хранить в seen все числа из последовательности до цикла. Это небольшой компромисс ради простоты кода.
💡 Бонус: математическая оптимизация
Такой хитрый подход основан на свойствах этой последовательности и быстрой математике вместо строковых операций.
🤔 В чем магия?
* Любая последовательность рано или поздно приходит к числу с одной цифрой.
* Из всех однозначных чисел только
* Поэтому можно просто проверять эти конечные состояния.
* А использование математических операций
🏆 Эталон эффективности: алгоритм "черепахи и зайца"
Этот подход является классикой для поиска циклов в последовательностях и обладает лучшей эффективностью по памяти — O(1):
def get_next(n: int) -> int:
total_sum = 0
while n > 0:
n, digit = divmod(n, 10)
total_sum += digit ** 2
return total_sum
def is_happy(n: int) -> bool:
slow_pointer = n
fast_pointer = get_next(n)
while fast_pointer != 1 and slow_pointer != fast_pointer:
slow_pointer = get_next(slow_pointer)
fast_pointer = get_next(get_next(fast_pointer))
return fast_pointer == 1
🤔 Как это работает?
1. Представьте гоночный трек (наша последовательность чисел). Он может быть как прямой (ведет к
1
), так и кольцевым (мы попали в цикл).2. Мы запускаем двух бегунов: "черепаху" (
slow_pointer
) и "зайца" (fast_pointer
).3. Черепаха делает один шаг за раз (
get_next
).4. Заяц делает два шага за раз (
get_next(get_next(...))
).5. Исход:
* Если трек прямой (число счастливое), "заяц" просто первым доберется до финиша (1).
* Если трек кольцевой (число несчастливое), "заяц" неизбежно догонит и "перепрыгнет" черепаху, встретившись с ней на одном из витков цикла (
slow_pointer == fast_pointer
).Время: O(L * log N), где L — длина последовательности до цикла.
Память: O(1). Мы не храним историю, нам нужны лишь две переменные!
🐍 Самое идиоматичное решение
Такой алгоритм идеально сочетает читаемость, простоту и эффективность, используя встроенные возможности Python.
def is_happy(n: int) -> bool:
seen = set()
while n != 1 and n not in seen:
seen.add(n)
n = sum(int(digit) ** 2 for digit in str(n))
return n == 1
🤔 Как это работает?
1. Мы создаем "карту" — пустое множество
seen
, где будем отмечать все числа-шаги, которые уже прошли.2. На каждом шаге проверяем: не были ли мы здесь раньше (
n not in seen
)?* Если нет — добавляем текущее число на карту (
seen.add(n)
) и вычисляем следующее.* Если да — мы попали в цикл! Прерываем путешествие.
3. После выхода из цикла просто проверяем, почему мы остановились. Если
n == 1
, то число счастливое.Время: O(L * log N).
Память: O(L). В худшем случае нам придется хранить в seen все числа из последовательности до цикла. Это небольшой компромисс ради простоты кода.
💡 Бонус: математическая оптимизация
Такой хитрый подход основан на свойствах этой последовательности и быстрой математике вместо строковых операций.
def is_happy(n: int) -> bool:
while True:
if n == 1 or n == 7: # 7 -> 49 -> 97 -> ... -> 1
return True
if n < 10:
return False
next_n = 0
while n > 0:
digit = n % 10
next_n += digit * digit
n //= 10
n = next_n
🤔 В чем магия?
* Любая последовательность рано или поздно приходит к числу с одной цифрой.
* Из всех однозначных чисел только
1
и 7
в итоге приводят к 1
. Все остальные попадают в цикл 4 -> 16 -> ... -> 4
.* Поэтому можно просто проверять эти конечные состояния.
* А использование математических операций
n % 10
и n //= 10
для извлечения цифр, как правило, работает быстрее, чем преобразование в строку str(n)
.Telegram
PythonTalk
🐍 from exercise import "Задачка на cчастье"
Сегодня будем определять "счастливые числа"!
Число считается "счастливым", если последовательное применение следующей операции в итоге приводит к 1:
1️⃣ Шаг 1: Берем число.
2️⃣ Шаг 2: Заменяем его на сумму квадратов…
Сегодня будем определять "счастливые числа"!
Число считается "счастливым", если последовательное применение следующей операции в итоге приводит к 1:
1️⃣ Шаг 1: Берем число.
2️⃣ Шаг 2: Заменяем его на сумму квадратов…
1 3👍2❤1🔥1🙏1🦄1
🗓Итоги месяца (июнь 2025)
👀 Топ по просмотрам 👨🏻💻
1️⃣ Статистика из США по высокой безработице среди выпускников IT-специальностей.
2️⃣ Утилита для исправление опечаток при помощи факов.
3️⃣ Новость о том, как в компании Canva теперь требуют использования AI-помощников.
📨 Топ по репостам 📥
1️⃣ Огромная подборка бесплатных тренажёров по SQL.
2️⃣ Релиз ИИ-помощника для командной строки Gemini CLI.
3️⃣ Релиз функционала подтверждения IT-компетенций на Госуслугах.
👍🏻 Топ по реакциям 😍
1️⃣ Как обычно, мемчик.
2️⃣ Сказ о том, как ИИ спас прогера-индуса от увольнения.
3️⃣ Исследование Mamba о том, что айтишники уже не в тренде привлекательности.
👀 Топ по просмотрам 👨🏻💻
1️⃣ Статистика из США по высокой безработице среди выпускников IT-специальностей.
2️⃣ Утилита для исправление опечаток при помощи факов.
3️⃣ Новость о том, как в компании Canva теперь требуют использования AI-помощников.
📨 Топ по репостам 📥
1️⃣ Огромная подборка бесплатных тренажёров по SQL.
2️⃣ Релиз ИИ-помощника для командной строки Gemini CLI.
3️⃣ Релиз функционала подтверждения IT-компетенций на Госуслугах.
👍🏻 Топ по реакциям 😍
1️⃣ Как обычно, мемчик.
2️⃣ Сказ о том, как ИИ спас прогера-индуса от увольнения.
3️⃣ Исследование Mamba о том, что айтишники уже не в тренде привлекательности.
🙏2⚡1👍1🔥1 1
Прошёл очередной квартал, пора смотреть, что там с зарплатами питонистов по данным Getmatch 🤑
А смотреть особо не на что, в этот раз очень скучно. Изменений, можно сказать, нет. А это значит, что реальный доход по факту падает.
▪️ Медианная зарплата по всем уровням – 200к
▫️ Джуны – 100к
▫️ Мидлы – 190к
▫️ Синьоры – 300к
▫️ Тимлиды – 350к
▫️ В Москве медиана по всем уровням – 210к
▫️ Питер – 200к
▫️ Остальные города – 200к (было 180)
⬆️ Медиана по зарплатам для тех, кто работает в офисе или гибридно – 197к. Было 190, это единственный пункт с ростом.
▫️ Удалёнщики – 220к
А смотреть особо не на что, в этот раз очень скучно. Изменений, можно сказать, нет. А это значит, что реальный доход по факту падает.
▪️ Медианная зарплата по всем уровням – 200к
▫️ Джуны – 100к
▫️ Мидлы – 190к
▫️ Синьоры – 300к
▫️ Тимлиды – 350к
▫️ В Москве медиана по всем уровням – 210к
▫️ Питер – 200к
▫️ Остальные города – 200к (было 180)
⬆️ Медиана по зарплатам для тех, кто работает в офисе или гибридно – 197к. Было 190, это единственный пункт с ростом.
▫️ Удалёнщики – 220к
getmatch.ru
Работа в IT-индустрии, вакансии и резюме, поиск работы — getmatch
getmatch помогает работодателям найти качественных специалистов, а кандидатам — работу в IT-сфере: разработка, тестирование, дизайн, аналитика, менеджмент и др.
👍3❤2🔥1🙏1 1
Baidu выкатил ERNIE 4.5 🇨🇳
И это не одна модель, а целое семейство из 10 разных вариантов мультимодальных моделей.
Чего там интересного?
1️⃣ Мультимодальная MoE-архитектура. По-простому — научили модели работать с текстом, картинками и даже видео одновременно, да так, чтобы модальности не мешали, а помогали друг другу. Заявляют, что от этого даже чисто текстовые задачи стали решаться лучше.
2️⃣ Размер на любой вкус. Есть варианты от гиганта на 424B параметров (47B активных) до малютки на 0.3B. Есть где разгуляться и тем, у кого свой кластер, и тем, кто на ноутбуке код запускает.
3️⃣ SOTA-результаты. Ну тут классика. Говорят, что обогнали всех на свете в следовании инструкциям, визуальном понимании и прочих модных бенчмарках.Как обычно, доверяем, но проверяем.
4️⃣ Полный инструментарий. Отдали не только веса, но и тулкиты для дообучения (ERNIEKit) и быстрого деплоя (FastDeploy). Всё под лицензией Apache 2.0.
Всё это добро работает на их собственном фреймворке PaddlePaddle. Так что, фанатам PyTorch придётся либо немного пострадать, либо проходить мимо. Интересный способ продвигать свою экосистему 🌚
Ссылочки:
👉🏻 Hugging Face
👉🏻 AI Studio
👉🏻 GitHub
И это не одна модель, а целое семейство из 10 разных вариантов мультимодальных моделей.
Чего там интересного?
1️⃣ Мультимодальная MoE-архитектура. По-простому — научили модели работать с текстом, картинками и даже видео одновременно, да так, чтобы модальности не мешали, а помогали друг другу. Заявляют, что от этого даже чисто текстовые задачи стали решаться лучше.
2️⃣ Размер на любой вкус. Есть варианты от гиганта на 424B параметров (47B активных) до малютки на 0.3B. Есть где разгуляться и тем, у кого свой кластер, и тем, кто на ноутбуке код запускает.
3️⃣ SOTA-результаты. Ну тут классика. Говорят, что обогнали всех на свете в следовании инструкциям, визуальном понимании и прочих модных бенчмарках.
4️⃣ Полный инструментарий. Отдали не только веса, но и тулкиты для дообучения (ERNIEKit) и быстрого деплоя (FastDeploy). Всё под лицензией Apache 2.0.
Всё это добро работает на их собственном фреймворке PaddlePaddle. Так что, фанатам PyTorch придётся либо немного пострадать, либо проходить мимо. Интересный способ продвигать свою экосистему 🌚
Ссылочки:
👉🏻 Hugging Face
👉🏻 AI Studio
👉🏻 GitHub
👍5⚡1🔥1🙏1 1
Что получим при запуске кода?
Anonymous Quiz
3%
[3, 14, 15]
10%
[-15, -14, -3, -15, -14, -3]
7%
[3, 14, 15, 3, 14, 15]
17%
[-3, -14, -15, -3, -14, -15]
40%
TypeError
10%
[15, 14, 3, 15, 14, 3]
13%
[]
✍5👍5 3🔥2🗿2⚡1🙏1👨💻1
Управление циклами в Python: break, continue и неочевидный else 🐍
Все мы каждый день используем циклы
Для этого в Python есть
Когда эти инструменты делают код чище и эффективнее, а когда превращают его в спагетти-монстра? 🍝
Залетайте в свежий разбор, чтобы узнать все тонкости, посмотреть на практические примеры и понять, как не наступить на грабли! 🧑🏻💻
Все мы каждый день используем циклы
for
и while
. Но что, если стандартного "пройти по всем" или "повторять до условия" становится недостаточно? 🤔 Как элегантно прервать выполнение, проигнорировать текущий шаг или выполнить код, только если цикл завершился без сюрпризов?Для этого в Python есть
break
, continue
и, возможно, не самый очевидный для многих, блок else
в связке с циклами! 🤯 Да, этот else
– не тот, что с if
.Когда эти инструменты делают код чище и эффективнее, а когда превращают его в спагетти-монстра? 🍝
Залетайте в свежий разбор, чтобы узнать все тонкости, посмотреть на практические примеры и понять, как не наступить на грабли! 🧑🏻💻
👍7❤3🔥2✍1⚡1🙏1🤗1 1