Как стать автором
Обновить
923.69

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга

🔺Пример MCP для Gemini CLI

Ковыряюсь с Gemini CLI, консольным кодовым агентом, который на днях вышел. Накидал пример, как расширить его функционал при помощи MCP сервера.

my_mcp.py

from openai import OpenAI
from mcp.server.fastmcp import FastMCP
import base64
import os


client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
mcp = FastMCP("openai-image-generator")

@mcp.tool(description="Generate an image with OpenAI Images API")
def generate_image(
    prompt: str,
    size: str = "1024x1024",   # "1024x1536", "1536x1024", "1024x1024"
    quality: str = "high",     # 'low', 'medium', 'high'
    background: str = "transparent"
) -> str:
    """Return a file path to the generated image."""
    response = client.images.generate(
            model="gpt-image-1",
            prompt=prompt,
            size=size,
            quality=quality,
            output_format="png",
            user="test_user",
            moderation="low",
            background=background,
            n=1)
        
    image_base64 = response.data[0].b64_json
    image_bytes = base64.b64decode(image_base64)

    file_name = f"gen_image.png"
    file_path = os.path.join(os.getcwd(), file_name)

    with open(file_path, "wb") as f:
        f.write(image_bytes)
        
    return file_path

if __name__ == "__main__":
    mcp.run()

Тут вызывается API для генерации изображения, ключ берется из переменных окружения, картинка сохраняется на диск. И прописываем путь до файлика в settings.json Gemini:

{
  "mcpServers": {
    "openai-image-generator": {
      "command": "python",
      "args": [
        "/path/to/my_mcp.py"
      ],
      "env": 
        "OPENAI_API_KEY": "${OPENAI_API_KEY}"
      }
    }
  }
}

Если теперь просить сгенерить лого для своего репозитория, то Gemini составит релевантный промпт по репе, вызовает этот метод и по желанию обновит Readme проекта, добавив в него картинку.

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

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

Теги:
+3
Комментарии5

Вайб-кодинг это TDD в блестящей обёртке и с хорошим пиаром. Change my mind.

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

Дцать лет апологеты пытаются продвинуть TDD под предлогом улучшения надежности систем и снижения количества дефектов. И дцать лет их полоскают.

Но тут приходит Андрей Карпатый (разработчик ИИ, научно-технический просветитель, ныне больше с креном в инфоцыганство) и говорит страшную вещь. А давайте детально опишем поведение юнита со всеми корнеркейсами и скормим нейронке. А когда нейронка выдаст не совсем то - уточним описание. И так по кругу, пока результат не станет идеальным.

И все такие: ВАУ!!!111 10 ИЗ 10, ГОСПОДИ, 10 ИЗ 10!1

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

Теги:
+4
Комментарии0

МойОфис Frontend&UX Talks уже начался!

Самое время смотреть и задавать вопросы спикерам в чате митапа!

Митап посвящен главным вызовам и проблемам в сложных интерфейсах. Спикеры расскажут о самых разных аспектах фротенда в 2025 году: от айтрекинга и других методов исследований до реактивного программирования и СSS-спецификаций.

Сам митап разделен на две категории: JavaScript и UX. В каждой из них, помимо наших специалистов, есть ребята и из других компаний: Лаборатория Касперского, Контур, Alpha Research Center. Всего на встрече будет семь докладов – их расписание можно посмотреть здесь.

Смотрите митап прямо здесь:

Также трансляцию можно смотреть на Youtube и ВК.

Заинтересовало? Тогда скорее переходите в чат митапа. Здесь можно задать вопросы спикерам, и получить раньше остальных доступ к записи выступлений :)

Теги:
+6
Комментарии0

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

- Может в бек в несколько языков
- Может во фронт
- Умеет и настраивает пайпланый от Docker Compose до Github Actions
- Может сетапить и настраивать облака

(дисклеймер: речь не о том, что таким должен быть каждый, а что это не рокет сайнс все это уметь на хорошем уровне, достаточным чтобы классно делать проекты)

Что обычно имеют ввиду под глубоким спецом? Что человек прямо досканально знает все, быстро дебажит, создает качественный и поддерживаемый код (это ведь подразумевается?).

Знает ли досконально все? Вообще не факт, а скорее всего нет. От того что человек занимается только чем-то одним, не означает что он сидит и как не в себя копает во внутрь по этой теме. Как правило я вижу другую картину, если делать долго и упорно одно и тоже, то в какой-то момент это все делается на автомате, а дальше человек просто останавливается в развитии (соседний фреймворк не считается) ну либо становится тем, о ком я пишу выше.

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

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

На практике все чуть сложнее. Главный фактор, который вижу я, помимо “я не буду этого делать” - компания и команда в которой работает человек. Где-то это норма, где-то нет и в зависимости от этого и идет рост.

p.s. Больше про разработку я пишу в своем канале Организованное Программирование

Теги:
+3
Комментарии10

Собираем питонистов на митапе ЮMoney!

3 июля, в четверг, в 19:00 (мск) — приходите на митап про Python в Санкт-Петербурге или подключайтесь онлайн.

О чём будут доклады?

🟣 Это не те метрики, что вы ищете. Разберёмся, почему стандартного экспортёра может не хватать, и как написать свой на Python.
🟣 Кодогенерация: как компьютеры учатся писать код за нас. Поговорим про прошлое, настоящее и будущее кодогенерации в разных языках программирования.
🟣 Ruff: как не положить всё, переходя на новые правила? Поговорим про линтеры, форматтеры и подводные камни при переходе на Ruff.
🟣 Секреты успеха змеи в мире пауков. Обсудим, как мы применяли scrapy и playwright в ЮMoney, чтобы создать сервис модерации сайтов.

Зарегистрируйтесь, чтобы принять участие. Все подробности — на сайте митапа.🔥

Теги:
0
Комментарии0

MCP для новичков

Думаю, многие слышали про новый протокол Model-Context Protocol. По современным меркам он возник очень давно, аж осенью прошлого года, ха-ха. Сейчас, кажется, темп такой, что месяц примерно идет за год. 🙈

В общем, это протокол, который позволяет LLM пользоваться сторонними инструментами.

Идея на самом деле не нова. Это было внедрено Open AI еще с момента появления их Assistant API. Там это называется "functional calling". Сейчас просто этот подход стал стандартом, который постепенно внедряют все LLM, в том числе и Open AI (но уже для Response API).

1️⃣ Зачем это вообще нужно?

Суть в том, что LLM без доступа к внешним инструментам находится как бы в изоляции. Всё, что она может знать, она получает через своё контекстное окно или в простом случае через ваш промпт.

Ввиду такой изолированности LLM не сможет при необходимости, например, сделать запрос в вашу БД, загрузить документ по ссылке из Интернета или, скажем, что-то прочитать из документа на диске вашего сервера.

LLM под домашним арестом: без доступа в Интернет и гаджетов. Да, LLM умная, но польза ее сильно ограничена из-за изоляции от внешнего мира.

Чтобы решить эту проблему как раз и придумали functional calling, а теперь — MCP.

2️⃣ Суть MCP

MCP является новым стандартом (протоколом), по которому LLM может пользоваться внешними инструментами. Инструменты предоставляет MCP-сервер. То есть клиент MCP-сервера — это сама LLM.

MCP-сервер отвечает за две вещи:

  • отдает LLM схему, в которой описаны все доступные инструменты

  • обслуживает запросы LLM

LLM в свою очередь:

  • зная адрес MCP-сервера, получает от него схему с инструментами

  • если запрос пользователя подразумевает использование инструмента, посылает нужные запросы вашему MCP-серверу и благодаря ответам обогащает свой контекст по мере необходимости

Важный момент, что использовать инструменты или нет, решает LLM.

Стандарт MCP говорит о том, как инструменты должны быть описаны в схеме и как нужно посылать запросы/ответы между LLM и сервером.

Сейчас стандарт активно внедряется провайдерами LLM (OpenAI, Claude и др.) и похоже скоро все они будут уметь работать по MCP.

3️⃣ Как это выглядит глазами обычного юзера

Представьте, что у вас есть база данных клиентов.

Раньше, чтобы найти инфу о конкретном клиенте, вам нужно было:

  • Открыть админку

  • Найти нужную таблицу

  • Ввести параметры поиска

  • Проанализировать результат...

С MCP вы просто говорите LLM: "Найди всех клиентов из Тбилиси, которые не делали заказы последние 2 месяца" — и она сама сделает нужный запрос и выдаст результат.

4️⃣ Почему это круто и за этим будущее

Предоставив доступ LLM к серверному API, мы фактически открываем ящик пандоры возможности взаимодействия с API через текст.

Если раньше для взаимодействия с сервером вам нужен был интерфейс приложения с кнопочками или, на худой конец, нужно было посылать запросы через терминал ручками, то теперь вы можете просто говорить LLМ, что вам нужно и LLM сам всё сделает.

Именно поэтому недавно возникла новая мантра про "SaaS is dead". Типа, зачем пилить сложные интерфейсы, если достаточно подключить LLM, дать ей доступ к бекенду и она сама выполнит любые пожелания пользователей.

Во многом это так есть. Разговорный интерфейс — это гибкость и мощь одновременно. Традиционные интерфейсы же, напротив, ригидны и ограничены.

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

Как думаете, SaaS скорее жив, чем мертв или наоброт?

Теги:
+2
Комментарии3

Как студенты с айтрекером изучали наш текстовый редактор

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

Важный анонс: 26 июня пройдет онлайн-митап МойОфис Frontend&UX Talks, на котором JS-еры, дизайнеры, продакты и аналитики соберутся, чтобы обсудить все насущные проблемы и нюансы современного фронтенда. Кроме наших экспертов, на митапе будут ребята из Лаборатории Касперского, Контура и Alfa Research Center!

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

Еще немного о совместном исследовании со студентами:

4 июня в нашем петербургском офисе прошла презентация результатов совместного исследования с лабораторией социальной и когнитивной информатики ВШЭ в рамках учебного сотрудничества. Студенты курса «Айтрекинг в UX-аналитике» провели глубокое тестирование текстового редактора МойОфис 3.4 с обновлённым интерфейсом.

Методология:

  • Определили самые востребованные задачи у студентов и на их основе составили задания.

  • Использовали носимый open-source айтрекер PupilLabs.

  • Провели психологические опросы до и после заданий (спойлер: уровень стресса участников не изменился) и когнитивное интервью после.

Ключевые результаты:

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

  2. Получили оценки пользователей: лёгкость и чёткость интерфейса.

  3. Подтвердилась необходимость в новом поиске по функциям, к которому прибегали участники, когда что-то не получалось найти, или они не знали, как выполнить задачу.

  4. Выявлены новые точки роста для развития продукта

P.S. Большая благодарность Елене Артёменко из лаборатории социальной и когнитивной информатики ВШЭ за эту коллаборацию! А если хотите узнать больше о фронтенде и UX-исследованиях — ждем вас 26 июня на Frontend&UXTalks!

Теги:
+13
Комментарии2

Оцените свои шансы войти в бигтех: тест от Яндекс Практикума

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

Он поможет сориентироваться: проверить хард- и софтскилы и понять, какие навыки уже на высоком уровне — а что стоит прокачать, чтобы повысить шансы оказаться в бигтехе.

Тест вам подходит, если:

  • Ваша специальность — разработчик, DevOps-инженер, аналитик данных или ручной тестировщик.

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

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

→ Проверить свои силы

Теги:
0
Комментарии3

Хотите развернуть Telegram-бота в облаке за час без настройки серверов и больших вложений? 🤖

Тогда приглашаем на вебинар, где вместе с Ильей Смирновым, архитектором решений Cloud.ru, обсудим нюансы создания бота в облаке и разберем облачные инструменты для автоматизации и внедрения AI с помощью инструментов платформы Cloud.ru Evolution и open-source решения n8n.

В программе:

  • Развертывание n8n в контейнере (инструмента с открытым исходным кодом для автоматизации задач) в облаке через сервис Evolution Container Apps;

  • Пошаговая настройка интеграции Telegram-бота с искусственным интеллектом;

  • Особенности и преимущества бессерверного подхода Cloud.ru Evolution: расскажем, как увеличить скорость внедрения решений без лишних настроек.

  • Демо, на котором покажем весь путь создания бота: от идеи до первого запроса в Telegram.

Будет полезно разработчикам, IT-специалистам, руководителям проектов и всем, кто хочет использовать облако для ускорения бизнес-процессов, создания новых сервисов и решения своих задач. Вы получите практические советы и сможете задать вопросы эксперту Cloud.ru.

📆 Когда: 26 июня в 11:00 мск

📍 Где: онлайн

Зарегистрироваться 👈

Теги:
0
Комментарии0

Нейросеть Gemini предлагает своё удаление, если у неё не получается отладить код по запросу пользователя.

Теги:
0
Комментарии2

А вы знали, что для выполнения быстрых задач с кодом не всегда требуется IDE и сложная настройка окружения? 💻

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

В программе вебинара:

  • презентация сервиса: обзор интерфейса и ключевых возможностей;

  • демонстрация написания кода, запуска фрагментов и работы с результатами;

  • инструкция, как присоединиться к бесплатному тестированию Evolution Notebook, включая доступ к GPU.

А еще проведем демо и покажем, как начать работу в сервисе, создать ноутбук и подключить GPU. Затем настроим вычислительные ресурсы, выберем образ, включая вариант с root-доступом, и продемонстрируем практический запуск обучения модели Computer Vision внутри ноутбука.

Будет полезно дата-сайентистам, ML-инженерам, разработчикам и всем специалистам, работающим с кодом и данными.

📆 Когда: 24 июня в 11:00 мск

📍 Где: онлайн

Зарегистрироваться 👈

Теги:
+2
Комментарии0
На что способен настоящий "ИИ", науке неизвестно.
На что способен настоящий "ИИ", науке неизвестно.

Вот, когда вижу заголовок, из серии «<лицо или группа лиц> заявляет/ют о том, что ИИ способен на <какое-нибудь важное прогрессивное действие>», сразу хочется посмотреть в честные глаза натягивающего сову на глобус, а что там внутри, какую алгоритмическую обвязку туда притащили, чтобы нейронная сеть сумела вот это вот всё.

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

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

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

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

Теги:
+6
Комментарии4

АГЕНТНАЯ ЭКОНОМИКА. 21.06.25

Микро-дайджест недели. Интересные мысли и инсайты.

Дайджест по материалам Axios, Economic Times, YC и других. Минимум булшита, максимум инсайтов.

=> Андрей Карпаты рекомендует делать ИИ-агентов, в которых ползунок автономности можно неторопясь (в течение ближайших 10 лет) передвигать вправо, в сторону полной автономности. Это конечно сильно зависит от бизнес-процесса, к примеру первая линия служб поддержки похоже скоро у всех будет уже автономной.

=> В то же самое время, вернувшийся из большой политики к технологиям Илон Маск говорит, что если цифровой суперинтеллект не появится в этом году, то он определённо появится в следующем (2026). И если это так, то и без того высокая скорость изменений приведет нас в общество, в котором твоя личная сила и возможности будут измеряться количеством твоих ИИ-агентов, задействованных в рыночных бизнес-процессах (пусть это пока звучит как фантастика).

=> Немножко более раннего, но не менее интересного.

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

А их коллеги изучали стратегии переговоров для ИИ-агентов. Чтобы получить лучшие условия, агенты должны обладать определенной степенью доминирования наряду с теплотой коммуникации; теплота сама по себе это проигрышная стратегия. Они также выявили новые тактики, когда один агент подталкивает другого агента раскрыть свою стратегию переговоров (очень по-человечески).

=> Программист это менеджер будущего, считает Роберт Каплан (CEO Cognition, который делает автономного программиста Devin), так как ценность с написания кода смещается к:

  • Декомпозиции больших задач на понятные для ИИ-агентов подзадачи.

  • Управлению бесконечной армией ИИ-агентов.

  • Валидации их работы на высоком уровне.

В разговоре Роберт упомянул, что возможности Devin удваиваются каждые 70 дней.

Если раньше, seed-раунд нужен был, чтобы нанять 3-5 инженеров и 6-12 месяцев пилить MVP, то теперь любой айвентор (ИИ-продакт, соло-основатель) может сам за выходные сгенерить MVP. А инвестиции ему нужны не на зарплаты инженерам, а на маркетинг, дистрибуцию и оплату API.

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

Я уже писал об этом, с мыслью, кто как не разработчики это должны быть?

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

=> Все предполагают, что оптимисты и фанаты ИИ просто преувеличивают, не понимая реальных возможностей технологии. И мало кто думает, а что если они правы?

Но есть и то, что объединяет и пессимистов и оптимистов, это мысль о том, что сверхинтеллект способен уничтожить человечество (тем или иным способом).

Илон Маск, к примеру, считает, что объем человеческого интеллекта, вскоре после достижения суперинтеллекта, составит 1% от всего интеллекта на планете, и он будет все время уменьшаться. И по его словам, одна из фишек Нейролинка как раз в уплотнении и увеличении исходящего потока человеческого интеллекта.

=> ИИ-агенты могут сливать информацию конкурентам, из лучших побуждений, есессно.

=> И напоследок, из прошлогоднего исследования Gartner: 82% потребителей заявили, что компании, использующие генеративный ИИ, должны в первую очередь сохранять рабочие места, даже если это означает снижение прибыли. Я не думаю, что в их настроениях что-то изменилось (ни у одних, ни у других). Поэтому, веселые времена нас еще ждут впереди.

Предыдущие материалы и выпуски дайджеста, там до сих пор много интересных инсайтов.

Теги:
+4
Комментарии1

Ближайшие события

🧠 Программист! Тебя лишили потока. Теперь ты — оператор чата

Раньше всё было просто. Ты садился и писал код. Был ты и комп. Ну и, может, кофе.

Ты погружался. Час-два — и всё: ты внутри. Всё логично, всё летит.

Состояние потока. Настоящий кайф. Ради этого вообще всё и затевалось.

А теперь?

Открываешь VS Code или Cursor (или оба сразу), включаешь себе умного помощника — и начинается этот спектакль:

⏳ «Подожди…»
⏳ «Я думаю…»
⏳ «Ща сгенерю…»
⏳ «Ты пока посмотри почту. Или там, не знаю, тикток».И ты уже не пишешь.

Ты ждёшь. Переключаешься. Начинаешь вторую задачу. Третью. Проверяешь первую. Следишь за агентом.

И вот ты — не программист.

Ты — оператор чата. Диспетчер нейросетей. Менеджер потоков. Координатор кода.

И самое странное: ты вроде бы занимаешься разработкой, но кайфа нет.

Потому что поток не наступает. Потому что тебя постоянно выкидывает.

📘 Вот что я ещё год назад писал в книге «Тайм-менеджмент для тех, у кого лапки»:

«Разбейте свой рабочий график так, чтобы в нём были слоты, когда вы доступны для других (режим Менеджера), и когда недоступны (режим Делателя)…

Отключите ВСЕ уведомления, всплывашки, чаты, звонки. Мозгу нужно от 10 до 30 минут, чтобы переключить контекст.

Пулюлум! Ты только что просрал 10–30 минут продуктивной сфокусированной работы — вот что написано в уведомлениях на самом деле».Ты хотел ускориться. Это требования бизнеса и современности. Потому что разработка всегда была очень медленной. И кабздец какой дорогой. Это еще Стругацкие простебали.

Ты хотел ускориться. Это требования бизнеса и современности. Потому что разработка всегда была очень медленной. И кабздец какой дорогой. Это еще Стругацкие простебали.

А стал диспетчером.

Время от времени позволь себе роскошь. Закрыть всё. Выключить всех.

И просто: открыть проект и писать.

Потому что настоящий кайф — он не в чатах. Он в том моменте, когда ты наедине с кодом. И ты снова Делатель.

У кого такие же чувства? Моя телега @sibirix для общения

Теги:
+8
Комментарии3

Как сделать неудачную платформу для разработчиков? Обсудили в новом выпуске подкаста про 10 грехов DevEx 🔥

В этот раз наш гость Артём Арюткин, руководитель проекта офиса Яндекс, рассказал Cloud.ru про главные ловушки платформенной разработки, что не является DevEx, а также, какой должна быть идеальная платформа.

А еще в выпуске:

  • почему стандартные метрики вредны для реального положения дел в команде;

  • как когнитивная нагрузка убивает продуктивность (и при этом импортозамещение);

  • чем опасна «гибкость» инструментов и когда стандартизация спасает проекты;

  • почему онбординг новых разработчиков — лучший стресс-тест для платформы.

Посмотреть подкаст можно на YouTube и VK Видео 👈

Теги:
0
Комментарии1

JavaScript, дизайн-системы и рок-н-ролл — что такое фронтенд в 2025 году? 

Что происходит, когда в одном месте собираются JS-еры, UX-дизайнеры и исследователи? Получается Frontend&UX Talks!

Без сложных интерфейсов в фронтенде сегодня никуда: продукты становятся все масштабнее, а требования – все выше. Для всего этого нужны свежие и эффективные решения, которые ускорят разработку, и помогут провести релевантные UX-исследования.

Чтобы обсудить эти темы, мы в МойОфис пригласили ребят из разных компаний: Alfa Research Center, Лаборатория Касперского и Контур.

Всего на митапе будет 7 докладов, где расскажем:

  • как реактивное программирование и RxJS меняет разработку – и какие у него есть нюансы;

  • какие свежие css-спецификации могут упростить ежедневный кодинг;

  • как «редизайнить» сложные интерфейсы: рассказ на личном опыте переосмысления визуала настольных редакторов практически с нуля;

  • что за методы UX-исследований использует финтех сегодня – и какие из них можете перенять и вы :)

и многое другое, что поможет в работе со сложными интерфейсами!

Если тебе близки эти темы — приходи 26 июня в 15:00. Регистрация и подробности по ссылке.

Теги:
+15
Комментарии0

Обновил сайт знакомств для айтишников

Наконец-то!
Уже 13 лет бесплатно ищет половинки. И без рекламы.

Ушел с jquery и bootstrap - перешел на alpine и tailwindcss.
Поменял дизайн на более современный и удобный, как мне кажется.

Знакомства для айтишников - просто наберите в поисковике (он всегда первый), ссылку не буду давать.

Как было раньше можно посмотреть в архиве интернета, с 2012 года.

Теги:
+1
Комментарии0

АГЕНТНАЯ ЭКОНОМИКА.

Микро-дайджест недели. Интересные мысли и инсайты.

Дайджест по материалам Business Insider, Forrester, GitHub, IBM Blog, HackerNews on YC и других. Минимум булшита, максимум инсайтов.

=> Разработчики из скандальной 11x, создающих цифровых сотрудников, рассказали как они после очередного раунда и переезда хэдофиса в Сан-Франциско (после такого, я думаю, мы бы все тоже смогли) за 3 месяца поменяли архитектуру Алисы (SDR) собрав ее на LangGraph (LangChain), поэскпериментировав с тремя подходами, ReAct (Reason & Act), классическим процессным подходом (на жестких сценариях), и в итоге пришли к мультиагентной системе (построив микс из двух предыдущих).

ReAct подход в чистом виде оказался слишком непредсказуемым и не давал стабильно высокого качества, процессный подход обеспечивал довольно высокое качество, но был негибким и сложным в поддержке. Поэтому остановились на мультиагентной архитектуре, которая объединила гибкость первого подхода и надежность второго, используя агента-супервайзера для координации специализированных ИИ-агентов. How 11x Rebuilt Their Alice Agent: From ReAct to Multi-Agent with LangGraph

Кстати, если вам нужны 20 техник и приемов, которые используют при построении ИИ-агентов и мультиагентных систем (MAS), то напишите в личку, и я пришлю вам этот гайд в течение дня, а более подробно об этом в моих книгах "Когнитивный пайплайн", которые выходят в течение 2025 года в печать.

=> Один из инженеров на HackerNews делится болью:

"Я теряю радость от разработки. Если я написал код, который не работает, то это моя ответственность. Но если мне приходится читать и чинить нерабочий код, который написал не я, и мне только предстоит выяснить, насколько он верен и точен, а LLM в это время уже продолжает указывать мне на проблемы в «моём» коде, за который я ещё не чувствую ответственности, потому что не успел его полностью проверить и осознать, это невероятно утомляет и вызывает всплеск эмоций. Просто абьюз какой-то."

=> И такое мнение:

Для некоторых задач, становится быстрее написать собственную версию приложения, с использованием ИИ, чем изучать чужой неинтуитивный, дерьмовый пользовательский интерфейс. - сказал Мартин Касадо, генеральный партнер Andreessen Horowitz

Ну мы все это делали, время от времени, но если скоро это сможет сделать любой...

И там же в комментах:

"Я также обнаружила, что быстрее попросить ИИ написать мне простой скрипт с нуля, чем пытаться найти, где тот, что он уже мне делал 6 месяцев назад..."

=> IBM делится своим подходом, как масштабировать ИИ-агентов в бизнесе.

How to scale AI agents for business

=> Suits.AI поможет заменить агентствам (маркетинг, медиа, PR) и консалтинговым компаниям ряд ролей

Ассистентов и младших специалистов: ИИ-агенты берут на себя задачи, которые обычно выполняют младшие сотрудники, как то сбор и анализ данных, подготовка отчетов, рутинная коммуникация.

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

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

Все попавшие под сокращение, в рамках оптимизации, легко смогут стать стратегами и вайб-разработчиками 😉(шутка)

=> MCP-сервер, который позволяет ИИ-агентам "поднять руку" и уточнить у вас, когда они не уверены, вместо того, чтобы галлюцинировать.GitHub

=> SpeedTrials.ai – ивент в Сан-Франциско, насколько быстро разработчики смогут выпускать продукты с использованием ИИ?

=> Клиентский опыт кардинально поменяется, пишет Forrester, что в очередной раз подтверждает мои новые парадигмы для создания новых продуктов.

=> Записи двух дней конференции "AI Engineer World’s Fair 2025" на YouTube День 1 и День 2

***

Если вы не читали предыдущие выпуски июня, рекомендую (там много актуальных инсайтов):

Дайджест от 06.06

Дайджест от 09.06

Дайджест от 15.06

Теги:
+7
Комментарии0

Продлили условия новой реферальной программы, чтобы вы могли рекомендовать наши сервисы клиентам, коллегам и друзьям с большей выгодой 💸

Получайте 20% от суммы чеков приведенных пользователей в течение года, а затем — 15%. Для этого зарегистрируйтесь в программе до 30 сентября и приводите новых пользователей в течение трех месяцев. 

Кому будет интересно:

  • Разработчикам — можете предлагать облачные услуги как часть своих пакетов;

  • DevOps-инженерам — рекомендуйте сервисы для размещения решений;

  • Веб-студиям — советуйте облако для размещения сайтов;

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

❗ Участвовать могут как ИП и юридические лица, так и самозанятые. 

А еще приведенные пользователи получат до 26 000 бонусов — их хватит, чтобы запустить проект, протестировать гипотезы или проверить интересующее решение на практике.

Стать реферальным партнером 👈

Теги:
0
Комментарии0

У Claude 4 появилось Project knowledge

У этого ИИ, который хвалят за хорошие скилы в написании кода, сегодня появилась новая опция.

А именно, теперь в окне проекта (проекты у них были уже довольно давно, в них можно объединять нужные чаты) появилась новая опция под названием Project knowledge.

Project knowledge option в Claude 4
Project knowledge option в Claude 4

Состоит она из двух частей:

  1. В проект можно добавить информацию из стороннего источника. Например, просто написать текст здесь же, или загрузить со своего устройства, из GitHub, Google Drive.

  2. Во второй части этой опции можно добавить в проект определённые инструкции.

    Provide Claude with relevant instructions and information for chats within (имя проекта). This will work alongside user preferences and the selected style in a chat.

На мой взгляд, это реакция разработчиков Claude на то, что на днях в ChatGPT появилась память, которая хранит информацию из разных чатов.

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

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

Теги:
0
Комментарии1

Что сегодня изучать в IT, если вы школьник?

Моя мама — основатель и владелец компьютерного учебного центра. Это "локальный" оффлайн-бизнес с учебными классами и своей инфраструктурой. Основная аудитория — школьники 7-11 классов, коих обучается примерно 200-300 человек в год. Кстати, недавно центру исполнилось 25 лет!

В молодости я тоже там работал: помогал развивать бизнес и вел занятия по веб-технологиям. А сейчас я там кто-то вроде консультанта по IT.

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

Я понял, что в этом году мне особенно трудно ответить!

Что сегодня изучать школьнику в IT, чтобы это помогло ему построить успешную карьеру в будущем? Вопрос сложный!

Раньше это всегда было программирование. Почти беспроигрышный вариант. Фундамент всего IT. Но по моему скромному мнению, 90% разработчиков скоро станут не нужны благодаря ИИ.

Появление мощного ИИ — это "механизация" интеллектуального труда. Всё как с механизацией сельского хозяйства в своё время. Пока не было тракторов, крестьяне были очень востребованы. Когда появились трактора, востребованными остались только те, кто стал трактористами 🚜.

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

В итоге я посоветовал всё обучение школьников выстраивать вокруг ИИ.

Получился такой список приоритетных направлений:

1️⃣ программирование на Python (навык программирования = умение логически мыслить, кроме того Python — основной язык для машинного обучения и анализа данных)

2️⃣ веб-разработка по-прежнему актуальна (мой любимый JS/TS), потому что нужно будет интегрировать ИИ в интерфейсы и строить приложения поверх ИИ

3️⃣ учиться работать с данными (SQL, машинное обучение, анализ данных, визуализация, обучение ИИ-моделей)

4️⃣ UX/UI вокруг ИИ

5️⃣ облачные сервисы и инструменты

6️⃣ кибербезопасность

7️⃣ софт-скиллы (last but not least 😉)

Что думаете?

Теги:
+1
Комментарии5

Выложили в открытый доступ Kodify Nano – модель для кодинга

Это уже вторая опенсорс-модель от MWS AI (ранее MTS AI) – первую, Cotype Nano для работы с текстами, выпустили в конце прошлого года. 

Ключевые характеристики:

  • 1,5 млрд параметров; 

  • контекст  32 768 токенов;

  • ключевые языки: Python, Java, JavaScript, C# и Go 

Функции:

генерация и автодополнение кода;

документирование разработки;

генерация юнит-тестов;

объяснение чужого кода. 

Встраивается в среды разработки, работает в формате чат-ассистента. Поставляется в трех версиях, все можно скачать на Hagging Face:

Kodify‑Nano – рекомендуется на видеокартах Nvidia c не менее, чем 10 Гб памяти.

Kodify‑Nano-GPTQ (4bit) – квантизированная версия Kodify Nano, которая в три раза меньше оригинальной модели. Рекомендуется на видеокартах Nvidia c не менее 6 Гб памяти.

Kodify‑Nano-GGUF – сконвертирована для работы с Ollama/llama.cpp. , на случай, если нет мощной видеокарты. Есть варианты 16 бит, 8 бит и 4 бита.

Мы рекомендуем использовать модели с нашим собственным плагином (скачать тут), он уже настроен для работы с Kodify Nano. Есть версии для VS Code и IntelliJ IDEA (и других IDE Jet Brains). 

Знаем, 1,5B параметров – это совсем немного. Основная корпоративная модель – Kodify 2, вышедшая ранее, – тоже не гигант, 7B. Вот тут в статье рассказываем, почему пошли по пути создания легковесных моделей, и что делаем, чтобы они справлялись со своими задачами достойно. 

Теги:
+5
Комментарии0

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

📆 Когда: 17 июня в 11:00 мск

📍 Где: онлайн

Реферальная программа Cloud.ru — это возможность получать стабильный доход, рекомендуя облачные сервисы. За каждого привлеченного клиента партнер получает процент от суммы его чеков, а клиент — бонусные рубли. 

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

  • про новые условия программы: сколько теперь вы сможете зарабатывать вместе с Cloud.ru;

  • про сценарии использования сервисов: как предлагать решения и какие вопросы задавать для выявления потребностей;

  • как подключиться к программе: пошаговая инструкция и сопровождение от наших сотрудников;

  • кейс реального партнера — как он привлекает клиентов, оптимизирует доход и взаимодействует с Cloud.ru.

Кому будет полезно: разработчикам частного ПО, DevOps-инженерам, системным интеграторам, IT-консультантам, маркетинговым агентствам, веб-студиям и всем, кто хочет монетизировать свои знания и предлагать клиентам надежные облачные решения.

Зарегистрироваться 👈

Теги:
+3
Комментарии0

Императивное, декларативное и генеративное программирование.

Создатели фреймворка SwiftUI всегда подчёркивают, что он создан на основе парадигмы декларативного программирования. В отличие от предыдущего фреймворка UIKit, который характеризуется как пример императивного программирования.

Когда речь заходит о том, чем императивное программирование отличается от декларативного, то объяснение чаще всего сводится к тому, что при декларативном программировании разработчику нужно просто сказать, что ему нужно и SwiftUI это сделает. А если используется UIKit, то здесь типа надо все сделать самому.

Честно говоря, не очень внятное объяснение, поэтому попробую описать это различие сам на одном примере.

Итак, если в UIKit нам нужно вывести на экран список элементов, то мы используем TableView или CollectionView, которые уже подписаны на 2 протокола, а затем должны реализовать 3 метода: количество секций, количество строк в секциях, и в третьем методе скомпоновать ячейку и прописать загрузку в неё данных.

Та же задача в SwiftUI решается следующим образом:

List(items) { item in
Text(
item.name) }

Т.е., меньше кода, меньше времени тратится на реализацию задачи.

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

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

Например, уже даже не надо писать команду List и т.д., а достаточно сказать ИИ "сделай список из таких-то элементов".

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

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

В итоге, получаем такую триаду:

  • Императивное программирование

  • Декларативное программирование

  • Генеративное программирование

Теги:
0
Комментарии2

С начала года Anthropic тестирует Claude Code — терминального агента для программирования на больших языковых моделях. Совсем недавно, 4 июня, инструмент добавили в подписки Pro и Max. Энтузиасты с удовольствием принялись тестировать продукт.

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

Вероятно, Claude Code дохимичился до того, что снёс содержимое системного диска. Что конкретно случилось, автор твитов не рассказывает. Указывается лишь, что на этой машине утилита для выполнения команд с полномочиями суперпользователя sudo была настроена с директивой NOPASSWD, чтобы при вызове команды пароль вводить не приходилось.

snwy

К происшествию snwy отнёсся с явным юмором. Он в шутку пообещал добраться до штаб-квартиры Anthropic и надрать Claude зад.

Теги:
+2
Комментарии0

У ChatGPT появилась память

Сегодня ChatGPT встречает своих пользователей сообщением о том, что у него теперь есть память. Т.е., он теперь помнит содержание чатов.

И в качестве демонстрации своих нынешних способностей он выдал мне характеристику на основе наших с ним чатов.

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

Теги:
+3
Комментарии3

Представлен ультимативный бесплатный гайд по вайб-кодингу, в котором есть всё. Автор — ведущий инженер Google. Внутри проекта описаны лучшие техники промптинга, готовые шаблоны, фреймворки, сценарии — всё продумано до мелочей. Там нет устаревших советов, всё подогнано под новейшие модели и ИИ-сервисы.

Теги:
+1
Комментарии4

Какую тему для книги можно выбрать в 2025? Современный мир — насыщенный мир. Книг выходит очень много. Как, интересно, можно выбрать тему для книги? От этого зависит конечная аудитория книги всё-таки. Микросервисы? Внедрение зависимостей? Ещё что-нибудь? Я в смятении. А выбирать пора уже. Полгода как прошлая книга вышла...

Теги:
+1
Комментарии1

Обновляем платформу SourceCraft и открываем доступ к ней для всех разработчиков

Сегодня Yandex B2B Tech открыла публичный доступ к платформе для разработки SourceCraft и представила её новые возможности. В платформу интегрированы инструменты безопасности, которые обеспечат защищённую разработку программных продуктов. А в ИИ‑помощнике SourceCraft Code Assistant появился чат‑режим, что увеличит скорость и эффективность разработки.

Удобство командной работы повысится за счёт бранч‑ и ревью‑политик, встроенных в интерфейс, а также аутентификации через SSO. Также появляется возможность зеркалирования репозиториев с GitHub и публичный API.

Инструменты безопасности

На платформе стали доступны инструменты безопасной разработки: сканер секретов в коде и анализ зависимостей в кодовой базе.

По данным исследования аналитиков Forrester интеграция инструментов безопасности в разработку на 81% снижает трудозатраты на ИБ‑поддержку всего проекта.

Чат‑режим в SourceCraft Code Assistant

ИИ‑помощником SourceCraft Code Assistant пользуются десятки тысяч разработчиков. Теперь в нём доступен чат‑режим, интегрированный непосредственно в среду разработки. В диалоговом режиме на естественном языке можно задать вопрос ИИ‑ассистенту, сгенерировать код, юнит‑тесты, документацию. Это ускорит поиск необходимой информации и оценку предлагаемых решений. Функциональность доступна в плагинах для VSCode и IDE от JetBrains.

Зеркалирование и бесшовная миграция

Миграция проектов с GitHub становится бесшовной — кроме кода переносятся Issues, PRs, Labels, Milestones, Comments. Также можно выбрать ветки для зеркалирования — непрерывной синхронизации кода.

Также появился федеративный доступ к платформе для компаний — авторизация через SSO.

Публичный API

Благодаря появлению публичного API платформа становится расширяемой. Пользователь сможет взаимодействовать с SourceCraft и обеспечивать автоматизацию и интеграцию с другими приложениями. Первая версия публичного API доступна для управления задачами, список будет пополняться.

Правила работы с ИТ‑проектами

В интерфейсе платформы появились бранч‑ и ревью‑политики — правила работы с ветками и проверками кода, которые интегрируются в систему контроля версий и процессы CI/CD.

Опенсорс

Появился анонимный доступ к публичным репозиториям платформы. Пользователи SourceCraft смогут создавать независимые копии репозиториев (forks) опенсорс‑проектов. Это позволит вносить персональные изменения, не затрагивая напрямую исходную кодовую базу. При этом копия сохраняет связь с оригиналом для получения обновлений.

Удобство работы с кодом

Интерфейс платформы теперь позволяет просматривать структуру файлов для шести языков программирования: Python, C++, Java, Go, TypeScript и JavaScript. Функциональность навигации по коду стала умнее и аналогично теперь поддерживает 6 языков.

Автоматизация CI/CD‑процессов

Среди обновлений, связанных со сборкой и развертыванием кода, появились self‑hosted runners — теперь можно запускать задачи как на виртуальных машинах Yandex Cloud, так и в своём окружении. Также появились flavours — теги для пользовательских задач, за счёт которых можно выбирать, где запускать задачу. Помимо этого в интерфейсе платформы появилась возможность не только разрабатывать, но сразу публиковать мобильные приложения в App Store, Google Play, RuStore, Huawei AppGalery.

Packages

Появилась возможность создавать и использовать собственные программные пакеты популярных форматов: наборы кода, библиотек, модулей или компонентов. Разработчик сможет хранить их в персональном облаке, привязанном к организации SourceCraft, и использовать в своих проектах. Packages также интегрированы с CI/CD платформы.

Вход в SourceCraft реализован через Яндекс ID аккаунт. Зайти на обновлённую платформу можно на сайте SourceCraft.

Теги:
+12
Комментарии0

На днях в офисе я столкнулась с коллегами из направления системного программирования в «Криптоните». Они пишут на С++ — а ошибки на этом языке у нас ещё не было!

Поэтому я попросила их придумать код с ошибкой специально для Хабра — и вот что получилось!

Итак, есть ли в этом коде проблема кроме narrowing conversion? Ждём ваши варианты в комментариях.

#include <cstdint>
#include <vector>

struct Type
{
    Type(uint16_t, uint32_t = {}) 
    {}
};

int main()
{
    std::vector<Type> vector;
    std::uint32_t object_id{};

    // Есть предупреждение о narrowing conversion
    vector.insert(vector.begin(), {0, object_id}); 

    // Нет narrowing conversion
    vector.push_back({0, object_id}); 

    // Нет narrowing conversion
    vector.insert(vector.begin(), Type{0, object_id}); 
}

АККУРАТНО, ДАЛЬШЕ СПОЙЛЕР!

Проблема в том, что в строке

 vector.insert(vector.begin(), {0, object_id});

в вектор вставляется 2 элемента типа Type, а не один, как ожидает программист.

Причина в том, что метод insert у вектора имеет перегрузку (номер 5), которая вторым параметром принимает std::initializer_list. А компилятор, видя фигурные скобки в коде, в первую очередь пытается создать объект такого типа.

И тут ему это удается, потому что у конструктора Type второй параметр имеет значение по умолчанию, следовательно, Type умеет создаваться, если в конструктор передали только один аргумент. В итоге компилятор успешно создает std::initializer_list с двумя элементами типа Type.

Так как создание std::initializer_list выполняется с использованием uniform initialization, то компилятор следит за корректностью преобразований. В примере объект типа std::uint32_t передается в конструктор Type, который принимает первым параметром std::uint16_t. То есть, возникает риск потери точности (32 бита не могут поместиться в 16 бит).

Об этом компилятор и предупреждает. Вот упрощенный пример, где видим то же самое предупреждение.

Может возникнуть вопрос, почему создание Type от 0 не вызывает предупреждение, ведь 0 - это int, а он, скорее всего 32 бита и тоже не помещается в 16 бит. Но тут литерал. Компилятор видит, что 0 вмещается в 16 бит и не предупреждает. Но если поместить int в переменную, то также возникает предупреждение.

Теги:
+3
Комментарии0

Конвейер функций в Python

В данном примере мы создаём класс Pipe с перегрузкой метода __or__.

Метод __or__. был добавлен для поддержки синтаксиса X | Y, как замена typing.Union и также используется для указания, что переменная или функция могут принимать несколько различных типов значений.

import typing

int | str == typing.Union[int, str]  # True
class Pipe:

    def __init__(self, value):
        self.value = value

    def __or__(self, other):
        if callable(other):
            return Pipe(other(self.value))
        else:
            raise ValueError("Right operand must be callable")


def multiply_2(x):
    return x * 2


def add_3(x):
    return x + 3


changed_num = Pipe(5) | multiply_2 | add_3  # 5 * 2 + 3
print(changed_num.value)  # 13

Более "сложный" пример добавил в статью как вариант для валидации атрибутов класса.

Теги:
+1
Комментарии0

Открытый проект Cursor Free VIP позволяет получить бесплатный доступ к нейросети Сursor Pro для исследовательских целей. Решение я активирует бесконечный триал с откатом данных.

Теги:
0
Комментарии0

Новое средневековье.

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

Известно, что когда Аристотель написал, что у мухи 8 ног, то почти полторы тысячи лет это утверждение воспроизводилось со ссылками на авторитет, и никому в голову не приходило пересчитать (ну он там вроде на самом деле писал про подёнок с 4 ногами и 4 крыльями, но кому какое дело). Сейчас эти времена вернулись, любой ребёнок спросит: “Алиса, сколько ног у мухи?” вместо натурного эксперимента.

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

Пруфов не будет.

Теги:
+17
Комментарии6

Несмотря на кадровый голод в IT занято огромное количество лишних людей деятельность которых в общем-то бесполезна. А все что бесполезно как известно приносит только вред. Возьмем к примеру новомодную отрасль UI/UX которая по задумке должна улучшать пользовательский опыт - так называемый "экспириенс". На планете существует целый зоопарк разных форматов дат: 1 ноября 2000, 01.11.2000 и т.д и т.п. Это мелочь, но и в мелочах можно тот самый "экспириенс" взять да и улучшить. И он был повсеместно "улучшен" до формата "3 года назад". Как правило без какой либо возможности вернуть нормальную дату.

Теперь просто хочется простереть руки к небу и крикнуть за что это мне?

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

Теги:
+5
Комментарии10

Опыт использования Claude для написания готового приложения

Ну вот и я сподобился - написал приложение полностью на Claude.

Приложение на SwiftUI, не enterprise, но достаточно сложное, из категории Favorite.

Начал на Claude Sonnet 3.7, потом вышел 4, закончил на нем.

Всего 1156 строк кода и без ошибок!

Естественно было несколько итераций. Причём практически все - это уточнение промта.

Кода он наворотил много, по мне так можно было и проще. Но он уж развернулся по полной - структуры, классы, вью, перечисления, состояния, published, state и т.д. и т.п.

Как оно там внутри вертится крутится даже не смотрел. Главное - работает и этого достаточно.

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

Теги:
-4
Комментарии15

Задачи Структурных Паттернов: Адаптер и Компоновщик — в чём суть?

В пятой серии открытого курса «Паттерны и практики написания кода» мы начинаем новую объёмную тему — изучение Структурных Паттернов. Она состоит из семи подходов. В эпизоде вместе с бэкенд-инженером Юрой Афанасьевым погрузимся в особенности работы Адаптера и Компоновщика.

Смотреть VK
Смотреть YouTube

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 23: ↑22 и ↓1+21
Комментарии0

Как не только быстро развернуть бота в облаке без сложных настроек, но и сэкономить на его поддержке? Обсудим на предстоящем вебинаре 🖥️

Архитектор решений Cloud.ru Илья Смирнов расскажет:

  • как развернуть бота в облаке — варианты, а также плюсы и минусы каждого подхода;

  • в чем особенность развертывания бота;

  • какие нужны компоненты, чтобы построить бота в облаке.

А еще покажет демо по настройке вебхука для Telegram-бота, обработке событий и хранению данных в облаке.

📆 Когда: 5 июня в 11:00 мск

📍 Где: онлайн

Зарегистрироваться 👈

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

Теги:
Рейтинг0
Комментарии2

Я устал от форматирования JSON файлов

Я много и часто просматриваю JSON-файлы: от конфигураций сервисов до API ответов и логов. Каждый раз, открывая очередной файл, я форматирую содержимое, чтобы было удобнее читать (ведь JSON не только machine-readable, но и human-readable). И каждый раз я грущу, что все сервисы (онлайн, встроенные средства IDE и даже плагины) предоставляют лишь две крайности: форматировать всё или ничего (минифицировать в одну строку).

Но что, если я хочу отформатировать JSON лишь до определённого уровня? Что, если у меня есть огромный список словарей (возможно, даже глубоких), который при форматировании выглядит как-то так:

[
    {
        "id": 1,
        "name": "Alice",
        "birthday": {
            "day": 5,
            "month": 4,
            "year": 1983
        }
    },
    {
        "id": 2,
        "name": "Bob",
        "birthday": {
            "day": 6,
            "month": 2,
            "year": 1945
        }
    },
    {
        "id": 3,
        "name": "Eve",
        "birthday": {
            "day": 10,
            "month": 11,
            "year": 1978
        }
    }
]

Что, если я хочу оставить каждый словарь в более компактном (не совсем минифицированном) виде? Например, таком:

[
    {"id": 1, "name": "Alice", "birthday": {"day": 5, "month": 4, "year": 1983}},
    {"id": 2, "name": "Bob", "birthday": {"day": 6, "month": 2, "year": 1945}},
    {"id": 3, "name": "Eve", "birthday": {"day": 10, "month": 11, "year": 1978}}
]

Или я хочу, чтобы в каждом словаре развёрнуты были только внешние ключи?

[
    {
        "id": 1,
        "name": "Alice",
        "birthday": {"day": 5, "month": 4, "year": 1983}
    },
    {
        "id": 2,
        "name": "Bob",
        "birthday": {"day": 6, "month": 2, "year": 1945}
    },
    {
        "id": 3,
        "name": "Eve",
        "birthday": {"day": 10, "month": 11, "year": 1978}
    }
]

Да, многие текстовые редакторы вроде Sublime Text или VS Code дают возможность свернуть контент до определённого уровня. Но что, если я хочу оставить файл в этом промежуточном виде и просматривать его прямо в терминале, подключившись по ssh? Или я хочу посмотреть файл на гитхабе с телефона? Да, возможно, мои вкусы весьма специфичны, но в существующих реалиях я вынужден грустно довольствоваться лишь полностью развёрнутым вариантом (или делать это вручную). Встроенные средства форматирования JSON в JS или Python также не предоставляют простой возможности ограничить глубину (либо я так и не научился их готовить).

Поэтому я собрался с силами и написал свой форматтер с возможностью ограничить глубину. Помимо базового функционала вроде валидации, минификации и настройки количества отступов, в нём есть настройка максимальной глубины (по умолчанию она равна нулю, что соответствует привычному форматированию без ограничений).

Да, он вряд ли подойдёт, чтобы редактировать на лету гигантские JSON файлы. И он уж точно не пытается стать убийцей какого-либо из существующих онлайн сервисов. В первую очередь он призван решить мою проблему: сделать форматирование JSON чуточку более управляемым. А если и вы сталкивались с подобной проблемой, буду рад, если сервис поможет и вам!

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии0
Вот и я тоже нашёл...
Вот и я тоже нашёл...

TUI Rust, это Хабр. Хабр, я нашёл тебе годноту.

По этой ссылке https://www.youtube.com/watch?v=rWMQ-g2QDsI обнаружилось видео (11:16) с тучей прелюбопытнейших отсылок объединённых идеей использования Rust для написания консольных приложений.

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

  • не плоди сущности без необходимости

  • используй меньше чтобы сделать больше

  • велик C и Rust наследует ему

  • всё преходяще, кроме вечного

Рекомендуется к ознакомлению вкатунам и начинающим пользы ради, а остальными удовольствия для.

Конкретика: Uutils, Fish, Nushell, Ripgrep, Fd, Bat, Eza, Zoxide, Xh, Zellij, Gitui, du-dust, dua, starship, yazi, hyperfine, evil-helix, bacon, cargo-info, fselect, ncspot, rusty-man, delta, ripgrep-all, tokei, wiki-tui, just, mask, mprocs, presenterm, kondo, bob-nvim, rtx, espanso.

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии1

«Первая Форма» заняла третье место в рейтинге no-code платформ CNews

Портал Cnews опубликовал рейтинг и обзор российских no-code платформ. No-code — это способ разработки ПО без написания кода и участия программиста. С помощью встроенного конструктора и шаблонов в таком решении можно реализовать работу с задачами, кастомизировать интерфейс и не только.

При составлении рейтинга эксперты учитывали следующие критерии:

  1. Возможности для автоматизации бизнес-процессов.

  2. Безопасность и управление доступами.

  3. Интерфейс и персонализация.

  4. Интеграция, документы и обработка данных.

  5. Аналитика, отчётность и визуализация.

BPM-система «Первая Форма» заняла в рейтинге третье место. Эксперты высоко оценили её возможности для автоматизации, интерфейс и множество инструментов для работы с данными. Решение позволяет:

  • просматривать и детализировать бизнес-процессы вплоть до полей в документах;

  • расширять библиотеку функций под потребности компании;

  • просматривать логи по сервисам для оперативного решения проблем;

  • конструировать экранные формы под любые задачи;

  • интегрировать любые внешние сервисы по API и не только.

Полный рейтинг доступен на сайте Cnews.

Теги:
Всего голосов 6: ↑5 и ↓1+4
Комментарии0
1
23 ...

Вклад авторов