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

Компания DataArt временно не ведёт блог на Хабре

Сначала показывать

Raspberry Pi3 против DragonBoard. Отвечаем на критику

Время на прочтение4 мин
Количество просмотров13K

Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома.

Результаты тестов, приведенные в статье о сравнении производительности плат Raspberry Pi3 и DragonBoard при работе с приложениями на Python, вызвали сомнения у некоторых коллег.

В частности, под материалом появились такие комментарии:

«… я делал бенчмарки между 32х битными ARM'ами, между 64х битными и между Intel x86_64 и все цифры были сопоставимы. как минимум между 32 битными и 64 битными ARM'ами разница была в десятки процентов, а не в разы. ну или вы просто разное чисто --cpu-max-prime указали».

«Удивительные результаты обычно означают ошибку эксперимента».

«есть подозрение, что в тесте CPU какая-то ошибка. я лично тестил разные ARMы sysbench'ом, но разницы в 25 раз и близко не было. в принципе хороший медиа ARM в CPU тесте может быть в несколько раз эффективней чем BCM2837, но ни как не в 25 раз. подозреваю, что тест для pi был сделан в один поток, а для DragonBoard в 4 потока(4 ядра)».

Речь идет о тесте cpu из пакета тестов sysbench. Ответ на эти предположения получился настолько объемным, что я решил опубликовать его отдельным постом, заодно рассказав о том, почему в некоторых задачах разница может быть настолько колоссальной.
Читать дальше →

Чемпионы мира — о спортивном программировании

Время на прочтение9 мин
Количество просмотров17K


DataArt давно дружит с командой ИТМО по спортивному программированию и помогает ей. Этим летом в гости в наш петербургский центр разработки пришли Илья Збань, Иван Белоногов и Владимир Смыкалов. Чемпионы мира 2017 года рассказали о том, как именно программисты соревнуются между собой, о тренировочных сборах, любимых задачах и сильнейших соперниках.

Олимпиада по программированию


Главное соревнование программистов — международная студенческая олимпиада под эгидой ACM (ACM-ICPC, или просто ICPC) — проходит с 1970-х, а в виде, близком к сегодняшнему, оформилась в 1989 году. Олимпиада предназначена для студентов и аспирантов, за редким исключением к соревнованиям не допускают программистов старше 24-х лет. К тому же, испытывать силы в финале можно только дважды, а в региональных отборах разрешается участвовать всего пять раз. На ранних этапах, проходящих по всему миру, соревнуются тысячи команд. Около сотни лучших доходят до финала.

Raspberry Pi3 против DragonBoard: разработка приложений на Python

Время на прочтение3 мин
Количество просмотров13K

Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома.

Python идеально подходит для создания простых PoC-проектов. Всех преимуществ этого языка мы перечислять не будем, обратим внимание на особенность, которая кажется нам одной из самых интересных — кроссплатформенность. Именно благодаря ей Python оказывается очень удобным для создания встраиваемых систем. Не нужно компилировать двоичные файлы, нет необходимости заниматься развертыванием приложений. Тот же код работает как на ПК, так и на одноплатных решениях на базе Linux (например, Raspberry Pi).

Генерируем произвольные последовательности на выводах платы Raspberry Pi

Время на прочтение18 мин
Количество просмотров19K


Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома.

В этой статье я расскажу, как написать обычное user space-приложение на Python для современного ARM-процессора с ОС Linux для генерирования сложных последовательностей импульсов на выводах платы. Суть идеи — использовать DMA-модуль процессора для копирования из предварительно подготовленного буфера в памяти в GPIO с высокой точностью по времени.

Когда речь заходит о необходимости сгенерировать сложную последовательность импульсов, например, для шаговых двигателей, обычно используют старые добрые простенькие микроконтроллеры с установленной специальной операционной системой реального времени или вообще без операционной системы. Реализация при этом, в лучшем случае, написана на C++. Сейчас процессоры шагнули далеко вперед и имеют массу преимуществ: производительность, возможность использования операционной системы Linux со всей инфраструктурой и ПО, а также высокоуровневых языков программирования, таких как Python. И все же современные микроконтроллеры для генерирования сложных последовательностей на выводах GPIO, как правило, не используют.

Я реализовал генерацию импульсов для управления шаговыми двигателями проекта PyCNC — проекта контроллера машин с ЧПУ, станков, 3D-принтеров, полностью написанного на Python и запускаемого на современном ARM-процессоре на плате Raspberry Pi.

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

Google I/O 2017: мои впечатления и комментарии коллег

Время на прочтение5 мин
Количество просмотров6.5K
Автор: Елена Федорова, руководитель департамента Human resource marketing, DataArt, Воронеж



C 2009 года я возглавляю комьюнити Google Developer Group в Воронеже, кроме того, в 2016 мы организовали сообщество для девушек в IТ Women Techmakers Voronezh. Так что пропустить очередную конференцию Google I/O я, конечно, не могла. Для меня Google I/O — не просто анонсы крутейших новинок и возможность прямо сегодня заглянуть в ближайшее будущее, но и ощущение общего движения, общение с коллегами и друзьями по сообществу.

Немного статистики по Google-комьюнити:

• Около 600 активных GDG-групп в 102 странах.
• 3610 тематических событий за последние полгода.

Мой отчет с прошлогодней конференции можно прочитать здесь. На этот раз я собрала комментарии коллег и, дополнив их собственными впечатлениями, постаралась выделить пять интересных особенностей Google I/O 2017.

Надежда Морошкина: «Вы же не подбираете команду по знакам Зодиака?»

Время на прочтение11 мин
Количество просмотров9.5K


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

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

— Сама идея о существовании психологических типов людей связана с глубинной потребностью в классификации?

— Традиция эта действительно очень давняя. Попытки классифицировать людей, чтобы понять, как вести себя с ними, можно найти в античности — достаточно вспомнить разделение по типам темперамента. В клинической психологии тоже неоднократно делались более или менее успешные попытки связать, например, соматотип с определенным психотипом. Общая же идея в том, что у человека есть набор постоянных личностных свойств, черт или диспозиций, убеждений, установок, благодаря которым он будет вести себя сходным образом в самых разных ситуациях. И если мы сумеем каким-либо образом эти постоянные характеристики измерить, это позволит предсказывать поведение человека и в принципе объяснит нам, почему люди могут вести себя по-разному. Сами же попытки описать человека и определить набор его свойств базировались на самых разных основах.
Читать дальше →

Флаг DataArt над Эльбрусом

Время на прочтение7 мин
Количество просмотров7K


Александр Борискин, разработчик DataArt из Воронежа, в начале мая совершил первое в своей жизни восхождение, с ходу покорив самую высокую точку Европы. Специально для коллег Александр подробно рассказал о путешествии к вершине Эльбруса и поделился рекомендациями с теми, кто соберется повторить его достижение.

Александр Борискин, Senior Developer, DataArt, Воронеж

Февраль 2017. Главный вопрос — как провести майские праздники. Идеи были разные, но вариант остаться в городе отбросил сразу.

Я — совсем не альпинист, но восхождение на Эльбрус меня интересовало давно. Это делают многие, есть коммерческие туры, где для покорения самой высокой точки Европы достаточно общей физической подготовки.

Победителем первого GameDev-хакатона DataArt стала команда из Киева

Время на прочтение5 мин
Количество просмотров5.6K


48 часов девять команд, представлявших отдельные центры разработки DataArt или распределенных между городами, создавали собственные HTML5-игры.

«Все началось с идеи Макса Князева, нашего фронтенд-разработчика, который написал на нашу рассылку edu.coordination, — рассказал координатор хакатона Александр Дудин. — Он предложил провести внутренний хакатон для всего DataArt».

По словам самого Максима, изначально он думал о хакатоне как о способе напомнить коллегам о важных внутренних и R&D-проектах, где часто не хватает людей со специальными навыками: «Я предложил собрать тех, кто сейчас загружен не полностью, и в таком приятном формате обучить их нужным скиллам и придать им ускорение. Но коллеги, подхватившие идею, сразу нашли поддержку у нашей iGaming-практики, и хакатон решили переориентировать на игры».

iGaming-практика появилась не так давно и сейчас активно развивается. Поэтому для нее возможность познакомиться с людьми, заинтересованными в играх и находящимися в разных локациях, оказалась особенно интересной. Изначально организаторы надеялись собрать около 30 участников, но отклик ожидания превзошел — зарегистрировалось для участия 60 человек, а более 40 прошли хакатон от начала до конца. «Думаю, сыграло роль и то, что приз в итоге выбрали классный. DataArt предоставил для авторов лучшей игры очки виртуальной реальности Oculus Rift», — уточняет Дудин.
Читать дальше →

Благотворительность напрямую: детям — игрушки, взрослым — права на рисунки

Время на прочтение4 мин
Количество просмотров5.7K


Разработчик из DataArt Виктор Борисов придумал и реализовал что-то похожее на банк данных и социальную сеть в одном приложении. Причем не коммерческом, его проект — инструмент прямой благотворительности. Дети подают заявки на игрушки, прикрепляя к ним свои рисунки, а благотворители выполняют заявки и получают права на изображения. Хобби-проект Виктора называется «Игрушка за рисунок. Платформа для проведения конкурсов детских рисунков через интернет», а подробнее о нем рассказал сам автор.

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

«Игрушка за рисунок» предлагает уже с ранних лет прилагать усилия для достижения цели, искать альтернативные пути, но добиваться успеха. Если родителям конкретная игрушка кажется дорогой, для другого человека цена такого подарка может быть вполне посильной. Остается подать заявку на игрушку, дать ссылку на интернет-магазин, где благотворитель может купить этот товар, написать о себе и регулярно добавлять к заявке свои рисунки.
Читать дальше →

Гордость и предубеждения: женщины в IT

Время на прочтение9 мин
Количество просмотров8.3K


Мы не теряли времени — 8 марта обсудили с четырьмя женщинами-программистами из DataArt выбор профессии и гендерные предрассудки в ней, борьбу за равные права в IT и шутки коллег-мужчин.
Читать дальше →

Виртуальная реальность с Google

Время на прочтение8 мин
Количество просмотров11K


Автор: Николай Хабаров, Embedded Expert DataArt, евангелист технологий умного дома, изобретатель.

Эта статья — краткий экскурс в основы работы с виртуальной и дополненной реальностью. Я не ставил задачу в полной мере раскрыть все возможности Google VR SDK и планировал дать минимальную базу тем, кто интересуется этими технологиями и хотел бы начать работать с ними.

GDG DevFest Voronezh: виртуальные котята, беседы с колонкой и Mannequin Challenge

Время на прочтение4 мин
Количество просмотров2.7K

Воронежское сообщество Google Developer Group, которому в ноябре исполнилось уже семь лет, в пятый раз собралось на конференции GDG DevFest Voronezh. Конференция длилась два дня: первый посвятили докладам и выступлениям, второй — «железному» воркшопу.


Сначала давайте посмотрим короткое видео, как все прошло.



Стильный код на Python, или учимся использовать Flake8

Время на прочтение7 мин
Количество просмотров179K

Автор: Анатолий Соловей, developer

Язык программирования Python очень востребован на современном рынке, он развивается изо дня в день, и вокруг него сложилось активное сообщество. Во избежание конфликтов между разработчиками-питонистами, создатели языка написали соглашение PEP 8, описывающее правила оформления кода, однако даже там отмечено, что:
Many projects have their own coding style guidelines. In the event of any conflicts, such project-specific guides take precedence for that project.

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

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

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

На помощь в этом случае приходят линтеры — инструменты, контролирующие оформление кода в проекте. Именно они помогают поддерживать его чистоту и, в нашем случае, предотвращать создание коммитов, которые могут содержать ошибки. Я для контроля качества использую Flake8 и сейчас постараюсь объяснить, почему выбрал именно его, и расскажу, как его настроить, чтобы получить максимальный результат. Заинтересовались? Добро пожаловать под кат.
Читать дальше →

Тренды-2017

Время на прочтение5 мин
Количество просмотров17K


Развитие технологий искусственного интеллекта, Big Data и виртуальной реальности, а также новые угрозы кибербезопасности приведут к глобальным изменениям во всех сферах. При этом несмотря на политические события уходящего года, включая «брексит», 2017-й станет годом интеграции существующих технологий. Мы расспросили лидеров индустриальных практик DataArt о том, какие тенденции они ожидают увидеть в следующем году в финансах, туризме, здравоохранении, телекоммуникациях и медиа.

Общие тенденции



Интеграция вместо создания нового

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

IoT и Big Data IoT становятся большим бизнесом

В 2017-м Big Data и «интернет вещей» из модных слов превратятся в распростненные инструменты и станут частью повседневного обихода на работе и дома. Отделы маркетинга обретут в Iot и Big Data свой Святой Грааль.
Читать дальше →

Ближайшие события

Игра по правилам

Время на прочтение7 мин
Количество просмотров11K


Игорь Кожуренко — лидер направления iGaming в DataArt — о традиционных и онлайн-казино, регулировании рынка азартных игр в разных странах, о моде на виртуальную реальность и поиске художников и инженеров.

Об индустрии iGaming


Компании, предоставляющие игровые онлайн-сервисы, всегда готовы к быстрому внедрению инноваций, и многие идеи впервые воплощаются именно в iGaming. Этому есть несколько причин. Первая — борьба за клиентов: чем лучше сервис, тем, понятное дело, больше будет пользователей. Вторая — кэш-флоу. Успешные компании этого рынка не нуждаются в дополнительных инвестициях, у них есть деньги, и они с удовольствием инвестируют их в разработку и развитие, если понимают, что это действительно нужно.
Читать дальше →

Идем по приборам

Время на прочтение4 мин
Количество просмотров18K


Музей IT DataArt существует уже семь лет. Начался он с попытки сохранить то немногое, что еще оставалось у опытных программистов от своей творческой IT-юности. Коллеги начали приносить собственные реликвии: целые компьютеры и старые процессоры, модемы, огромные дискеты и мыши, платы еще советских ПЭВМ, телефоны и пейджеры. Теперь в витринах музея в центрах разработки в Петербурге и Воронеже несколько десятков экспонатов, а в этом году DataArt выпустил специальную серию плакатов с некоторыми из них.
Читать дальше →

SQL: пара приемов в SELECT-запросах

Время на прочтение3 мин
Количество просмотров24K

Автор: Юрий Цыганенко, Senior QA

Тестирование новых функций часто проводят на данных, взятых с уже функционирующей системы. В этом случае тестировщикам порою приходится строить запросы для хитрых случаев. Например, нужно протестировать новую функциональность интернет-магазина, причём играют роль интервалы между покупками. Нам доступны данные с работающей версии — можно загрузить их на тестовый стенд и проверить работу новой версии продукта. (NB!: конечно, имея дело с «живыми» данными, нужно исключить из них приватную информацию и обеспечить возможность логина интересующим нас пользователям).

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

От тестировщика требуется построить SQL-запрос, выдающий N пользователей, у которых интервалы между датами заказов будут наибольшими.

Аналогичные задачи и их разбор — под катом.
Читать дальше →

IoT за копейки: делаем устройство с веб-интерфейсом

Время на прочтение6 мин
Количество просмотров50K

Автор: Николай Хабаров, Senior Embedded Developer, DataArt

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

Пойми меня, если сможешь

Время на прочтение3 мин
Количество просмотров15K


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

«Полагаю, я вам не подхожу, так как «завалил» тест английского языка, к сожалению. Да, я не имею хорошей практики разговорного английского, но это мне не мешает читать data sheet’ы и общаться с зарубежной поддержкой по почте. Собственно сейчас не об этом, зная заранее, что я не пройду тест на знание языка, я не мог не воспользоваться шансом применить технический подход к данной проблеме. Хотя у меня не было возможности вживую проверить свой метод заранее, тем более в общении с человеком, хорошо владеющим английским и чувствующим особенности произношения, я решил попробовать.

Должен принести извинения за эксперимент сотруднику, проводившему тест, и за не не очень хорошее качество звука, связанное с техническими особенностями «моего» комплекса.
Читать дальше →

Использование ES6 генераторов на примере koa.js

Время на прочтение11 мин
Количество просмотров16K

Автор: Александр Трищенко, Senior Front-end Developer, DataArt

Содержание:
• Итераторы. Генераторы.
• Использование генераторов (Redux, Koa)
• Зачем нам использовать koa.js
• Будущее. Async Await и koa.js 2.x

Генераторы — новая спецификация, новая возможность, которую мы можем использовать в ECMAScript 6. Статью я начну с рассказа об итераторах, без которых понять генераторы не получится, расскажу непосредственно про спецификацию и о том, что такое генераторы вообще, про их использование в реальных кейсах. Рассмотрим два примера: React + Redux как фронтненд-случай и koa.js в качестве бэкенда. Затем подробнее остановлюсь на koa.js, будущем JavaScript, на асинхронных функциях и koa.js 2.
Читать дальше →