Как стать автором
Обновить

Разработка

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

Gradle и нетривиальная конфигурация

Gradle *Java *
Из песочницы

Каждый из нас знакомился с новомодными библиотеками, фреймворками, инструментами по getting started статьям из документации. В них всё складывается как по полочкам, в пёстрых красках показывается как всё просто и легко. Однако зачастую картина меняется, когда в Ваш новорожденный проект требуется подключить не одну условную библиотеку, а набор. Getting started осложняются появлением инородных элементов, и в процесс приходится подключать инстинкты. Когда за плечами многолетний опыт разработки и не один поднятый с колен проект, такая задача не видится проблемной. Однако, когда Вы делаете это в первый раз, инстинкты подводят. Впоследствии оглядываясь назад, мы жалеем о том, что в начале у нас не было опыта, который есть сейчас. Да и откуда было бы его получить? Ведь в getting started о таком не пишут, а проекты, в которых мы работаем не с самого начала, уже прошли этап становления.

Читать далее
Рейтинг 0
Просмотры 64
Комментарии 0

Новости

Снижение аллокации при замыкании (closure)

.NET *C# *

Недавно у меня появилась задача по снижению аллокации в очень горячем месте кода. Там происходит тривиальное: запускаются Task'и в которых заранее известным набором handler'ов обрабатываются объекты. Вооружившись профайлером, я с удивлением обнаружил, что много памяти (и много времени GC) затрачивается на удаление объектов-замыканий.

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 1.3K
Комментарии 6

Главный цикл в пошаговых играх

Проектирование и рефакторинг *Разработка игр *Dart *
Перевод

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 1.4K
Комментарии 0

Лояльность покупателей — гигантская ответственность, а не просто технологии

Блог компании Crystal Service Integration Java *Анализ и проектирование систем *Микросервисы *

Всем привет. Я Игорь, тимлид в команде, которая занимается системой лояльности в CSI. Расскажу, как работают и устроены системы лояльности в ритейле, о том, как мы создали новую архитектуру системы Set Loyalty, что применяем из фреймворков и инструментов. 

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Просмотры 390
Комментарии 0

Как IoT-технологии и эксперты по оборудованию помогают внедрять предиктивную аналитику: опыт Factory5

Блог компании Factory5 Big Data *Промышленное программирование *Машинное обучение *Разработка для интернета вещей *
Recovery mode

Всем привет, на связи Алексей Ершов и Максим Зотов, эксперты Factory5. Сейчас наша компания разрабатывает ПО для анализа промышленных данных, а начинали когда-то с предиктивной аналитики промышленного оборудования. В этой статье расскажем о том, как IoT-технологии и эксперты по оборудованию помогают внедрять её на предприятиях.

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 218
Комментарии 0

Как рендерить данные через fetch

Блог компании Школа Loftschool JavaScript *API *
Из песочницы

Метод Fetch API - это интерфейс JavaScript для работы с запросами и ответами HTTP. Если ранее подобный функционал можно было достигнуть, использую XMLHttpRequest, то сейчас Fetch API использует Promises. Здесь рассмотрим простой пример работы с ним для получения и обработки данных.

Читать далее
Всего голосов 16: ↑5 и ↓11 -6
Просмотры 2.1K
Комментарии 11

Как устроена разработка ReactOS, зачем в неё контрибьютить и почему она уже 20 лет в альфе

Блог компании Skillbox Системное программирование *Софт

Виктор Перевёрткин, cистемный разработчик в «Лаборатории Касперского» и активный участник комьюнити разработчиков ReactOS о том, как устроена и кем создаётся ReactOS и работают ли в ней HOMM III. Статья написана на основе выпуска подкаста «Люди и код» от Skillbox Media (март 2022 года).

Читать далее
Всего голосов 38: ↑33 и ↓5 +28
Просмотры 5.4K
Комментарии 2

Как мы построили систему онбординга для аналитиков-новичков: подводные камни и полезные приёмы

Блог компании Точка Big Data *Учебный процесс в IT Управление персоналом *

Привет, я Галина Вакулина, лидер аналитиков в Точке. 

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

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 765
Комментарии 6

Flutter на Python

Python *Разработка мобильных приложений *Разработка под MacOS *Разработка под Linux *Разработка под Windows *


Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 2.6K
Комментарии 22

Модульные роботы: проекты, за которыми стоит следить

Блог компании Selectel Разработка робототехники *Робототехника Научно-популярное

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

Под катом собрали перспективные проекты модульных роботов. Как они работают, каких бывают форм и какие у них проблемы в реализации — рассказываем в подборке.
Читать дальше →
Всего голосов 39: ↑34 и ↓5 +29
Просмотры 2.2K
Комментарии 3

Производительность: нюансы против очевидностей. JDK edition

Java *

Привет, это продолжение статьи, в которой я разбирал разные неочевидные вещи из мира производительности. В этот раз будем копать ещё глубже, хоть и начнём с относительно простых примеров. И да, в этой статье будет много интересного про строки. Да, несмотря на "Катехихис j.l.String", "The Lord of the Strings: Two Scours" и несколько моих статей (раз, два, три, четыре) там всё ещё есть куда копать :)

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 1.2K
Комментарии 0

Предсказание временных рядов с помощью Keras

Big Data *Машинное обучение *Искусственный интеллект

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

Сегодня хотелось бы поговорить о задаче предсказания временных рядов методами машинного обучения. В каком виде зачастую используются данные для задачи предсказания? Что такое LSTM-архитектура рекуррентных нейронных сетей? Как справляются модели RNN и CNN c поставленной задачей?

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 854
Комментарии 2

Промышленный мониторинг качества данных в Feature Store. Предпосылки и реализация

Блог компании МТС Big Data *Машинное обучение *Data Engineering *

Привет, Хабр! Меня зовут Алексей Лямзин, я работаю аналитиком в финтех направлении Big Data МТС. Мы с коллегами разрабатываем предиктивные модели на данных крупнейшего телеком-оператора и сегодня я расскажу вам о том, как мы строили автоматизированный контроль за качеством данных в нашем Feature Store. 

Добро пожаловать под кат!

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 339
Комментарии 0

А слабо сделать нормального чат-бота для банка? — challenge accepted

Блог компании Home Credit Bank Машинное обучение *Управление проектами *Natural Language Processing *


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

То есть бот должен быть реально полезным. Таким, чтобы пользователь чувствовал, что диалог с ним — это не конкурс «обойти железного идиота», а что-то всё же даёт.

Здесь ждут следующие грабли: предположим, вы собрали всю базу диалогов контакт-центра с 2002 года. Разметили её и даже обучили на ней бота. Дальше произойдёт следующее:

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

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

Ниже я хочу рассказать про те не совсем очевидные вещи в поддержке чат-бота, которые могут очень сильно уронить качество его работы. Ну или не дать до этого качества дорасти вообще, если архитектура не совсем правильная.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 1.7K
Комментарии 14

Как поучиться cybersecurity за половину цены от курса OSCP

Информационная безопасность *

В сентябре 2021 года я решил лучше изучить область "offensive cybersecurity". Задача стояла именно в получении реальных знаний, без какой-то последующей привязки к сертификации. Изучая рынок предложений я нашёл, что крайне большой популярностью пользуется курс от сайта offensive-security.com, однако он жёстко привязан именно к получению сертификата OSCP. Курс на тот момент стоил порядка $700 (сейчас он, кстати, стоит уже $1500) и представлял из себя один длинный PDF, набор хороших (по отзывам) лабораторных работ и возможность прохождения сертификации OSCP.

И тут я нашёл информацию, что кроме OSCP есть ещё один достаточно популярный источник знаний - elearnsecurity.com. Как оказалось, на тот момент этот ресурс был куплен компанией INE (ine.com), и INE предлагал крайне выгодные условия обучения - те же $700 (https://ine.com/pricing), но только за годичный неограниченный доступ к около 1000 различных курсов, 42 "learning paths", множеству лабораторных работ (более 185), а также 50% скидку на любой сертификат от eLearnSecurity. На данной платформе есть как курсы по cybersecurity, так и по Cisco (CCNP, CCNA, CCIE), Azure, basic networking и многое другое. Также кому-то будет интересно, что INE недавно купила ресурс Pentester Academy (www.pentesteracademy.com) и на платформе INE появились дополнительные 45 курсов от Pentester Academy. В данной статье я приведу дополнительную информацию и свой личный опыт обучения на данной платформе. 

Итак, для начала приведу скриншоты с цифрами по количеству и категориям существующих курсов:

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 598
Комментарии 0

NAS взломали. Как трояны проникают в сетевые хранилища и как от этого защититься

Блог компании RUVDS.com Хостинг Информационная безопасность *Хранение данных *

На днях мне позвонил старый приятель, и в панике сообщил, что у него что-то случилось с домашним файлохранилищем NAS QNAP. При обращении к девайсу на экране демонстрируется вот такая вот забавная картинка, вынесенная в заглавие этого поста, а файлы на дисках теперь имеют расширение .encrypt. Вердикт, в общем-то, был очевиден и неутешителен: NAS подвергся атаке трояна-шифровальщика. Несмотря на то, что большинство подобных устройств используют в качестве операционной системы одну из реализаций Linux, вредоносы проникают с завидной регулярностью и туда. И этот случай — лишь один из многих, с которыми мне, так или иначе, доводилось сталкиваться. Как вообще происходят подобные заражения? Возможны несколько вариантов.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 4.7K
Комментарии 21

Go vs Rust. Что же лучше в конкуретности?

Go *Rust *

Стало мне как-то интересно, кто из языков Go или Rust лучше работает с конкурентными задачами. С одной стороны, особый механизм конкурентности в Go является чуть ли основополагающей фичей. С другой стороны сам по себе Rust является более производительным языком, и в глазах некоторых программистов даже является "убийцей" C и C++. Поэтому я решил провести небольшое тестирование и написать собственный бенчмарк для этого.

Для упрощения я буду горутины в Go и асинхронные задачи в Rust называть корутинами. Для проверки различные тесты запускались на количестве корутин 101, 102, ..., 106. Смысл тестирования заключается в том, чтобы определить, какой из языков решит задачу наиболее быстро. По затраченному времени на выполнение задачи можно судить не только о скорости работы языка, но и том, насколько он страдает от большого количества конкуретных задач. Также в каждом тесте записывалась потребляемая память.

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 4.2K
Комментарии 14

Предупреждения помогают писать лаконичный код

Блог компании PVS-Studio Совершенный код *C++ *C *

Единорог PVS-Studio ужимает слона
Некоторые предупреждения анализатора или компилятора сложно однозначно классифицировать как ложное срабатывание или указание на настоящую ошибку. Бывает, что формально анализатор/компилятор прав, но и код работает правильно. Что делать? Возможно, это повод упростить код.

Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 1.2K
Комментарии 3