Pull to refresh
@glestwidread⁠-⁠only

User

Send message

Разработка системы тестирования SQL-запросов. Часть 2

Reading time13 min
Views7.7K

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

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

CancellationTokenSource и «утечки памяти»

Reading time10 min
Views10K

Всем привет!

Я работаю в Тинькофф, в проекте «Тинькофф Телефония». Наша основная задача — организация IP-телефонии внутри компании и за ее пределами. В день через нас проходит несколько миллионов звонков. Всей этой кухней занимаются около 10 сервисов. 

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

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

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

В этой статье хочу рассказать о том, какой интересный подводный камень таит в себе CancellationTokenSource и как это связано с нашими «утечками» памяти.

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

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Reading time11 min
Views238K

Разбираемся, как на самом деле считаются суммы и проценты в клиентском приложении.

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

Узнаём, сколько комиссий и налогов с нас уже содрали и что нам останется при выводе.

Пытаемся понять, что нам с этим делать.

Read more
Total votes 158: ↑155 and ↓3+152
Comments112

Фермеры в США вынуждены взламывать тракторы, чтобы просто починить их

Reading time4 min
Views144K


Люди начали выращивать еду около 10 000 лет назад, но древние сапиенсы и представить не могли, что в будущем для сбора кукурузы придётся сначала установить пиратскую украинскую прошивку, а потом разбираться в кодах неисправностей по протоколу OBD-II.

Обычно «хакерами» называют специалистов по компьютерной безопасности, которые ищут уязвимости в IT-системах. Но в США обычные фермеры сейчас вынуждены взламывать собственное оборудование только для того, чтобы оно работало.

На Хабре уже писали об этой абсурдной ситуации. Компания John Deere и другие крупные производители максимально затрудняют фермерам самостоятельный ремонт. Логика примерно такая же, как у Apple: мол, только сертифицированные специалисты из фирменных центров могут обеспечить высокий сервис, поэтому диагностические инструменты нельзя раздавать всем подряд, а только официальным дилерам.
Читать дальше →
Total votes 89: ↑84 and ↓5+79
Comments538

НАСА: проложить путь людям на Марс может лишь ракета с ядерным реактором

Reading time4 min
Views19K

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

Основная проблема — в отсутствии надежного транспортного средства. Сейчас идет подготовка ракеты и корабля от SpaceX, но до реального полета на Марс может пройти (и скорее всего, пройдет) несколько лет. Причем реактивная тяга такой ракеты образуется в результате сжигания жидкого топлива. А по мнению НАСА, ракеты на жидком топливе — не самый эффективный вид транспорта, нужны ядерные системы.
Читать дальше →
Total votes 56: ↑44 and ↓12+32
Comments119

LIVENESS DETECTION — проверка идентификатора на принадлежность «живому» пользователю

Reading time4 min
Views2.1K

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

Датасет можно скачать по ссылке.

Для обучения в датасете  есть 4 подкласса.

Читать далее
Total votes 4: ↑2 and ↓20
Comments0

Что же такого особенного в IAsyncEnumerable в .NET Core 3.0?

Reading time5 min
Views36K
Перевод статьи подготовлен в преддверии старта курса «Разработчик C#».





Одной из наиболее важных функций .NET Core 3.0 и C# 8.0 стал новый IAsyncEnumerable<T> (он же асинхронный поток). Но что в нем такого особенного? Что же мы можем сделать теперь, что было невозможно раньше?

В этой статье мы рассмотрим, какие задачи IAsyncEnumerable<T> предназначен решать, как реализовать его в наших собственных приложениях и почему IAsyncEnumerable<T> заменит Task<IEnumerable<T>> во многих ситуациях.

Ознакомьтесь со всеми новыми функциями .NET Core 3
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments0

Повышаем надёжность HttpClient’а в .NET Core или как ошибиться в 3 строках кода 4 раза

Reading time13 min
Views37K

За несколько недель до 14 февраля системе Dodo IS немного поплохело под нагрузкой. Одной из причин стало то, что в backend’ах мобильного приложения и сайта не совсем корректно работали политики поверх HttpClient’а (Retry, Circuit Breaker, Timeout). В этой статье я хочу поделиться с вами потенциальными проблемами, которые могут возникнуть при неправильном использовании таких политик.


Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments36

Как реализовать игнор заблокированных пользователей в группах Telegram?

Reading time10 min
Views55K
image alt

UPD: благодаря помощи Tkachov эта статья всё-таки превратилась из просьбы о помощи в работающую инструкцию. В комментариях он дал работающий код для создания игнора в десктопном клиенте Телеграм. Я на всякий случай расположу объяснение в конце статьи. Далее статья продолжается в том же виде, в каком была написана.
UPD: Сделал «сайт» для распространения готового приложения sites.google.com/view/ignoram

* * *

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

Можно было бы задать вопрос на сервисе Q&A (он же бывший Тостер) — только я это уже сделал, и пользы вышло не очень много.

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

Если повезёт, то кто-нибудь в комментариях подскажет решение. И тогда нашедшие эту статью в поисковиках тоже смогут эту проблему решить.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments39

Information

Rating
Does not participate
Registered
Activity