Обновить

Разработка

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

Как мы сделали платформу для собеседований Enterly

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

Привет, Хабр! Я Анжела Большакова, разработчик направления Digital Interview в Т-Банке.

Мы в T активно развиваем внутренние инструменты, а иногда такие проекты перерастают в продукты для внешних пользователей. Так произошло с платформой для интервью, которой занимается моя команда.

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

Читать далее

Python + Fortran: Когда numpy уже мало, а C++ ещё страшно. Ускоряем код в 150 раз

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

Привет, Хабр!

В прошлой статье я рассуждал о том, почему Fortran в 2025 году всё ещё жив и даже растет в рейтингах. В комментариях справедливо заметили: «Философия — это хорошо, но как это применить современному разработчику? Зачем мне Fortran, если я пишу на Python?».

Это правильный вопрос. Сегодня я хочу ответить на него кодом, а не словами.

Я покажу, как использовать Fortran в качестве «числодробилки» для Python. Мы возьмем задачу, на которой интерпретатор Python гарантированно просядет, и ускорим её в ~150 раз, используя инструмент, который уже есть в вашем numpy.

Речь пойдет не о замене Python, а о симбиозе: удобный интерфейс Python + сырая мощь Fortran.

Читать далее

Решение головоломки NYTimes Pips с помощью решателя ограничений

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

Кажется, что головоломка NYT Pips — это просто игра с домино и цветными клетками. Но если взглянуть на неё как на задачу удовлетворения ограничений, она превращается в удобный полигон для современных решателей вроде MiniZinc.

В статье автор показывает, как описать Pips не в виде алгоритма перебора, а в виде системы ограничений: сетка, домино, суммы по областям, симметрии и «мусорные» решения. По ходу дела выясняется, что войти в мир constraint solving можно буквально за пару часов, а заодно на практике понять, почему эти инструменты умеют разруливать экспоненциальный хаос вариантов за миллисекунды — но иногда внезапно «залипают» на одной и той же головоломке.

Читать разбор

SwooleApp: Легковесный фреймворк для Swoole — разбираем пример приложения

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

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

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

Читать далее

Как Nvidia может случайно уничтожить 90% собственного рынка (и даже не заметить этого)

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

В своём последнем обращении к Уолл-стрит Nvidia упомянула Майкла Бьюрри, прославившегося благодаря «Игре на понижение», чтобы опровергнуть его анализ пузыря ИИ и заверить общественность, что «они - не Enron».

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

Читать далее

Измерение сложности моделей — Часть 2: Применяем теорию на практике

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

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

Читать далее

Как я подружил WSL, VirtualBox и Ansible, чтобы быстро создавать VM Alpine на Windows

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

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

Я сделал это так, на Windows через WSL установил Alpine сборки minirootfs, затем при помощи Ansible развернул в Oracle VM VirtualBox 3 виртуальные машины на базе Alpine сборки standard. Никаких облаков, только локальный контроль и минимум зависимостей. Для чего всё это? Сейчас всё чаще говорят о минималистичных системах, об оптимизации железа под конкретные задачи, о работе на граничных устройствах, вот и захотелось попробовать всё своими руками.

Читать далее

Специальный таймер для серии докладов

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

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

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

Читать далее

Самообучение против курсов для ребенка. В чём сила, брат?

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

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

Читать далее

От «обезьяньей» работы к Smart-анализу: как выполнить предобработку данных для моделей

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

От «обезьяньей» работы к Smart-анализу: как правильно готовить данные для моделей.

Что такое Exploratory Data Analysis и как избежать основных ошибок при его выполнении.

Читать далее

Сравниваем инструменты для нагрузочного тестирования

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

Нагрузочное тестирование давно перестало быть «дополнительной проверкой перед релизом» и стало частью инженерной культуры: без него сложно говорить о предсказуемости систем, зрелости инфраструктуры и реальной готовности продукта к росту. Инструментов для нагрузки сегодня много, но каждый по-своему влияет на процесс: где-то важна гибкость сценариев, где-то — масштабирование, где-то — интеграция в CI/CD. В этой статье разбираем ключевые решения, их сильные и слабые стороны и то, как они помогают увидеть систему такой, какой она будет под реальной боевой нагрузкой.

Узнать детали

9 лет эволюции занятий робототехники в моей детской школе

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

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

Читать далее

Почему вайб-кодинг не работает

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

С появлением AI-агентов разработка программного обеспечения изменилась кардинально. Я, как и многие разработчики, начал активно использовать Claude, Cursor и другие инструменты для автоматизации написания кода. Результаты поначалу впечатляли: за один вечер, занимаясь системным анализом, проектированием архитектуры и промпт-инжинирингом, я мог сгенерировать до 100 000 строк кода.

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

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

Читать далее

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

Два притопа, три прихлопа

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

Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку.  К чему это привело, далее мы и поговорим.

Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.

Читать далее

Проектируем как синьор: универсальная бинаризация

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

Здравствуйте, меня зовут Дмитрий Карловский и я.. да не важно кто я. Важно о чём я говорю, и как аргументирую.

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

Что ещё за VaryPack?

Не используйте pipe operator в PHP 8.5, пока не узнали все нюансы

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

В версии PHP 8.5 появился оператор |> — так называемый pipe operator. Он давно используется в других языках (F#, Elixir, OCaml) и активно применяется в JavaScript. Его основная цель — упростить передачу результата одной операции в следующую, делая код более читаемым и линейным.

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

Читать далее

Как продавать промышленное оборудование в кризис

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

Как возникает продажа в промышленном b2b-секторе? Почему продавец должен стать экспертом отрасли, чтобы убедить покупателя расстаться с деньгами в кризисные времена?

 

Продажа в b2b-сегменте обусловлена двумя факторами.

 

Читать далее

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

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

Привет! С вами Ярослав Хныков — senior ML engineer в Авито. В статье расскажу, как мы повысили разнообразие и релевантность рекомендаций на главной странице. Материал будет особенно интересен специалистам, которые работают с рекомендательными системами.

Читать далее

SFINAE в C++

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

Привет, Хабр!

Сегодня я хочу поговорить про SFINAE, загадочную аббревиатуру из C++. Расшифровывается SFINAE не менее загадочно: Substitution Failure Is Not An Error, по-русски: «неудавшаяся подстановка — не ошибка». Сейчас рассмотрим, почему это правило появилось, как оно работает и как мы можем использовать его себе во благо.

К механике SFINAE

Квантовая механика виртуальной Вселенной (Часть II)

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

Здравствуйте, дорогие читатели.

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

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

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

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

Итак, поехали.

Читать далее