Search
Write a publication
Pull to refresh
4
0.2

Developer

Send message

Вещественные числа с плавающей двоичной точкой в .NET и .NET Framework

Level of difficultyMedium
Reading time42 min
Views15K

В статье разбираются ситуации, когда операции над вещественными числами с плавающей двоичной точкой (типы float и double в C#) дают результаты, отличные от ожидаемых интуитивно. Подробно разобраны причины этих отличий, приведены примеры, когда результат получается разный в .NET и .NET Framework или изменяется при переключении между конфигурациями Debug и Release, а также между x86 и x64. Даны общие сведения о стандарте IEEE 754 и особенностях этого стандарта, приводящих к названным эффектам. Объяснены принципиальные различия между .NET и .NET Framework в части операций с вещественными числами.

Читать далее

Как работать с GPT-4 с помощью продвинутых промтов

Level of difficultyMedium
Reading time5 min
Views62K

ChatGPT – это один из сервисов на базе большой языковой модели GPT. Модель генерирует текст, похожий на созданный человеком, и отвечает на вопросы в разговорной манере. Чтобы профессионально использовать чат-бота, этому нужно учиться. Все мы знаем, что такое программа Excel, что там есть формулы и функции. Но немногие могут использовать все возможности в программе и быстро получать результат. Такая же ситуация с ChatGPT. 

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

Например, в промте может быть указано, что GPT должен генерировать только код, соответствующий определенному стилю кодирования или парадигме программирования. Аналогичным образом можно указать, что GPT должен помечать определенные ключевые слова или фразы в сгенерированном документе и предоставлять дополнительную информацию, связанную с этими ключевыми словами. Эти подсказки облегчают получение более структурированных и детальных результатов.

В этой статье я расскажу о 16 наиболее распространенных промтах, которые применяют в промт-инжиниринге. Все примеры были протестированы в версии ChatGPT, доступной в России без VPN. В качестве такой русифицированной версии я использовал MashaGPT, которая работает с оригинальной GPT-4 через API.

Читать далее

Сравнение TCP и QUIC

Level of difficultyMedium
Reading time19 min
Views12K

Прим. переводчика: автор статьи рассказывает о преимуществах и недостатках QUIC, сравнивает его с TCP и пытается разобраться в причинах сравнительно низкой распространенности протокола.

Существует распространенное мнение, что транспортный протокол QUIC (RFC 9000) — просто очередное расширение оригинального транспортного протокола TCP (см. RFC 9293 и RFC 793). С этим мнением трудно согласиться. Я рассматриваю QUIC как значительный сдвиг в наборе транспортных возможностей, доступных приложениям при обеспечении конфиденциальности связи, целостности управления сеансами и гибкости.

Читать далее

Зубы курильщика (не в смысле, что плохие, а реально курильщика)

Level of difficultyEasy
Reading time14 min
Views16K

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

Если вы курите, то, наверное, вам уже кто-то да говорил, что это не совсем полезно. На этом нотацию заканчиваю и перехожу к практике.

Зубы желтеют.

Ещё дёсны кровоточат, но не сразу.

Коротко — поправить можно.

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

Сначала температурный градиент (а вы греете зубы примерно до 60 градусов Цельсия) создаёт микротрещины. Потом туда проникают смолы, потом образуется плёнка, под которой здорово себя чувствуют бактерии. А дальше у нас нарушение слюноотделения и убыль дёсен. Всё это можно приостановить или замедлить. Иногда дорого.
Читать дальше →

EMV 3-D Secure, или кто украл SMS с одноразовым паролем. Часть 2

Reading time14 min
Views15K

В прошлой статье мы рассказали о том, как появился первый протокол надежной аутентификации для платежей по пластиковым картам 3-D Secure 1.0.2, какие задачи он решает и какими недостатками обладает. Теперь мы хотели бы рассказать о будущем технологии 3-D Secure, и почему не стоит переживать, если перестала приходить SMS с одноразовым паролем.

Читать далее

Интеграция с ЕСИА для .Net: запутаннее, чем кажется

Reading time15 min
Views23K

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

Эта статья о том, как выполнить интеграцию с госуслугами и не запутаться.

Читать далее

Ученые нашли упражнение, позволяющее худеть, сидя по 10 часов в день

Reading time6 min
Views362K


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


Конечно, если ничего не делать, то будешь только толстеть. Средний офисный сотрудник сегодня сидит больше 10 часов в день. Мы с вами, чувствую, ещё больше, особенно если на досуге играем, читаем Хабр или смотрим ютуб. Лично меня от компьютера вообще не оттащить. Хотя читал полно исследований, говорящих о больших проблемах со здоровьем, возникающих из-за малоподвижного образа жизни.


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


Решение, конечно, простое — упражнения, в любой возможной форме. Но если вы такие как я, то тренироваться скучно и тяжело, правда? Большинство из нас ненавидят физкультуру. К тому же, на это нет лишнего времени. Бонусные часы каждый день магически не появятся.


Но похоже, есть способ ускорить обмен веществ в организме, даже сидя за ПК. И точно избежать проблем с метаболизмом и ожирением. Несколько недель назад вышла работа ученых под руководством Марка Гамильтона из Хьюстонского университета. Они разработали технику, позволяющую задействовать неожиданное свойство икроножных мышц, и делать для своего организма полноценную тренировку, не вставая со стула. Оказывается, похудеть, работая в IT, — это не так уж и сложно. Испытываю на себе, полёт нормальный. А какие у вас ноги будут прокачанные!

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

Как базы данных «ключ-значение» обеспечивают производительность и масштабируемость без границ

Reading time8 min
Views22K


Команда VK Cloud перевела статью о базах «ключ-значение». Вы узнаете, в чем их преимущества перед другими БД, какие базы работают по этому принципу и чем они отличаются между собой.

В чем суть баз «ключ-значение»


Суть проста — объекты в них хранятся и извлекаются с помощью ключа. Так мы прощаемся с:

  • таблицами, столбцами и вводом ant data — всем, что можно так или иначе назвать blob-объектом;
  • отношениями между объектами;
  • сложными операциями.

Что же мы получаем взамен, когда отбрасываем все это?
Читать дальше →

20 лет проблем приема платежей

Reading time11 min
Views22K
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →

Мои вопросы работодателю, когда подаюсь на разработчика

Reading time9 min
Views89K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее

А давайте это отфильтруем

Reading time14 min
Views9.2K

Как указано в документации Microsoft, стилизация элементов пользовательского интерфейса в экосистеме .net/WPF «позволяет разработчикам и дизайнерам создавать визуально привлекательные эффекты и согласованный внешний вид своих продуктов» и на первый взгляд, решает задачи, аналогичные задаче разделения содержания страницы HTML и её оформления через CSS.

Однако, стилизация WPF является гораздо более мощным инструментом, позволяющим существенно обогатить интерфейс программы (UI) без непосредственного изменения кода приложения.

Однажды была поставлена задача добавить во все отображаемые таблицы приложения возможность быстрой фильтрации по содержимому.

То есть необходимо изменить поведение для каждого столбца каждого элемента DataGrid каждого экрана… Сколько изменений в коде приложения потребуется для этого? Если проект на WPF, то достаточно подключить библиотеку и … добавить одну строку.

Как это работает?

Яндекс выложил в опенсорс YDB

Reading time16 min
Views154K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



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

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

Какие льготы IT-компаниям дают и как их получить

Reading time7 min
Views20K

О мерах поддержки IT-компаний написали многие, в том числе на Хабре. В теории добиться их несложно, практика может отличаться. Мы спросили, как получить льготы, у компании, которой это удалось. 

Читать далее

Кратко о форматах TLV, BER, CER, DER, PER

Reading time8 min
Views20K

Я хотел бы кратко рассказать о таких форматах данных, распространенных в ИТ-индустрии, в том числе в области инфраструктур открытых ключей (ИОК), смарт-картах, включая документы нового поколения на базе смарт-карт, в мобильной связи. Хотя рассматриваемые форматы и связаны с ASN.1, но некоторые из них ушли далеко за пределы этой области. О некоторых из них многие знают, но не все знают настолько, чтобы, допустим, уметь отличать BER от DER, а некоторые варианты типа PER вообще являются экзотикой.

Глубоко в тему погружаться не буду. Просто познакомлю с главными особенностями, чтобы понимать, что это такое и с чем это едят. Досконально и в полном объеме всё это описано в соответствующих стандартах ITU-T X.690 и ISO 7816.

Одна из моих мотивирующих задач — это уложить тему в своей голове по полочкам.

Правила абстрактной нотации (ASN.1) используются, когда надо специфицировать формат некой структуры данных. Сами правила описаны в стандартах ITU-T X.680–X.683. Пожалуй, что наиболее распространенный вариант применения — это форматы сертификатов X.509 и всего, что имеет к ним отношение. Пример текстовой нотации может выглядеть как-то так:

Читать далее

Какие вопросы задать работодателю на собеседовании?

Reading time3 min
Views286K

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

Я составил 50 самых важных вопросов будущему работодателю, которые ты обязан задать на собеседовании.

Читать далее

Гайд по архитектуре приложений для Android. Часть 3: cобытия UI

Reading time10 min
Views10K

Перевод обновлённого гайда Android по архитектуре приложений. Это — третья часть из пяти: рассказываем про события UI.

Читать далее

Гайд по архитектуре приложений для Android. Часть 2: слой UI

Reading time15 min
Views24K

Перевод обновлённого гайда Android по архитектуре приложений. Это — вторая часть из пяти: про слой UI.

Читать далее

Гайд по архитектуре приложений для Android. Часть 4: доменный слой

Reading time7 min
Views16K

Перевод обновлённого гайда Android по архитектуре приложений. Это — четвёртная часть из пяти: рассказываем про доменный слой.

Читать далее

Гайд по архитектуре приложений для Android. Часть 1: обзор

Reading time7 min
Views61K

Перевод обновлённого гайда Android по архитектуре приложений. Это — первая часть из пяти: обзор рекомендаций по архитектуре.

Читать далее

О Thread и ThreadPool в .NET подробно (часть 2)

Reading time13 min
Views19K

В предыдущей публикации мы рассмотрели некоторые базовые вопросы относительно потоков и пулов потоков и готовы двигаться дальше. Давайте проведём эксперимент и найдём правильный объём работы для пула потоков. Чтобы его издержки не давлели над объёмом полезной работы

⚠️ Материал средней сложности

С другой стороны, показанные примеры доказывают, что на производительность сильно влияет гранулярность элементов работы. Имеется ввиду, конечно же, длительность работы делегатов. Чтобы достичь хороших показателей, гранулярность работы не может быть абы какой: она должна быть правильной. И помимо планирования задач на ThreadPool, планировать их можно также как через TPL так и через какой-либо свой собственный пул потоков. Например, если взять обычный ThreadPool, то можно примерно измерить издержки алгоритмов ThreadPool в тактах Time Stamp Counter счётчика времени (можно, конечно и в чём-то более привычном типа микросекунд, но там на многих сценариях вполне могут быть нули)

Читать далее

Information

Rating
4,880-th
Registered
Activity