Как стать автором
Обновить
512.05
Рейтинг

Программирование *

Искусство создания компьютерных программ

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

Развёртывание XGBoost-моделей с помощью Ray Serve

Блог компании Wunder Fund Python *Программирование *Машинное обучение *
Перевод

XGBoost — это оптимизированная библиотека, реализующая алгоритм градиентного бустинга. Эта библиотека спроектирована с прицелом на высокую продуктивность и гибкость, в ней используется параллельная работа с древовидными структурами, что позволяет быстро и эффективно решать различные задачи из сфер Data Science и Machine Learning. В предыдущем материале мы исследовали три подхода к ускорению обучения XGBoost-моделей.

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

Новости

Пишем свою библиотеку для I2C OLED микродисплея 128х32px

Блог компании RUVDS.com Программирование *Программирование микроконтроллеров *Разработка под Arduino *DIY или Сделай сам

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

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 1K
Комментарии 7

Зачем оформлять документы о создании программного обеспечения?

Программирование *Терминология IT

В феврале 2022г. РБК опубликовал результаты опроса сервиса SuperJob, согласно которому у 51% опрошенных компаний есть сотрудники, работающие удаленно. В Москве и Санкт-Петербурге этот показатель выше – 68% и 63% соответственно. При чём, чаще всего на дистанционную работу в переводят сотрудников из сферы информационных технологий.

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

Количество лиц, задействованных в разработке, может быть достаточно велико (особенно если речь идет об авторских коллективах, крупных контрактах с длинными «цепочками» заказчиков, подрядчиков, субподрядчиков и т.д.). Поэтому и состав документов может быть разнообразным.

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

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

Рекомендации ниже универсальны, как с точки зрения вида правоотношений (гражданско-правовые или трудовые), так и с точки зрения объектов авторского права, хотя и приведены на примере программного обеспечения.

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

Как обеспечить безопасность сборки ПО: управляем внешними зависимостями

Блог компании Delivery Club Tech Информационная безопасность *Open source *Программирование *IT-стандарты *

Привет! Проблема управления безопасностью зависимостей — supply chain security — в настоящее время как никогда актуальна. В качестве примера можно привести историю компании SolarWinds: исходный код разрабатываемой ею утилиты был скомпрометирован и среди клиентов компании распространилось вредоносное ПО. Также возникла тенденция по внедрению деструктивного кода разработчиками open-source проектов, широко используемых коммерческими компаниями.

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

ШИМ в ESP32

Блог компании FirstVDS Программирование *Разработка под Arduino *


С момента своего появления микроконтроллер ESP32 получил заслуженную любовь своих поклонников и активно применяется во множестве самоделок. Основной причиной такой любви фанатов является его «упакованность» всевозможными функциями и беспроводными способами подключения в том числе. В этой же статье мы поговорим о такой полезной функции, как ШИМ — «широтно-импульсная модуляция».

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 982
Комментарии 2

Симулятор x86 подобного процессора на машине Тьюринга

JavaScript *Программирование *Assembler *Алгоритмы *
Из песочницы

Привет, Хабр! В свободное от работы время по вечерам мне нравится воплощать в жизнь свои сумасшедшие идеи. В один из таких вечеров родилась мысль реализовать компилятор кода в машину Тьюринга. Осознав всю тщетность бытия сложность реализации, было принято решение начать с чего-то более простого – симулятора простенького процессора со своим собственным ассемблером, в котором команды выполнялись бы с помощью различных состояний машины Тьюринга, а данные хранились бы на одной ленте. В конечном итоге удалось осуществить практически первоначальную задумку, а именно получить одну единственную машину Тьюринга, способную выполнять скомпилированную из NASM подобного ассемблера программу без какого-либо внешнего взаимодействия.

Читать далее
Всего голосов 62: ↑61 и ↓1 +60
Просмотры 6K
Комментарии 5

C++ магистрали потоков и древо алгоритма

Программирование *C++ *Машинное обучение *

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

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 2.9K
Комментарии 1

Разработка Gamio AI. Сквозь боль и баги

Программирование *Машинное обучение *Искусственный интеллект Natural Language Processing *

Gamio AI - текстовое приключение на русском языке, основанное на искусственном интеллекте.

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

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

Знакомство с ООП на примере JavaScript

Блог компании RUVDS.com JavaScript *Программирование *ООП *
Перевод
Tutorial

Всем привет! В этой статье мы рассмотрим основные характеристики объектно-ориентированного программирования (ООП) на практических примерах JS-кода. В ходе обсуждения мы осветим основные принципы ООП, а также ответим на вопросы, почему и когда этот стиль может быть полезен.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 8.5K
Комментарии 28

Концепция умного указателя static_ptr<T> в C++

Программирование *C++ *

В C++ есть несколько "умных указателей" - std::unique_ptr, std::shared_ptr, std::weak_ptr. Также есть более нестандартные умные указатели, например в boost: intrusive_ptr, local_shared_ptr.

В этой статье мы рассмотрим новый вид умного указателя, который можно назвать static_ptr. Больше всего он похож на std::unique_ptr без динамической аллокации памяти.

Читать далее
Всего голосов 33: ↑30 и ↓3 +27
Просмотры 5.6K
Комментарии 48

PProto: бинарный rpc протокол для Qt framework (часть 2)

Программирование *C++ *Сетевые технологии *

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

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

Я написал серверную SQLite

Блог компании SkillFactory Высокая производительность *PostgreSQL *Программирование *SQLite *
Перевод

Меня зовут Бен Джонсон, и я написал встраиваемую базу данных, которая служит бэкендом систем вроде etcd, — это BoltDB. Сегодня я работаю над Open Source проектом Litestream в компании Fly.io. Благодаря репликации Litestream делает SQLite приемлемым для фулстек‐приложений. Если вы можете установить SQLite, то Litestream заставите работать за 10 минут.

Читать далее
Всего голосов 24: ↑17 и ↓7 +10
Просмотры 7.5K
Комментарии 17

WoG уже 20 лет…

Программирование *Разработка игр *Игры и игровые консоли
Из песочницы

Все это уже история... И я даже писал об этом (не на habr). Поэтому, возможно, кому-то это знакомо. Не думал, что тут стоит писать подобное, но, вижу, что фанаты Героев 3 (и вообще серии HoMM) тут очевидно присутствуют, поэтому рискну...

Время: 20 лет назад.

Место: Ээээ… всемирная паутина.

Действующие лица:

Gus Smedstad – программист Героев 3 и ведущий программист Героев 4.
Angelspit – хозяин крупнейшего сайта (в то время) http://www.celestialheavens.com
Denis "Kiar" Markov – хрен какой-то
Slava Salnikov (он же ZVS) – лидер команды WoG и ведущий программист WoG.

Предыстория (знающие могут пропустить).
WoG – любительский аддон к игре Герои Меча и Магии 3 (ставится поверх SoD). В детали его создания тут вдаваться не буду (Wiki скажет лучше: https://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_III:_In_the_Wake_of_Gods ), но замечу, что только с официального сайта (свободно распространяемый ресурс) WoG в первые несколько месяцев был скачан пол миллиона раз (далее трудно оценить масштаб, но думаю несколько миллионов его хотя бы пробовали).

Основная же мысль, которую я хочу здесь озвучить: у меня НИКОГДА не было исходников Героев 3. WoG написан как отдельный EXE файл, который «прицепляется» моей утилиткой к готовому Heroes3.exe (купленная версия SoD английская), перехватывает управление и при старте «проникает» в тело SoD с целью установить множество call back’ов. Далее SoD работает, не зная о существовании «надстройки» в виде WoG, но, естественно им контролируется. Говоря простым языком, WoG это вирус на теле SoD.

Читать далее
Всего голосов 80: ↑78 и ↓2 +76
Просмотры 20K
Комментарии 54

W-функция Ламберта и ее приложения

Python *Программирование *Алгоритмы *Математика *
Из песочницы

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

Читать далее
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 5.6K
Комментарии 11

Как ускорить работу на macos в Docker окружении с помощью Mutagen

Разработка веб-сайтов *PHP *Программирование *
Из песочницы

Если вы работали на macos в docker окружении, то наверняка сталкивались с проблемой в производительности, например, при работе над php проектом, операции с файловой системой (обновление пакетов composer, ребилд контейнеров symfony, etc.) занимают просто неадекватное количество времени. Об особенностях работы docker'а на macos написано уже множество статей, а также workaround'ов как заставить его работать быстрее. В этой небольшой статье покажу как в решении этой проблемы Mutagen помог мне с php проектом и быть может поможет вам.

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

Спроси меня про Go. Отвечаем на распространённые вопросы

Блог компании Яндекс Практикум Программирование *Go *Учебный процесс в IT Карьера в IT-индустрии

В начале марта Яндекс Практикум провёл вебинар «Спроси меня про Go» в формате открытого микрофона: слушатели могли задать любые вопросы о языке Go. Экспертами выступили техлиды курса «Go-разработчик»: Георгий Зуйков — ведущий разработчик в Едадиле и Александр Демиденко — старший разработчик в Яндекс Облаке, в команде Cloudgate.

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

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 9.1K
Комментарии 3

Три подхода к ускорению обучения XGBoost-моделей

Блог компании Wunder Fund Python *Программирование *Машинное обучение *
Перевод

Фреймворк XGBoost (Extreme Gradient Boosting, экстремальный градиентный бустинг) — это эффективная опенсорсная реализация алгоритма градиентного бустинга. Этот фреймворк отличается высокой скоростью работы, а модели, построенные на его основе, обладают хорошей производительностью. Поэтому он пользуется популярностью при решении задач классификации и регрессии с использованием табличных наборов данных. Но процесс обучения XGBoost-моделей может занять много времени.

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

Жил на свете добрый Jooq – как подружиться с хранимками в Oracle

Блог компании Sportmaster Lab Oracle *Программирование *Java *Администрирование баз данных *
Tutorial

Приветствую!

Меня зовут Артём, я back-end разработчик на продукте WFM (Workforce Management). В компании наш продукт помогает в развитии процессов розничной сети, одна из основных наших задач — это построение рабочего графика для персонала розничного магазина.

В данной статье я хотел бы познакомить вас (в очередной раз, так как на хабре уже есть несколько статей, посвященных этой библиотеке) с Jooq и показать, как можно легко работать с хранимыми процедурами Oracle. Будет немного вводной части, а затем посмотрим примеры.

Почти в каждом продукте, скорее всего, есть база данных. В нашем случае это РСУБД Oracle, большая часть логики содержится внутри в виде хранимых процедур. Удобство взаимодействия с базой всегда было достаточно важной и щепетильной задачей для любого бэкендера, особенно, если речь идет о взаимодействии с хранимками, которые выдают и принимают "сложные" plsql-типы. Конвертация plsql-типа в java-тип — задачка не самая приятная, мягко говоря, и удобных инструментов в этом деле не так уж много.

Давайте кратко вспомним некоторые популярные подходы к взаимодействию с РСУБД, какими достоинствами и недостатками они обладают.

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

Функциональные тесты на проекте: жизнь до и после (на примерах)

Блог компании Skyeng Тестирование IT-систем *PHP *Программирование *Тестирование веб-сервисов *

Наша команда отвечает в Skyeng за личный кабинет и CJM пользователя до оплаты. Изначально проект был написан на Symfony 4.4 и представлял собой набор слабо связанных компонентов, которые были ответственны за правила работы для фронтенда.

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

У нас были лишь юнит-тесты: каждый покрывал логику одного класса. Все тесты вместе давали покрытие основной логики кода и гарантию, что все работает правильно. Но 100% покрытие кода тесты не обеспечивали. И сейчас не обеспечивают.

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

И мы обратились к функциональным.

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

Сегментация экземпляров с помощью Mask R-CNN

Python *Программирование *Машинное обучение *

Задача сегментации изображений может решаться в нескольких постановках. Самая распространённая - semantic segmentation с одним классом и фоном, необходимо просто отделить объекты от фона, не различая их между собой. Но часто просто отделения от фона недостаточно, необходимо отделять отдельные образцы друг от друга, например, чтобы оценить размер или расположение каждого отдельного объекта. Как это можно сделать?

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

Вклад авторов