Работая с TypeScript, рано или поздно сталкиваешься с вопросом: что выбрать — типы или интерфейсы? В статье я хотел бы поделиться особенностями работы с типами и интерфейсами, которые могут быть полезны в вашей практике.
Все потоки
Топ признаков плохого работодателя на собеседовании: личный опыт
Когда я искал работу в Германии, в августе 2023 года и ходил на интервью, были разные случаи поведения работодателя. Иногда я думал «что за дичь сейчас происходит?»
В этой статье я расскажу, к каким выводам я пришел о том, как распознать сомнительного работодателя еще на этапе собеседования.
C++ с точки зрения Rust-разработчика: достоинства и недостатки
Я профессионально программирую на Rust и, признаться, немного этот язык продвигаю. Поэтому можете себе представить глубину моего расстройства, когда моя младшая сестрёнка, почти не умеющая программировать, обратилась ко мне и попросила научить её C++. Я попытался её отговорить, сказав, что однажды она будет сидеть за отладкой ошибок сегментирования, вооружившись Valgrind и вспоминать этот наш разговор, размышляя, а где же она свернула не туда. Но она оказалась ещё упрямее меня и настаивала: хочу выучить язык программирования, которым действительно пользуются люди.
Я не притрагивался к C++ с тех пор, как ещё в старших классах разрабатывал игры на Cocos2D-X, но решил, что сохранившихся у меня туманных воспоминаний о «правиле трёх» (или сколько там было? Пять? Ноль?) и прочих подобных материях будет более чем достаточно, чтобы решить такую задачу. Оказалось, что и мне требуется кое-что подучить, но я с удовольствием узнал, что существует большая аудитория, с которой можно поделиться этими знаниями. Почти любую концепцию из C++ легко понять, если объяснить её в ключе «о, эта как та штука из Rust».
Притом, что C++ местами несимпатичен, этот язык по-своему красив. Я и так это знал, но, когда взялся заново учиться C++, мне стало только яснее: если Rust в какой-то степени и превосходит C++ (допустим, вы верите, что это так), то лишь потому, что сам Rust стоял на плечах такого гиганта как C++.
Так что мы потратили пару недель, проштудировав серию руководств по OpenGL от ютубера под ником TheCherno (кстати, сама серия отличная). Две недели спустя нам удалось на экране единственный статичный голубой квадратик. Я уже стал опасаться, а не начнёт ли моя сестра сомневаться, стоило ли таким образом изучать разработку игр и пытаться изобразить что-нибудь на C++. Так что тогда я решил, что следует отбросить руководства господина Черно и взяться за разработку игры всерьёз.
Гипермедийные системы на ASP.NET MVC 5. Часть третья — окончание
Окончание статьи по быстрой разработке гипермедиа-ориентированного веб-приложения с HTMX 2.0.
Третья часть короткой обучающей статьи по разработке приложений, ориентированных на гипермедиа. В этой части вы можете завершить создавать свое первое гипермедиа-ориентированное приложение. В этой части будет добавлено несколько новых гипермедийных элементов на страницу игры и будут созданы страницы результатов игры.
В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.
Истории
Присоединяйтесь к проекту Rustsn: призыв к разработчикам Rust, интересующимся областью ИИ (LLM)
Несколько дней назад я опубликовал статью Создание инструмента генерации кода с помощью Rust и локальных LLM от Ollama.
Проект Rustns призван упростить жизнь разработчикам Rust за счет автоматизации утомительных задач. Мой инструмент генерирует фрагменты кода Rust из объяснений пользователя, компилирует их, разрешает зависимости, генерирует тесты.
Изначально проект задумывался как универсальное решение для генерации кода для самых популярных языков программирования, включая Java, Python и TypeScript. Я стремился создать инструмент, который бы облегчил работу разработчиков, предоставляя возможность генерировать код сразу на нескольких языках. Однако, приступив к реализации мультиязычности, я столкнулся с серьёзными трудностями.
Попытка унифицировать код для различных языков оказалась куда более сложной задачей, чем я ожидал. Каждый язык программирования имеет свои особенности, что значительно усложняет код и поддержку всех этих языков в одном проекте.
В итоге я пришёл к выводу, что нужно сконцентрировать свои усилия на одном языке программирования. В моём случае это Rust, на котором был написан проект, генерирующий Rust-код.
Вот упрощенная диаграмм работы проекта:
Генерация AST на Rust
Сегодня мы рассмотрим одну из тем систем компиляции — генерацию абстрактного синтаксического дерева или просто AST на Rust. Создадим свое собственное AST, разберем, как структурировать синтаксическое дерево, и рассмотрим, как использовать возможности Rust для создания парсеров и обработки узлов дерева.
Как управлять тысячами строк правил Firewall, на примере Juniper SRX
Есть специальная программное обеспечение, например Algosec или Tufin, но простая Python программа может сделать Почти то же самое.
Серьёзными проблемами для больших фаерволов могут быть повторяющиеся правила, затенённые правила, а также группы правил которые можно объединить.
Я подготовил упрощенную конфигурацию
Гипермедийные системы на ASP.NET MVC 5. Часть вторая — продолжение
Продолжение статьи по быстрой разработке гипермедиа-ориентированного веб-приложения с HTMX 2.0.
Вторая часть короткой обучающей статьи по разработке приложений, ориентированных на гипермедиа. В этой части вы можете продолжить создавать свое первое гипермедиа-ориентированное приложение. В этой части будет произведен рефакторинг, будут добавлены несколько новых гипермедийных элементов на страницу ожидания игры и будет создана страница игры.
В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.
ИИ от стартапа Mercor провёл интервью с 300 000 соискателей, а теперь его оценивают в 250 миллионов долларов
Под руководством трех 21-летних стипендиатов Thiel Fellows (грант Питера Тиля) ИИ-стартап Mercor привлек $32 млн от Benchmark, Питера Тиля и других инвесторов. Выручка стартапа уже исчисляется десятками миллионов, ежемесячно увеличиваясь на 50%, и он является прибыльным.
Трассировка OpenTelemetry в 200 строк кода
Разработчики часто воспринимают трассировку как нечто загадочное, и OpenTelemetry — не исключение. Она может казаться еще более сложной из‑за множества новых концепций, с которыми сталкиваешься в базовых примерах.
Ситуация усугубляется тем, что по мере создания стабильной и надежной библиотеки для трассировки сам код усложняется, чтобы учитывать редкие случаи, поддерживать работу в разных окружениях и оптимизировать производительность, минимизируя влияние на приложения. Это особенно заметно при использовании автоматической инструментации, которая может «волшебным образом» оборачивать или изменять код, который изначально для этого не предназначен.
Неудивительно, что многие разработчики воспринимают библиотеки трассировки как «черные ящики». Мы добавляем их в приложения, надеемся на лучшее и полагаемся на них в критические моменты, например, во время инцидентов ночью.
На самом деле, трассировка гораздо проще, чем кажется.
Концепция временного View state в JavaScript
Приветствую всех! В данной статье, речь пойдёт о достаточно необычной теме, информацию о которой я почему-то не нашёл, хотя она достаточно полезна в современных JavaScript фреймворках и библиотеках для создания пользовательских интерфейсов, ведь, в некоторых случаях, применение концепции может помочь ускорить работу с DOM в несколько раз.
Ушной мониторинг как проектная коммуникация: почему каждому стейкхолдеру нужен свой звук
Представьте концерт. Тысячи зрителей наслаждаются любимыми песнями, качественным звуком, впитывая энергию живого выступления. Но знаете ли вы, что звук, который слышат на сцене музыканты, совсем не похож на тот, что доходит до зрителей? Это результат работы системы сценического мониторинга — специального оборудования, которое позволяет каждому участнику группы слышать именно то, что нужно ему для идеального исполнения.
Обзор расширенного набора функций IP-АТС Yeastar серии P
В предыдущей статье цикла мы рассказали о том, какие функции IP‑АТС Yeastar серии P доступны без приобретения лицензии. Во второй статье рассмотрим возможности, которые предоставляют лицензии Standard, Enterprise и Ultimate.
С кратким перечнем функций можно ознакомиться в нескольких источниках: например, в разделе «План» в веб‑интерфейсе IP‑АТС, на официальном сайте Yeastar или в спецификации. В данной статье каждая функция будет рассмотрена подробнее.
Ближайшие события
State-of-the-art: резюмирование текста
Скорее всего, уже всем известна задача резюмирования/суммаризации/обобщения/summarization/т.д. текстов, а как её решать — тем более. Вопрос крайне актуальный и люди, занимающиеся NLP, уже тысячу и один раз слышали все тонкости и крайности этой темы. Данная статья направлена на краткий обзор существующих подходов и их сравнения. Анализ проводился на статьях, вышедшие за последние пару лет.
Инструмент django-command
Django-command - инструмент командной строки, который позволяет выполнять часто используемые команды при разработке проектов на фреймворке Django. Данный инструмент помогает повысить эффективность разработки и упростить рабочие процессы, связанные с веб-приложениями на Django.
Практичное и любопытное: все темы Heisenbug 2024 Autumn
Что должны рассказывать на конференции по тестированию? Что-то очень практичное, что участник вскоре применит в своём проекте? Или для такого существуют курсы, а конференция — это «оторваться от своей рутины и разобраться, что происходит вокруг»?
Вообще говоря, не обязательно выбирать что-то одно. На Heisenbug это всегда сочеталось: тут бывают и практичные воркшопы с мастер-классами, и обзорные кейноуты «для расширения кругозора».
Вот и на новом Heisenbug 2024 Autumn темы будут самыми разными. В одних звучат названия конкретных инструментов от Postman до Selenoid, отвечают на конкретные вопросы вроде «как тестировать Helm-чарты». А другие позволяют посмотреть шире: вплоть до выступления врача-эндокринолога о том, что не так с тезисом «чем больше тестов, тем лучше».
Представляем Хабру всю программу. Чтобы сделать пост покороче, мы сократили некоторые описания докладов — полные доступны на сайте.
7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик
JavaScript продолжает развиваться, давая разработчикам всё больше мощных инструментов для написания чистого, быстрого и эффективного кода.
Однако при таком обилии функций и технологий легко упустить самые мощные из них. Если ваша цель — повысить производительность или упростить поддержку кода, эти продвинутые техники дадут вам серьёзное преимущество.
Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.
Гипермедийные системы на ASP.NET MVC 5. Часть первая — начало
Начало статьи по быстрой разработке гипермедиа‑ориентированного веб‑приложения с HTMX 2.0.
Первая часть короткой обучающей статьи по разработке приложений, ориентированных на гипермедиа. В этой части вы можете познакомится с гипермедийными системами и начать создавать свое первое гипермедиа‑ориентированное приложение.
В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.
Транспьютеры — революция многопроцессорных систем, которой не случилось
В самом начале 80-х годов двадцатого столетия, как и много раз в более поздние годы, возникло мнение, что обычные процессоры достигли предела своей производительности. Тогда, по крайней мере, к этому имелись все предпосылки: имевшиеся на тот момент технологии уже не позволяли разместить больше логических схем на одном кристалле. Традиционные компьютеры с архитектурой CISC приблизились к пределу своих вычислительных возможностей, и было неясно, можно ли его преодолеть. Именно тогда на свет появились транспьютеры — чипы с принципиально новой архитектурой, которую сразу же окрестили научно-техническим прорывом, революционной разработкой и будущим компьютерных технологий. О самих транспьютерах и о том, как сложилась их судьба — наш сегодняшний рассказ.
Улучшаем навигацию роботов с помощью нейронного потенциального поля
Всем привет! Меня зовут Алексей Староверов, я научный сотрудник группы «Embodied agents» в AIRI. К числу моих научных интересов в основном относятся алгоритмы обучения с подкреплением (RL) и их применение для робототехнических систем. В этом году в рамках конференции ICRA 2024 мы с коллегами из МФТИ представили статью на тему автономной навигации мобильных роботов, о которой я бы и хотел вам рассказать.