Обновить
42
0
Александр@Lucyfer

Пользователь

Отправить сообщение

Ранняя история алгебраических типов данных

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели12K

Это началось со статьи «Алгебраические типы данных на самом деле не такие страшные». Мы знаем о типах‑суммах и типах‑произведениях. Но задумывались ли вы когда‑нибудь о том, откуда они получили такие имена, и как вообще были открыты они и их свойства? Я провел последнюю неделю в кроличьей норе истории, и я просто обязан поделиться тем, что я нашёл.

Читать далее

Промптинг и суеверия. Что (не) надо добавлять к запросу в ChatGPT

Уровень сложностиПростой
Время на прочтение28 мин
Охват и читатели44K

Американцы обожают играть на деньги и смотреть красочное шоу. Это самое примитивное и оттого ошибочное объяснение популярности программы The Price Is Right. Если вы никогда не видели эту передачу дневного американского телевидения, представьте себе многолетнюю светскую церемонию потребления, где зрителей зовут на сцену и награждают за умение ориентироваться в ценниках. Зритель из зала слышит заветную фразу «Come on down!», выбегает к подиуму и соревнуется в угадывании стоимости бытовых товаров.

Впервые формат появился в 50-х годах прошлого века, а в 1972 году The Price Is Right подобновили и начали транслировать днём по будням на канале CBS. Но идёт передача не в прайм-тайм, а в 10:00 или 11:00 утра. Несмотря на её странное время показа, знакома она всем американцам. Смотрят её не только пенсионеры и домохозяйки, её хотя бы раз видели затемпературившие дети, которые вместо школы остались дома.

Реальный секрет долгожительства программы — смешение доброжелательности ведущих, простоты правил с бытовой темой и разнообразные мини-игры. Одна из таких — Plinko, которая выглядит как детская забава. Участник получает плоские жетоны и, стоя наверху большой вертикальной доски со штырьками, сбрасывает их в прорези сверху. Жетон, ударяясь о штырьки, хаотически меняет траекторию и внизу попадает в одну из девяти ячеек с разными суммами.

Читать далее

Взять и собрать ИИ-агента: редактор сценариев, мультимодальная основа и другие открытые инструменты

Время на прочтение6 мин
Охват и читатели7.1K

Агенты — одна из горячих тем этого лета: интерес к ним существенно вырос, как и потребность в инструментах, упрощающих разработку таких систем. И мы в Beeline Cloud собрали несколько open source-проектов по теме под лицензией Apache 2.0.

Читать далее

Сидинг тестовых данных: как готовить окружение перед нагрузочным тестированием

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели4.4K

Почему ваши нагрузочные тесты врут? Часто проблема не в коде и не в стенде, а в данных. Разбираемся, как правильно готовить окружение перед тестами и почему сидинг через API надёжнее прямых вставок в БД.

Читать далее

Линеаризация в офлайн-тестах: как не стереть сигнал вместе с шумом

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели682

Работаете с офлайн A/B-тестами в ресторанах? Тогда вы знаете, как шумят метрики: трафик скачет, дисперсия зашкаливает, а эффект тонет в данных.

Я, Елена Малая, и это моя третья статья об офлайн-тестах (первая здесь: "Офлайн А/Б тесты в ресторанах фастфуда"). Моя задача — анализировать данные ресторанов (меньше 1000 точек, наблюдения — ресторан-день), где рандомизация невозможна, а мэтчинг — пока единственный вариант. Сегодня разберём, как линеаризация помогает снизить дисперсию для метрик вроде среднего чека (ср. чек = выручка/чеки) и почему в офлайне она требует особой осторожности.

Читать далее

Как повысить свои шансы пройти ИИ-фильтр на сайтах вакансий

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели16K

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

Почти все топовые западные компании его уже используют. Миллионы резюме с LinkedIn, Indeed и ZipRecruiter фильтруются автоматическими ATS-системами, и только потом попадают на глаза человеку. 98,8% компаний из списка Fortune 500 используют такие системы фильтрования кандидатов для оптимизации процесса найма.

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

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

Читать далее

Программирование — больше, чем кодинг

Время на прочтение16 мин
Охват и читатели29K


Это статья-перевод Стэнфордского семинара. Но перед ней небольшое вступление. Как образуются зомби? Каждый попадал в ситуацию, когда хочется подтянуть друга или коллегу до своего уровня, а не получается. Причём «не получается» не столько у тебя, сколько у него: на одной чаше весов находится нормальная зарплата, задачи и так далее, а на другой — необходимость думать. Думать неприятно и больно. Он быстро сдаётся и продолжает писать код, совершенно не включая мозг. Ты представляешь, насколько много сил нужно потратить, чтобы преодолеть барьер выученной беспомощности, и просто не делаешь этого. Так образуются зомби, которых вроде бы можно вылечить, но вроде бы и никто этим заниматься не станет.


Когда я увидел, что Лесли Лэмпорт (да-да, тот самый товарищ из учебников) приезжает в Россию и делает не доклад, а сессию вопросов-ответов, я немного насторожился. На всякий случай, Лесли — всемирно известный учёный, автор основополагающих работ в распределённых вычислениях, а ещё вы его можете знать по буквам La в слове LaTeX — «Lamport TeX». Вторым настораживающим фактором является его требование: каждый, кто придёт, должен (совершенно бесплатно) заранее прослушать пару его докладов, придумать по ним минимум один вопрос и только тогда уже приходить. Решил посмотреть, что там Лэмпорт вещает — и это великолепно! Это в точности та штука, волшебная ссылка-таблетка для лечения зомбятины. Предупреждаю: от текста может знатно подгореть у любителей сверхгибких методологий и нелюбителей тестировать написанное.


После хаброката, собственно, начинается перевод семинара. Приятного чтения!

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

Топ-9 бесплатных китайских нейросетей в 2025 году

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели36K

Tencent, Alibaba, DeepSeek AI, Kuaishou — эти компании выпускают модели одну за другой, заставляя западных конкурентов почесать головы. Китайские ИИ‑продукты сегодня покрывают всё: от создания объёмных научных статей до генерации мемных видеороликов, которые легко взорвут соцсети. Эти технологии уже привлекли внимание профессионалов, но их потенциал доступен и обычным пользователям.

Куда бежать, если вам срочно нужно оживить персонажа, создать фотосессию из одного‑единственного портрета или сделать прикольную гифку для поздравления? Hunyuan‑T1 с гибридным трансформером, Qwen-2.5 с миллионным контекстным окном, Talkie, который обошёл по популярности Character.ai, и Kling, монтирующий видео из нескольких картинок, — обо всём этом в статье!

Читать далее

Заговор разработчиков против корпораций

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели34K

Речь пойдет о тайной, сугубо анонимной организации, следы которой начал замечать еще в 2018-ом, работая в Яндексе. О целях и мотивах организации можно только догадываться: некоторые считают это кибер-луддизмом, другие — техно-анархизмом. Ясно одно: организация существует, ее члены уничтожают кодовые базы десятилетиями, и говорить об этом не принято.

Читать далее на свой страх и риск

Mark–Scavenge: ждем, пока мусор выбросит себя сам

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.2K

Исследователи из Oracle и Уппсальского университета представила новый алгоритм сборки мусора — Mark–Scavenge. Он решает проблему избыточной работы, которая возникает при использовании доступности объекта как прокси для оценки его "живучести".

Команда Spring АйО перевела статью, в которой можно подробнее ознакомиться с подробностями работы нового алгоритма.

Читать далее

Строим систему управления заказами с помощью Temporal: c нуля до десятков тысяч заказов в день

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели8.6K

Обработка заказов — это один из самых сложных аспектов в e-commerce, особенно когда речь идёт о микросервисной архитектуре. Большинство существующих систем используют хореографию для управления заказами, что сложно реализовать и часто приводит к беспорядку. Бизнес-требования разбиты на множество мелких задач, и обеспечить отказоустойчивость бывает трудно. В таких системах часто возникает низкая прозрачность, поиск дефектов может занять дни, а внедрение новой функциональности — месяцы. Проблему можно решить с помощью платформы для оркестрации рабочих процессов.

Читать далее

На практике пробуем KAN – принципиально новую архитектуру нейросетей

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели49K

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

Однако теперь все может измениться. В KAN (Kolmogorov-Arnold Networks) исследователи реализовали перемещение функций активации с нейронов на ребра нейросети, и такой подход показал блестящие результаты.

Читать далее

Prolog: три портрета через 50 лет

Уровень сложностиПростой
Время на прочтение25 мин
Охват и читатели3.2K

В 2024 году языку логического программирования Prolog исполнилось пятьдесят лет! Оказывая дань уважения, мне хотелось бы в небольшом историческом очерке рассказать о научном контексте семидесятых годов прошлого века, в котором зародилась как теория логического программирования, так и её реализация — язык Prolog. Более подробного и полного изложения вы не найдёте не только на страницах «Хабра», но и в русскоязычном сегменте Интернета.

Существует старая «бородатая» шутка полувековой давности — язык Prolog создали в 1974 в Эдинбурге и реализовали в 1972 в Марселе. Хотите узнать как это произошло?!

Читать далее

Улучшаем BARSiC: как мы проверяли и совершенствовали алгоритм консенсуса в кластере

Время на прочтение6 мин
Охват и читатели2.8K

Привет, Хабр! В команде ВКонтакте существует система управления репликацией и консенсусом в кластере, которая называется BARSiC (Binary Asynchronous Replication with Simple Consensus). Прежде всего она контролирует состав кластера, определяя, кто реплика, а кто — мастер. А при выходе мастера из строя реплики выбирают нового с непротиворечивой линейной историей. 

Для решения этой задачи команда ВКонтакте совместно с университетом ИТМО работали над научно-исследовательским проектом «Разработка моделей для верификации распределенных алгоритмов в системе BARSiC». В этой статье подробно расскажем о том, как мы в рамках проекта верифицировали выбранный для BARSiC алгоритм, и попутно исправили найденную в нём ошибку. 

Читать далее

Введение в программирование через поведение (BDD)

Время на прочтение10 мин
Охват и читатели74K
История: Эта статья впервые появилась в журнале Better Software в марте 2006. Она была переведена на несколько языков.

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

Чем больше я пользовался TDD, тем больше я понимал, что не столько оттачиваю своё мастерство, достигая новых его вершин, сколько то, что это было движение в слепую. Я помню, как мне все чаще приходила мысль: «Эх, вот бы мне кто-нибудь сказал это раньше!», чем мысль: «Отлично, дорога ясна». Я решил, что нужно найти способ обучать TDD, показывающий, как верно работать с ним сразу и без ошибок.

И этот способ — это программирование через поведение. Оно выросло из выработанных agile практик и призвано сделать их доступнее и эффективнее для команд, незнакомых с ними. Со временем, BDD стало включать в себя agile анализ и автоматическое приемочное (прим. acceptance) тестирование.

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

Почему люди не используют формальные методы?

Время на прочтение20 мин
Охват и читатели16K
На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле это верно, но мало что объясняет. Я написал эту статью, чтобы дать более широкую историческую картину формальных методов (FM), почему они на самом деле не используются и что мы делаем для исправления ситуации.

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

Язык моделирования Alloy и приключения с параллельными запросами к базе данных

Время на прочтение8 мин
Охват и читатели4.1K

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



О качестве программного обеспечения и инструментарии


В Typeable мы придаем огромное значение качеству программного обеспечения и прикладываем все усилия, чтобы обеспечить это качество. В настоящее время мы искореняем ошибки следующими способами:


  1. Анализ и создание спецификаций
  2. Устранение простых ошибок с использованием системы типов Haskell
  3. Стандартные юнит-тесты и интеграционные тесты
  4. Непрерывная интеграция
  5. Обязательные ревью кода
  6. Тестирование на стендах, проводимое QA инженерами
    (мы используем Octopod для оптимизации процесса разработки и QA)
  7. Тестирование в pre-production среде
  8. Ведение логов и контроль ошибок на этапе эксплуатации

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

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

Инженерный подход к разработке ПО. От теории к практике

Время на прочтение24 мин
Охват и читатели21K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Что делать, когда возможностей тестов недостаточно?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндекс.Почте, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


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

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

Инженерный подход к разработке ПО

Время на прочтение25 мин
Охват и читатели40K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


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


Не буду лукавить: основная задача статьи — возбудить интерес. Так что в ней будет минимум пространных рассуждений и максимум конкретики.


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

Дообучаем Llama 3.1 у себя дома

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели23K

Привет, чемпионы!

С каждым днем появляется все больше и больше LLM. Их метрики растут с таким же бешеным темпом. Но в узких областях знаний они до сих пор дают осечку. Почему это происходит и как с эти бороться? - Разбираем универсальный код для дообучения LLM на своих данных!

Дообучать LLM!

Информация

В рейтинге
Не участвует
Откуда
Барнаул, Алтайский край, Россия
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Архитектор программного обеспечения
Ведущий
Java
Spring Boot
Hibernate
SQL
Python
Scala
Golang
Apache Kafka
PostgreSQL
JavaScript