Pull to refresh
23
0
Николай @NikolayPyanikov

Программист

Send message

Как LLM учат понимать синтаксис

Level of difficultyMedium
Reading time4 min
Views2.7K

Скорее всего, вы поняли заголовок правильно, хотя в нём есть стилистическая ошибка — двусмысленность (кто-то учит LLM, или они учат кого-то?). 

Человеческое понимание языка остается ориентиром и пока недостижимой целью для языковых моделей. При всей небезошибочности первого и при всех невероятных успехах последних. Например, человеку обычно не составляет труда однозначно трактовать двусмысленные фразы исходя из контекста. Более того, мы с удовольствием используем такие каламбуры в шутках разного качества. Из самого известного приходит на ум только “В Кремле голубые не только ели, но и пили” (предложите свои варианты в комментариях — будет интересно почитать). Есть ещё “казнить нельзя помиловать”, но эта двусмысленность разрешается запятой.

Самый известный пример в английском:  “Time flies like an arrow; Fruit flies like a banana”. 

Человек скорее всего после некоторых раздумий поймёт это как “Время летит как стрела, мухи любят банан” (хотя мне, например, понадобилось на это несколько секунд).  Яндекс переводчик понимает эту фразу так:  “Время летит как стрела, фрукты разлетаются как бананы”. Google translator демонстрирует зоологическую эрудированность: “Время летит как стрела; Фруктовые мушки, как банан”, а ChatGPT предлагает “Время летит как стрела; Мухи на фруктах летают как бананы”. В общем, никто не справился. 

Читать далее
Total votes 8: ↑8 and ↓0+11
Comments2

Новое в Pure.DI

Level of difficultyMedium
Reading time14 min
Views2.2K

Эта статья о том, что появилось нового в генераторе исходного кода Pure.DI с момента выхода предыдущей статьи Pure.DI v2.1. Помимо исправления некоторых ошибок основной акцент был сделан на упрощении использования API для настройки генерации кода. Появилась возможность определить корни композиции обобщенных типов. Добавились накопители, что решило вопрос утилизации объектов со временем жизни отличным от Lifetime.Singleton и Lifetime.Scoped. Удалось улучшить производительность методов Resolve() и корней композиции.

Читать далее
Total votes 5: ↑5 and ↓0+7
Comments2

Pure.DI v2.1

Level of difficultyMedium
Reading time11 min
Views2.9K

С момента выхода генератора исходного кода Pure.DI версии 2.0 летом 2023 прошло уже больше чем пол года. За это время удалось собрать отзывы по его использованию, добавить несколько полезных фич, улучшить производительность анализа и качество генерируемого кода, а также исправить ошибки и мелкие недочеты. В этой статье разберем несколько новых возможностей версии 2.1, которые могут быть полезны.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments11

Pure.DI помогает сделать DI чистым

Level of difficultyMedium
Reading time26 min
Views6.3K

В статье поговорим о Dependency Injection. Обсудим что такое чистый DI, коснемся DI контейнеров и их эволюции. В основной части речь пойдет о генераторе исходного кода Pure.DI и о том, как он помогает создавать приложения в парадигме чистого DI.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments39

Знай сложности алгоритмов

Reading time2 min
Views996K
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

TeamCity C# API для сборки приложений

Reading time8 min
Views5.2K

Начиная с первых версий .NET Core для сборки приложений, компания Microsoft предоставляет простой и удобный интерфейс командной строки (.NET CLI). Его возможности покрывают большинство потребностей по сборке, упаковке и тестированию приложений. Несмотря на это, по мере роста приложения, увеличения количества его составных частей/сборок/пакетов, усложнения процессов тестирования и развертывания, рядом с проектом часто появляются такие файлы сценариев как build.ps1, build.sh, build.cmd или даже полноценные инфраструктуры автоматизации построения приложений. В статье TeamCity C# script runner была предложена еще одна альтернатива - сценарии C#, которые особенно полезны, когда необходимо эффективно автоматизировать какой либо аспект сборки силами .NET разработчиков или  DevOps, знакомыми с синтаксисом C#. Тогда же была упомянута идея расширить встроенный API сценариев для более глубокой интеграции с TeamCity и для поддержки наиболее частых вариантов использования. Предполагая, что API сценариев чаще всего будет задействован при сборке приложений, мы в первую очередь решили расширить именно его. В этой статье будут приведены примеры использования этого API.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Immutype упростит работу с неизменяемыми типами данных

Reading time7 min
Views3.1K

При работе с неизменяемыми типами данных, такими как readonly struct, нам часто приходится писать методы, которые создают копию объекта, изменяя определенное свойство или поле. Такие методы позволяют сделать код чище и проще, обеспечивая неизменяемость. Но почему бы не переложить эту скучную работу на генератор кода?

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments19

TeamCity C# script runner

Reading time6 min
Views4.4K

На операционных системах Windows администраторы традиционно используют PowerShell как средство автоматизации. Хотя PowerShell имеет .NET в своей основе, синтаксис его сценариев отличается от языка C#, к которому привыкли разработчики .NET, многие из которых занимаются и настройкой сборок. Для них альтернативой сценариям PowerShell могут быть сценарии C#, синтаксис которых практически идентичен синтаксису C#. В TeamCity 2021.2 появился специальный раннер для их поддержки.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments4

Сервис просмотра и редактирования библиотек геометок

Reading time2 min
Views2.4K

В 2018 решил освоить Vue.js, так, для общего развития, а как известно, лучший способ освоить язык/фреймворк/etc — начать писать. В голову пришла довольно простая идея, которая со временем выросла в довольно большой проект — онлайн сервис «Места», позволяющий создавать свои коллекции мест на карте, геометок, с подробной информацией о них. Собирать их в альбомы, сортировать в дереве папок, просматривать, редактировать, обмениваться с другими, открывать для просмотра другим пользователям сервиса. Привязывать к местам фотоальбомы, экспортировать свои библиотеки в файлы JSON и GPX (для навигаторов, например), импортировать в свои библиотеки места других людей.

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

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

Проект свободный (https://github.com/assador/places, сам действующий сервис пока здесь: http://places.scrofa-tridens.ru). Сейчас в планах помимо API Яндекс.Карт, которые отвечают, собственно, за карту, подключить и другие — OSM, 2ГИС и пр. Хочу добавить возможность добавлять к местам не только фото-, но и видео-, и аудиоальбомы. Развивать структуру прав и ролей пользователей, их связь друг с другом на сервисе, расшаривать библиотеки в соцсети и пр. Короче, для меня штука интересная.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments6

Pure.DI следующий шаг

Reading time2 min
Views3.1K

Недавно в этом посте вы познакомились с библиотекой Pure.DI. При его обсуждении у меня сложилось впечатление, что необходимо решить вопросы ASP.NET, бинарной зависимости на API и производительности. Предлагаю ознакомится с результатами.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments11

Pure DI для .NET

Reading time10 min
Views11K

Пока языки программирования не поддерживает DI из коробки и заняты копированием синтаксического сахара друг у друга, предлагается следующее не идеальное решение: библиотека Pure.DI для .NET

Читать далее
Total votes 18: ↑18 and ↓0+18
Comments131

xUnit тестирование в TeamCity

Reading time6 min
Views3.6K

Microsoft активно развивает свои проекты с открытым кодом, например, ASP.NET Core или MSBuild. Вместе с этим набирает популярность и тестовый фреймворк xUnit, используемый в них для модульного тестирования. В этой статье мы рассмотрим несколько способов запуска xUnit-тестов для непрерывной интеграции проекта средствами TeamCity.

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments0

Подход к интеграции .NET в TeamCity

Reading time8 min
Views6.9K

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

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments6

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity