Pull to refresh

N3 Group выкупила российскую часть бизнеса DataArt

Reading time2 min
Views2.2K

Основанная в Санкт-Петербурге инвестиционная фирма N3 group и управляющий партнёр инвестхолдинга «Ташир МЕДИКА» Арсен Галстян выкупили российский бизнес IT-компании DataArt. По оценкам экспертов, стоимость сделки составила 1,5-2 млрд руб.

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

DataArt примет открытую лекцию Андрея Терехова, завкафедрой системного программирования Матмеха СПбГУ

Reading time1 min
Views2.6K


5 декабря — это будет четверг — в центре разработки DataArt в Санкт-Петербурге пройдет лекция доктора физмат наук, профессора, члена правления РУСОФТ Андрея Николаевича Терехова. Он расскажет о самых популярных советских ЭВМ, о работе над транслятором языка Алгол-68 для них и организации ИТ-индустрии в СССР. Андрей Терехов обозначит главные проблемы, с которыми сталкивались советские инженеры и программисты, оценит, в чем их опыт оказался неудачным, а что можно считать успехом.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments1

Проектирование, оптимизация и поддержка крупных php-проектов

Reading time4 min
Views2.9K

Роман Еникеев в прямом эфире Митапа в ОЭЗ "Иннополис" рассказал о том, что нужно понимать под защищенностью данных, немного об изменении мира к лучшему, путем создания хорошего программного продукта и его характеристиках. Вы узнаете о пирамиде нахождения багов и о самой поддержке продукта.

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments0

Человеческий вопрос в IT

Reading time2 min
Views963
Филипп Гузенюк: Какие основные проблемы существуют на рынке IT-специалистов? Каковы основные тенденции развития ситуации? Что ожидает этот рынок в будущем?
Михаил Завилейский: IT – это инфраструктура бизнеса. А когда с инфраструктурой все хорошо, мы ее не замечаем. Замечаем мы ее, когда возникают какие-то проблемы. Вспомним наше отношение к дорогам (логистической инфраструктуре) – хорошая дорога незаметна, плохая вызывает гнев, а ремонтные и профилактические работы раздражают.
Читать дальше →
Total votes 6: ↑3 and ↓30
Comments4

Конференция JavaDay в Воронеже, 29 октября

Reading time1 min
Views679
image

29 октября 2011, Институт менеджмента, маркетинга и финансов, 2-й корпус.
29 октября компания DataArt совместно в компанией Oracle проводит конференцию для Java-разработчиков JavaDay Воронеж.

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

Генеральный спонсор – Oracle
Организатор – DataArt
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments1

Ежедневные релизы — это не так уж страшно

Reading time7 min
Views33K


Меня зовут Оксана Харчук, я работаю QA-инженером в DataArt чуть больше года. Расскажу, как в нашем проекте организован процесс работы, и как быть, если релиз каждый день.

Сначала, когда я только пришла в DataArt, слово «релиз» ассоциировалось у меня с чем-то страшным. Но, как оказалось, если процесс работы построен правильно, релизы даже каждый день — совсем не страшно, а очень даже удобно.Чтобы этого достичь, процесс разработки в нашем проекте построен на принципах непрерывной поставки (continuous delivery) и непрерывной интеграции (continuous integration).

Что такое Continuous delivery и Сontinuous integration?


Continuous delivery или непрерывная поставка ПО — набор практик и принципов, нацеленных на сборку, тестирование и поставку ПО быстрее и чаще. Непрерывная поставка качественного кода опирается, в свою очередь, на непрерывную интеграцию.

Сontinuous integration, или непрерывная интеграция — это практика разработки ПО, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. Ведь ясно: если над разными частями кода работают несколько программистов, при интеграции этих частей возникает много трудностей. Непрерывная интеграция помогает справиться с ними.
Читать дальше →
Total votes 20: ↑14 and ↓6+8
Comments39

Подходы к проектированию RESTful API

Reading time17 min
Views138K

Автор: Вячеслав Михайлов, Solutions Architect.

В этой статье я поделюсь опытом проектирования RESTful API — на конкретных примерах покажу, как делать хотя бы простые сервисы красиво. Также мы поговорим, что такое API и зачем он нужен, поговорим об основах REST — обсудим, на чем его можно реализовывать; коснемся основных веб-практик, которые зависят и не зависят от этой технологии. Также узнаем, как составлять хорошую документацию, затрачивая на это минимум усилий, и посмотрим, какие существуют способы нумерации версий для RESTful API.

Часть 1. Теория


Итак, как мы все знаем, API — application programming interface (интерфейс программирования приложений), набор правил и механизмов, с помощью которых одно приложение или компонент взаимодействует с другими

Почему хороший API — это важно?

  • Простота использования и поддержки. Хороший API просто использовать и поддерживать.
  • Хорошая конверсия в среде разработчиков. Если всем нравится ваш API, к вам приходят новые клиенты и пользователи.
  • Выше популярность вашего сервиса. Чем больше пользователей API, тем выше популярность вашего сервиса.
  • Лучше изоляция компонентов. Чем лучше структура API, тем лучше изоляция компонентов.
  • Хорошее впечатление о продукте. API — это как бы UI разработчиков; это то, на что разработчики обращают внимание в первую очередь при встрече с продуктом. Если API кривой, вы как технический эксперт не будете рекомендовать компаниям использовать такой продукт, приобретая что-то стороннее.


Теперь посмотрим, какие бывают виды API.

Виды API по способу реализации:
  • Web service APIs
    • XML-RPC and JSON-RPC
    • SOAP
    • REST

  • WebSockets APIs
  • Library-based APIs
    • Java Script

  • Class-based APIs
    • C# API
    • Java



Виды API по категориям применения:

  • OS function and routines
    • Access to file system
    • Access to user interface

  • Object remoting APIs
    • CORBA
    • .Net remoting

  • Hardware APIs
    • Video acceleration (OpenCL…)
    • Hard disk drives
    • PCI bus



Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments37

Модули расширения Python на Rust

Reading time9 min
Views16K


“Absolute statements are the root of all evil.
The key is balance. There are no answers, only questions.”
????


Автор статьи: zolkko.
Оптимизации

Когда говорят про оптимизацию в контексте ПО, часто подразумевают оптимизацию производительности программиста и/или оптимизацию самого ПО.

Исходя из YAGNI-принципа, Python позволяет программисту сосредоточиться на реализации ПО, избавив его от необходимости заботиться о низкоуровневых вещах: регионах памяти, в которых выделяются объекты, освобождении памяти, соглашениях о вызовах.

На обратную проблему в одной из его лекций о Haskell указал Саймон Джонс. У него был слайд со стрелкой, закрашенной градиентом. В начале было написано “no types”, посередине — “Haskell”, в конце — “Coq”. Указав на Coq, он сказал: “This stresses power over usability. Right?! You need a PhD here!”[1]. Несмотря на то, что это была шутка, мантра Python — одна из любимых программистами особенностей этого языка. По моему опыту, это то, что позволяет выпускать готовый продукт несколько быстрее.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments11

Не IoT, а малина! Строим IoT-проект на Raspberry Pi с Windows 10 и DeviceHive

Reading time7 min
Views52K
Привет, Хабр.

Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.

Деплоим Windows 10 приложения на Raspberry Pi 2


Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас.
Читать дальше
Total votes 21: ↑18 and ↓3+15
Comments8

M2M за 5 минут с DeviceHive и Microsoft Azure. Как начать свой путь в IoT

Reading time4 min
Views8.1K
В последнее время «интернет вещей» (иногда «интернет всего») стал неотъемлемой частью повседневной жизни. Гигабайты данных приходят от различных сенсоров и датчиков, что позволяет перевести сферу анализа на кардинально новый уровень. IoT становится следующим мегатрендом в развитии технологий и набирает все большую популярность в самых разных областях бизнеса.

Сегодня мы хотим обратить ваше внимание на DeviceHive — быстрый, удобный и легкий в использовании IoT-проект и открытым исходным кодом, который предоставляет мощные решения для общения устройств между собой и построения вашего собственного «умного дома». Он соединяет в единую инфраструктуру датчики, облачные сервисы и мобильные приложения, сохраняет огромные объемы информации, запускает процессы ее анализа и обработки, используя алгоритмы машинного обучения и для историчесих данных, и в реальном времени. Чтобы понять, как работает механизм машинного общения в рамках DeviceHive, давайте попробуем создать собственное маленькое приложение.
Читать дальше
Total votes 17: ↑14 and ↓3+11
Comments3

P2P в браузере

Reading time10 min
Views21K

Автор: Александр Трищенко


Я расскажу о своем хобби — организации видеотрансляций в браузере по технологии WebRTC (Web Real-Time Communication — веб-коммуникация в режиме реального времени). Этот проект с открытым исходным кодом Google активно развивает с 2012 г., а первый стабильный релиз появился в 2013 г. Сейчас WebRTC уже хорошо поддерживается самыми распространенными современными браузерами, за исключением Safari.

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

Если мы используем WebRTC, мы решаем следующие проблемы:

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

Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments25

Xamarin Forms в действии. Medchest Assistant

Reading time6 min
Views12K

Автор: Константин Марс

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

Мы долго колебались с выбором платформы между популярной и престижной iOS и модным, современным и приятным в разработке Android. Поэтому я предложил использовать Xamarin, который, между прочим, использует C# как основной язык разработки (и это главный язык, на котором в повседневной жизни пишет организатор нашей команды Арсений). Таким образом мы подошли к началу путешествия в мир кроссплатформенной разработки с Xamarin.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments7

С телефона в облака: Azure Mobile Services. С чего начать?

Reading time8 min
Views7.3K

Автор: Анастасия Белокурова, .NET Developer DataArt.

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

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

Преимущества облачных технологий

Термин «облачные вычисления» появился достаточно давно, но его значение немного менялось. Сначала облачными вычислениями называли просто распределенные вычисления. Но сейчас облачная платформа — большой набор удобных сервисов, которые вы можете использовать для решения своих задач.

Итак, почему же облака? Они предоставляют следующие преимущества вашему приложению:
  • Масштабируемость.
  • Надежность.
  • Большой выбор сервисов.


Представьте, что вы запускаете небольшой интернет-магазин — сначала просто хотите проверить, будет ли он вообще востребован. Бюджет у вас небольшой. Поэтому вы пишете небольшое веб-приложение и размещаете его на своем компьютере, который не выключаете на ночь. К вашему сайту есть доступ извне, и он может выдержать, допустим, 10 пользователей одновременно. Со временем ваш сайт становится популярным, и вам уже нужно, чтобы он выдерживал 100 пользователей одновременно. Но ваш компьютер не способен справиться с такой нагрузкой. И тут вы начинаете думать, не превратить ли мне мою квартиру в серверную?.. Нет, это ужасно неудобно! Тогда вы покупаете сервера, предоставляемые хостингом. Теперь ваш сайт поддерживает 100 запросов в минуту и даже тысячу. Наконец в какой-то момент вы понимаете, что выходите на глобальный рынок, т. к. у вас очень много пользователей, круглосуточно, и сервера, которые вы купили, уже не справляются.

Тут мы подходим к первому преимуществу облачных платформ — они предоставляют масштабируемость практически всего практически в любой момент времени. И это делается очень просто, быстро и удобно: вам остается думать только о разработке, а не о размещении и нагрузке. Это первое преимущество.
Читать дальше →
Total votes 25: ↑15 and ↓10+5
Comments0

Страх и ненависть в Multipeer Connectivity

Reading time7 min
Views8.3K

Автор: Роман Ивченко, iOS developer DataArt.

Введение

Наверняка каждый, кто хоть раз занимался поиском готового решения для обмена сообщениями, файлами, стримами между iOS-устройствами без использования серверной части, слышал о фреймворке Multipeer Connectivity, выпущенном в iOS 7.

Вцелом это один из самых инновационных фреймворков, выпущенных в 7-й версии системы. Он должен был заменить слегка устаревший CoreBluetooth.

Чтобы познать всю мощь и силу Multipeer Connectivity, мы попробовали обкатать его в нашем R&D-проекте, задача которого весьма проста — шаринг презентаций и синхронизация переключения слайдов между устройствами слушателей и устройством докладчика на конференциях, в учебных аудиториях и т. д.

Краткий обзор

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

Статья не претендует на полное освещение всех тонкостей фреймворка, а больше рассказывает о его проблемах и надежности. Все технические детали можно узнать в документации Apple.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments6

Однодневный спринт — реальность или вымысел?

Reading time6 min
Views2.8K

Зная, как я люблю экспериментировать, иногда на конференциях меня коллеги спрашивают: "Ну, какой у тебя теперь минимальный спринт?"


Я и сам сейчас задумался — с этой самоизоляцией и работой на дому да на даче, какой у меня реальной длительности спринт.


И с удивлением понял: один день.



Думаете, такого не бывает, что это из разряда жар-птицы, единорога и серебряной пули. А я вам покажу, как бывает.


Читать дальше →
Total votes 26: ↑18 and ↓8+10
Comments6

Agile в ИТ-компаниях. Как увидеть лес за деревьями

Reading time3 min
Views4.2K

В этой статье хотелось немного поговорить о том, как используется Agile в ИТ-компаниях. И начнем сразу с главного: для большинства таких компаний Agile в виде Scrum, Kanban, Lean или XP – это не просто эфемерная атмосфера всеобщей гибкости, а вполне себе конкретный производственный процесс по созданию и поставке ПО.


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


Продуктовый подход с использованием Scrum может использоваться и в сервисных ИТ-компаниях, когда они делают продукт для заказчика или вместе с ним по вышеописанной логике. Только такие продуктовые истории для сервисных компаний — это проект и внутренние метрики у них отличаются от метрик продуктовых компаний.


Читать дальше →
Total votes 30: ↑20 and ↓10+10
Comments3

Уже привычное слово «удалёнка»

Reading time5 min
Views1.5K

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


Читать дальше →
Total votes 14: ↑3 and ↓11-8
Comments6

Тайм-менеджмент — это не история про то, как сделать больше за 8 часов, это как сделать важное за 8 часов

Reading time5 min
Views9.4K

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


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



Сейчас основная сложность в том, что поток информации увеличился в несколько раз. Мы уже давно живём в цифровом мире. А в эпоху самоизоляции почти 100% людей заметили, что стали работать ещё больше.


Потоки информации стали еще объёмнее, количество информации стало еще больше, от компьютера мы не отходим примерно с утра до вечера, а вечером "пересаживаемся" на смартфон.


Потому первостепенная задача сейчас – научиться фильтровать информационный поток. Тайм-менеджмент, он не про то, как сделать больше за 8 часов, он про то, как сделать важное за 8 часов.


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


Читать дальше →
Total votes 28: ↑21 and ↓7+14
Comments3

Точка кристаллизации негатива в команде: Как ее найти и что с ней делать?

Reading time4 min
Views4.7K

Иногда Scrum-мастеру или любому другому лидеру команды кажется, что в команде в процессе работы нарастает негатив и токсичность. Такое бывает, особенно в определённые этапы развития команды. Это симптомы ни в коем случае нельзя «спускать на тормозах», так как это предвестник будущих сложностей. Именно здесь нужен лидер, который поможет команде пройти через данный этап с наименьшими потерями.


В чем тут основная сложность? Если быть точным, то сложностей тут две:
1) такая ситуация действительно может только казаться;
2) если не кажется, что с этим делать?


Давайте разбираться. Я лично сторонник нескольких подходов в решении таких задач.



Читать дальше →
Total votes 30: ↑16 and ↓14+2
Comments9

Подводные камни межкультурных коммуникаций

Reading time8 min
Views4.5K

Бывало такое, что ваши коллеги, которых занесло в западные компании, то ли в командировку, то ли насовсем, или просто им приходится день ото дня взаимодействовать по проекту с иностранцами, делились с вами думами тяжкими? И жаловались вам они на проблемы, с которыми тут в России вы ни разу не сталкивались. То «не нравится мне наш иностранный заказчик, какой-то он нелюдимый, ни улыбнется, ни пошутит!», то «Новый начальник из Европы робот какой-то! Не отпустил меня вчера с обеда домой! А мне в налоговую надо было!», то «Позвал нового коллегу из Германии в ресторан, так сказать, проект обсудить, а он отказал! Сказал, что все вопросы надо решать на работе! Я к нему, как к человеку, а он вон как!»


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


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


Я расскажу, почему мы иногда не можем найти причину и смысл поведения иностранных коллег и почему многим из нас они кажутся такими «странными».


Читать дальше →
Total votes 24: ↑15 and ↓9+6
Comments10
1
23 ...