Выложили в открытый доступ 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. Вот тут в статье рассказываем, почему пошли по пути создания легковесных моделей, и что делаем, чтобы они справлялись со своими задачами достойно.
Разработка или Vibe Coding продолжается 3 день. Я все ещё использую Bolt и смог сделать вполне рабочий сервис. Вручную программисту потребовалось бы около 1-2 недель на такой функционал.
Авторизация
Редактор форм
Просмотр ответов форм с фильтрами
Выгрузка ответов в csv
Шаблоны форм
Загрузка файлов в хранилище
Публикация формы для клиента
Все уже работает и связано с БД
Остальные скрины и ДЕМО версию пришлось опубликовать в телеге т.к. тут лимит на 1 картинку.
В моем канале IT Talks можно скачать бесплатный методический материал, где ты найдешь шаблоны пяти основных диаграмм на PlantUML в практических кейсах с описанием.
Для каждого шаблона подробно описан процесс, для которого построена диаграмма, а также есть сама диаграмма и исходный код на PlantUML. В гайде можно найти диаграмму активности, последовательности, прецедентов, состояний и компонентов.
Это восьмая серия курса «Паттерны и практики написания кода», где вместе с бэкенд-инженером Юрой Афанасьевым открываем новую тему — Поведенческие паттерны. Данная группа самая обширная из всех изученных, поэтому в новом эпизоде постепенно разберём первые два подхода: Стратегия и Состояние.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Правда ли, что пользователи фанатеют по темному режиму? Проверяем в своем приложении
Много слышал о том, что темная тема ― это тренд и чуть ли не 100% пользователей на нее переедет.
Мы решили проверить, как обстоят дела с темной темой в нашем мобильном приложении системы управления проектами YouGile. Dark mode у нас просили еще с момента запуска мобильного приложения, темная тема входила в топ-10 запросов. Проверили ― оказалось, 40% регулярно использует dark mode.
Так выглядит наше приложение YouGile в темной и светлой темах
Похоже ли это на то, что светлая тема вообще не нужна? Видимо, нет. Пользователи из России предпочитают и то, и другое ― темную тему ставит 34% пользователей (данные 2023). Опрос Android Authority показывает, что dark mode предпочитает 81% респондентов, но опросу уже пять лет и выборка там менее 3 000 человек.
А вообще темный режим ― это правда полезно, особенно для зрения. А вот то, что темная тема экономит заряд батареи ― видимо, неправда. В этом году выяснилось, что скорее наоборот. Все из-за того что пользователи включают яркость экрана на максимум.
Я сам использую темную тему, причем везде, где это возможно. Даже в документах Word у меня черный лист и белый текст. Мне нравится, что так экран более контрастный и глаза устают меньше.
Микрокоманды захватывают Кремниевую долину в США. Компании доходят до миллиардных капитализацией с 10 сотрудниками. Среди таких стартапов — Safe Superintelligence от Ильи Суцкевера, Midjourney и Adept — в каждой большую часть работы выполняет ИИ. По словам экспертов, это «смерть» для карьерного роста многих менеджеров.
Бизнес-категории Авито Услуг разительно отличаются и каждую из них развивает отдельная команда. Запросы на аналитику от заказчиков к таким командам часто похожи — преобразуясь в ad-hoc задачи, они несут в себе одну неочевидную угрозу статичной работы.
Как поступить, чтобы такого не допускать?
Привет, я Алексей Авраменко, тимлид команды аналитики в Авито Услугах, и ниже мои 10 способов решения этой проблемы:
Решайте проблемы заказчиков. Когда коллеги приходят с задачей «Выгрузите ушедших пользователей», важно понять, что они хотят оценить. Например, если это эффект от новой инициативы, то его лучше покажет динамика активных клиентов, которая уже есть в дашборде. Естественный отток происходит всё время и список ушедших пользователей ничего не даст без анализа динамики. Задавайте вопросы, чтобы решать проблемы стейкхолдеров, а не выгружать чиселки.
Делайте автоматическую базовую отчетность. Этот процесс должен стать постоянным. Сегодня достаточно одного отчёта, завтра будет фокус на новой стороне продукта — и придётся добавить новый.
Минимизируйте хаос. Избегайте вмешательства заказчиков в середине спринта. Мотивируйте их следовать процессам: приходить на брейншторм и планирование, создавать задачу, описывать проблему и ожидания. Не все заказчики дойдут даже до планирования — срочность и важность задачи могут быть преувеличены.
Унифицируйте решения для похожих задач. Группируйте запросы коллег по общим признакам и метрикам и решайте одну задачу, которая покроет сразу все потребности.
Предвосхищайте вопросы. Иногда вы лучше заказчика знаете, что ему надо, и можете предугадывать проблемы. Думайте наперёд, чтобы сэкономить время на добавлении нового поля/ разреза/ функциональности или вообще на изменении решения.
Отказывайте. Даже если вы любите ваших заказчиков, иногда надо говорить «нет», но обязательно с объяснением причины: «нет, потому что…».
Планируйте задачи хотя бы на квартал вперёд. Так вы получите фокус и синхронизируетесь по ожиданиям с заказчиками. Планирование даст вам дополнительный аргумент для приоритизации задач.
Уточняйте причину срочности. Когда заказчик врывается с запросом «Срочно! Посчитайте мне длину удава в попугаях!», обязательно выясните, какие запланированные события зависят от этих данных. Иногда оказывается, что встреча по физиологии удава стоит через 3 недели. И даже для перестраховки длину удава достаточно получить в течение следующего спринта.
Создавайте инструменты для самообслуживания. Для простых однотипных задач можно сделать удобный инструмент и инструкцию к нему. Так заказчики часть проблем смогут устранить сами при косвенной поддержке с вашей стороны.
Будьте эмпатичным. Не оставляйте заказчиков один на один с их проблемой. Дайте им хотя бы минуту внимания и несколько идей, что им может помочь.
Делитесь в комментариях, какие способы уже были в вашей работе.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
В cедьмой серии курса «Паттерны и практики написания кода» разберем три последних подхода в теме Структурных Паттернов: Мост, Заместитель и Приспособленец. Вместе с бэкенд-инженером Юрой Афанасьевым посмотрим, как паттерны реализуются в коде и в чём состоит их ключевое назначение.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Обновляем платформу 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.
Что обсудили: — рабочий день техлида, — горизонтальное vs вертикальное развитие: что выбрать, — сложности руководства командой, — опыт работы в Германии и возвращения, — почему Юрий выбрал МойОфис, и как у нас устроена инженерная культура, — как развиваться самому и развивать продукт.
Хотите стать техлидом или просто узнать, что значит вести команду? В этом выпуске — кейсы и честные истории про задачи и людей.
В новом эпизоде отрытого курса «Паттерны и практики написания кода» вместе с бэкенд-инженером Авито Юрой Афанасьевым продолжаем тему Структурных Паттернов. Разберём два новых подхода — Декоратор и Фасад, поговорим про UML-диаграммы паттернов и их реализацию в коде, а также рассмотрим основные преимущества подходов.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
🔥 Agile умирает - и его убийца уже здесь. Имя ему - искусственный интеллект! Заметили ли вы что многие Agile визионеры активно перетекают в сторону AI-консалтинга?
Agile обещал гибкость и гуманистический фокус. Однако новые роли, жесткий спуск сверху, трансформации и бесконечный встречи превратили его в бюрократию новой волны Теперь же “искусственный интеллект” врывается в менеджмент и ставит жирную точку: куда интереснее цифровые следы людей и возможности автоматизации и прогнозирования, а не работа в ценностной модели и адаптивности. Аджайл перестал справляться с изменениями и запросами на больший контроль поставляемого результата
У меня есть коллега, который активно включает LLM как в пайплайны разработки, так и в общие операционные процессы - и вот уже два месяца его студия живет без единого дейлика, встречи крайне редко, но повысилась асинхронная работа, коллаборация через код и документы, а также возможности глубокого погружения задачи без постоянного переключения контекста. Иногда ему кажется, что он здесь лишний
Может, Agile - это как Nokia в мире проектного менеджмента? Собственно у Nokia был замечательный Agile
Теперь думаю: это трагедия или естественный отбор? Agile ещё жив или уже пора хоронить?
Data-класс вашей ошибки: как относиться к ошибкам как программист
Ошибки можно рассматривать как задачи, которые возникли в ходе решения другой таски. Только, как правило, с экстремально короткими сроками выполнения и большим потоком информации. И входишь ты в этот поток не с самым высоким уровнем мотивации и возможным давлением.
Чтобы убрать эмоции из анализа ошибки и подойти к ней с «трезвой» головой, можно разложить ее как код. Вот, например, какой data-класс можно выделить у ошибки:
class Error {
// что нужно было сделать
var task
// что пошло не так
var errorDetails
//какие возможные последствия уже есть или последуют и кто может пострадать
var effect
//причины ошибки
var reasons
//плюшки от решения сложившейся ситуации
var benefits
//выводы
var experience
//список улучшений, которые можно сделать, чтобы минимизировать повторение ошибки
var actionItems
}
А теперь — реализация.
Пример: Вы неверно оценили сроки выполнения целого скоупа задач, входящих в MVP для приложения Сообщения — ошиблись на целых два релиза. Никто не пострадал, но ситуация по многим аспектам неприятная.
Как бы выглядела реализация интерфейса для данного случая:
class BadEstimationForMVPMessaging {
var task = эстимация MVP для приложения Сообщения. Необходимо оценить все задачи, распределить по спринтам и релизам, учесть загрузку команды и выдать предполагаемую дату релиза
var errorDetails = ошибка в эстимации на два релиза (два месяца разработки команды из трех человек)
var effects = listOf(
- релиз переносился два раза
- демотивация команды
- вопросы с продуктовой стороны
)
var reasons = listOf(
- часть задач были сильно недооценены
- не учтены зависимости, которые, конечно, вылезли только в конце
- не заложен запас по времени
)
var benefits = listOf(
- хороший пример, который можно разобрать
- прокачан навык работы с ожиданиями
- ощутили дух стартапа с командой, решая внезапные блокеры перед релизом, и радовались запуску приложения
)
var experience = listOf(
- детальнее искать зависимости на этапе подготовки к эстимации
- закладывать запас по времени в 2-3 релиза
- на задачи с неизвестными апишками и стеком увеличивать коэффициент Пи*
)
var actionItems = listOf(
- составить чек-лист для подготовки к запуску новых приложений, на который можно ориентироваться всем командам
- обсудить с командой процесс выявления зависимостей
)
}
Смотреть на ошибки так гораздо эффективнее. Вы выносите из них уроки, а не просто посыпаете голову пеплом. Попробуйте!
А больше лайфхаков по построению здоровой культуры ошибок в жизни и на работе читайте в подробной статье от Марии Киселевой, тимлида команды разработки мобильных приложений для KvadraOS в YADRO →
Задачи Структурных Паттернов: Адаптер и Компоновщик — в чём суть?
В пятой серии открытого курса «Паттерны и практики написания кода» мы начинаем новую объёмную тему — изучение Структурных Паттернов. Она состоит из семи подходов. В эпизоде вместе с бэкенд-инженером Юрой Афанасьевым погрузимся в особенности работы Адаптера и Компоновщика.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Порождающие паттерны Prototype и Singleton: а минусы будут?
В новой серии открытого курса «Паттерны и практики написания кода» мы завершим изучение порождающих паттернов знакомством с двумя шаблонами — паттерном Прототип и паттерном Синглтон. Вместе с бэкенд-инженером Юрой Афанасьевым разберемся, почему паттерн Prototype — простой в реализации — используется редко, а паттерн Singleton — самый критикуемый.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
В новом выпуске подкаста «Свободный слот» обсуждаем сложные решения тимлида — те, что бьют не по метрикам, а по нервам. Чтобы разобрать эту непростую тему, ведущие Саша Прокшина и Паша Федотов встретились с Олегом Федоткиным, CTO в «Циан». Как принимать решения, когда нет правильного ответа? Уволить или дать шанс? Сохранить команду или пойти на реорганизацию? Согласиться на даунгрейд ради себя или тянуть дальше? Выделите свободный слот в своем расписании, чтобы вместе с ребятами найти ответы на все вопросы.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.
Опять попробовали React Native и снова решили, что не хотим его внедрять у себя 🧐
Олег и Денис, наши фронтенд-разработчики, рассказали, почему отказались от этого фреймворка, несмотря на то что потратили на погружение в него немало времени. Это был хороший эксперимент, который дал нам много полезных инсайтов. ✍️
Перед нашей командой стояла задача: написать код один раз, собрать под три платформы и встроить в существующие нативные и веб-приложения. Решили поэкспериментировать с React Native: до этого мы «щупали» фреймворк в 2018-м, но делали новое приложение, опыта разработки SDK у нас не было. Отправились гуглить и узнавать, как это сделать. Начали с разработки под Android, потом подключили в веб, и уже финально — iOS, в котором практически всё заработало по дефолту.
В React Native просто начать делать компоненты, но, погрузившись в нативную часть, мы почувствовали себя джунами — запилить поле ввода с нативной валидацией было непросто.
Вот что мы поняли при разработке:
● Обязательно нужна единая дизайн-система под все три платформы под React Native и библиотека компонентов. А ещё — команда из фронтенд и мобильных разработчиков под iOS и Android: одни будут поддерживать часть React Native, которая относится к нативной платформе, другие — писать бизнес-логику и UI.
● React Native может подойти для проектов, которые начинаешь с нуля и нужно охватить мобильные платформы и веб сразу.
Результаты нашего эксперимента
Хоть и ушло на работу с React Native несколько кварталов, мы решили не внедрять его. Было ли нам обидно? Нет, потому что благодаря эксперименту мы:
✔ Закрепили опыт, что фронтенд-разработчики могут писать на React Native.
✔ Поняли, как всё работает изнутри, какие у фреймворка плюсы и минусы.
Будет ли применимо для нас в будущем — время покажет. Возможно, для новых продуктов это рабочая схема, сейчас — экономически неоправданно.
В малом и микро бизнесе встречаются два вида контроля. Они в каком-то смысле противоположны друг другу по цели и методам осуществления.
В первом случае предприниматель чувствует облегчение, что кто-то занимается отделом продаж и старается не вдаваться в подробности. Во втором контроль — это способ справиться с тревожностью. Спросил, и вроде отлегло.
Есть еще третий способ, когда предприниматель формализует и контролирует все, что хоть как-то похоже на процесс. Он верит, что бизнес должен быть оцифрован; что получаешь ровно то, что контролируешь; и прочие законы успешного бизнеса, с которыми трудно не согласиться.
Однако, нужно еще ответить на вопрос: каким должен быть следующий шаг. Контроль в общем смысле — это не только получение информации о деятельности подразделений, но и управленческое воздействие на основе этой информации.
Управленческое воздействие сильно зависит от того как интерпретировать данные. А те, в свою очередь, зависят от того куда мы смотрели.
Модерация объявлений, коммуникация внутри сервиса, меры безопасности — рассказываем о SafeCom в новом выпуске «AviTalk». На этот раз экспертизой делится Антон Тупиков, технический лидер дирекции SafeСom Авито. Вместе с ведущей Стасей Кошман говорим о найме в SafeCom, интересных кейсах из работы сервиса и способах стать детективом внутри Авито. Антон также поделится историей собственной карьеры: от первых проектов до перехода в Авито.
Чтобы ничего не пропустить, включайте видео и делитесь мнением в комментариях.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.