Pull to refresh
12
0
Дмитрий Масленников @DAiMor

InterSystems Senior Developer

Send message

Некоторые тонкости использования Service Workers

Reading time7 min
Views27K


Предисловие


Сервис-воркеры (Service Workers, да простят меня читатели) сегодня являются полезным дополнением к основной функциональности сайта: тут и работа в оффлайне, и фоновая синхронизация данных, и модные пуш-уведомления.

Однако большое количество статей про сервис-воркеры выглядят достаточно сжато и описывают простые примеры. Я попробую обратить внимание на некоторые особенности работы сервис-воркеров, так что требуются какие-то базовые знания. Отправной точкой может быть эта статья (перевод) или чуть более подробная статья.
Читать дальше →
Total votes 36: ↑30 and ↓6+24
Comments7

Docker in production: «Когда ты это кушаешь, тебе, как минимум, не противно, особенно если знаешь, как готовить»

Reading time12 min
Views36K


Идея контейнеризации появилась уже давно, однако Docker оказался первой технологией, которая смогла достичь массовой популярности. О том, почему это случилось, насколько Docker «повзрослел» за 3 года, а заодно о том, когда можно перестать волноваться и начать использовать Docker в своем production приложении, мы поговорили с нашими экспертами:

Александр aatarasoff Тарасов — Software Architect в Альфа-Лаборатории. В настоящее время внедряет микросервисную архитектуру и двигает направление DevOps, а больше года назад рассказывал про свой опыт внедрения Docker в Альфа-Банке.

Docker in production: Нельзя использовать инструмент только потому, что он модный


– Почему вы стали использовать Docker?
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments59

GitLab CI: Учимся деплоить

Reading time9 min
Views125K

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


Чтобы не привязываться к какой-либо конкретной технологии, предположим, что ваше приложение является простым набором HTML-файлов, никакого выполнения кода на сервере, никакой компиляции JS assets. Деплоить будем на Amazon S3.


У автора нет цели дать рецепты для конкретной технологии в этой статье. Наоборот, примеры кода максимально примитивны, чтобы слишком на них не зацикливаться. Смысл в том чтобы вы посмотрели на фичи и принципы работы GitLab CI в действии, а потом применили их для вашей технологии.



Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments4

Яндекс открывает ClickHouse

Reading time14 min
Views167K
Сегодня внутренняя разработка компании Яндекс — аналитическая СУБД ClickHouse, стала доступна каждому. Исходники опубликованы на GitHub под лицензией Apache 2.0.



ClickHouse позволяет выполнять аналитические запросы в интерактивном режиме по данным, обновляемым в реальном времени. Система способна масштабироваться до десятков триллионов записей и петабайт хранимых данных. Использование ClickHouse открывает возможности, которые раньше было даже трудно представить: вы можете сохранять весь поток данных без предварительной агрегации и быстро получать отчёты в любых разрезах. ClickHouse разработан в Яндексе для задач Яндекс.Метрики — второй по величине системы веб-аналитики в мире.

В этой статье мы расскажем, как и для чего ClickHouse появился в Яндексе и что он умеет; сравним его с другими системами и покажем, как его поднять у себя с минимальными усилиями.
Читать дальше →
Total votes 176: ↑172 and ↓4+168
Comments204

Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами

Reading time9 min
Views80K

А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?


Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


image
Читать дальше →
Total votes 45: ↑34 and ↓11+23
Comments80

От аналога к цифре: несколько интересных конструкторов и как применить их в воспитании

Reading time6 min
Views22K
«Вот подрастет, и будем с ним Arduino да Mindstorms собирать», — наверное, мечтают многие. Проблема в том, что условный iPad ребенок освоит быстрее.



Мы собрали несколько рецептов, как в раннем возрасте отвлечь дитё от экрана (а затем вернуть за монитор, но уже осознанно) и привить интерес к конструированию, чтобы развивать правильные навыки. Для удобства, постарались выделить возрастные категории. А где могли, нашли аналоги: ведь на вкус и цвет все конструкторы разные.

Субъективный обзор
Total votes 18: ↑18 and ↓0+18
Comments44

Мы ещё повоюем! Выжимаем «все соки» из устаревшего смартфона

Reading time9 min
Views55K
Привет, Гиктаймс! Сторонники экономии всегда спорят с оппонентами, которые считают, что нужно просто больше зарабатывать, а любители оптимизации в IT заводятся с пол-оборота от фразы «купите уже себе нормальное железо». И те, и другие по-своему правы, но сегодня мы перейдём на сторону «романтиков», и расскажем, как заставить работать старый смартфон с полной отдачей.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments48

Как сделать шлем виртуальной реальности своими руками

Reading time6 min
Views59K
Здравствуйте все, кто увлекается гаджетами, стереоскопическим изображением и 3D графикой!

К сожалению, после открытия предзаказов на потребительскую версию Oculus CV1 стало ясно, что данный гаджет оказался не столь доступен, как хотелось бы многим. Действительно, 599$ — это стоимость в США. В России данные устройства будут стоить уже наверняка в районе 800-1000$ первый год-два. HTC Vive начинается от 799$. Пожалуй, сейчас это наиболее передовые устройства VR, но, нужно признать, что они не особо доступны.

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

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

Мы являемся евангелистами компьютерных VR систем в России, и в этой статье хотим показать, каким образом можно собрать-таки настоящий шлем виртуальной реальности у себя дома, даже лучше, чем Oculus Rift DK1, а затем силой инженерной мысли элегантно превратим его в DK2. В итоге, шлем будет совместим с последними версиями SDK и Runtime от Oculus Rift по относительно доступной цене. (Палмер Лаки наверное бы поперхнулся, прочитав эту статью, но мы ведь русские всегда чего-то придумываем и умеем красиво выходить из различных ситуаций).

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



О том, как собрать бюджетный шлем виртуальной реальности, совместимый с Oculus Rift DK2 у себя дома…
...читайте далее, много картинок!
Total votes 24: ↑23 and ↓1+22
Comments36

Аутентификация пользователей на Arduino с RFID

Reading time15 min
Views23K
Arduino

Введение


В предыдущей статье я только начинал работать с Arduino, в результате чего закономерно получилась метеостанция. В этой статье пойдём дальше — будем делать аутентификацию с помощью RFID карт и Arduino в приложении InterSystems Caché.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments7

История одной интеграции, или как мы перестали беспокоиться и полюбили InterSystems Ensemble

Reading time4 min
Views9.5K
image

Предыстория: у нашей небольшой, но очень амбициозной компании «Black Mushroom Studio» появилась идея создания e-commerce проекта и реализации мобильного приложения для оплаты некоторых товаров/услуг через платежного агрегатора.

Что было на входе: каркас приложения на Android, которому, само собой, удобно общаться по HTTP и JSON, и платежная система, предоставившая свое API — web-сервисы с SOAP-содержимым.

Задача: подружить одно с другим.

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

Можно долго говорить о достоинствах и недостатках конкретных технологий конкретных вендоров и преимуществах open source, но везде есть свои минусы и плюсы. Проанализировав несколько продуктов (материал для отдельной статьи), мы пришли к выводу, что для решения наших задач, InterSystems Ensemble подходит больше других.
Читать дальше →
Total votes 20: ↑12 and ↓8+4
Comments10

Как создать своего бота для Skype. Что не написано в документации

Reading time3 min
Views90K


Некоторое время назад я рассказывал о своем боте для Telegram, который умеет данные из Google Analytics показывать. А тут Microsoft объявила о запуске ботов в Skype — самое время изучить как это работает. Под катом — небольшое описание возможных проблем. Кому не терпится посмотреть результат, вот он — MetricsBot Add Bot to Skype.
Куда смотреть и что делать?
Total votes 31: ↑28 and ↓3+25
Comments31

Новые динамические объекты и поддержка JSON в InterSystems Caché

Reading time5 min
Views5.2K
Dynamism of A Dog on a Leash (1912) Giacomo BallaВообще, в InterSystems Caché и динамические объекты, и поддержка JSON есть уже достаточно давно, но в версии 2016.1 они были переосмыслены, а код реализации переведён с COS уровня на уровень ядра/С, что позволило добиться существенного повышения производительности в этих областях. О том, что есть нового и как переходить (а также о том, как сохранить совместимость с предыдущими версиями) я расскажу в этой статье.

Возможности по работе с JSON


И начну с примера. Теперь такой синтаксис — работает и это самое большое нововведение в синтаксисе COS:
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments0

Знакомство с "Caché SQL Gateway" для создания федеративных систем или мультибаз

Reading time8 min
Views4.5K
В сложных комплексных системах часто встаёт вопрос интеграции данных из разных источников.
Такие системы получили название интегрированных, федеративных или мультибаз.

В СУБД Caché такая интеграция осуществляется с помощью специального шлюза (Caché SQL Gateway), который использует в своей основе ODBC/JDBC соединения к внешним источникам данных. Причём под источником в данном случае можно понимать не только СУБД, так как есть JDBC/ODBC драйвера для MS Excel, DBF, текстовых файлов, графических файлов, WMI и т.д.
Читать дальше →
Total votes 6: ↑4 and ↓2+2
Comments0

XData Studio Assist — автодополнение в XData блоках классов InterSystems Caché

Reading time12 min
Views2.4K
Эта статья – перевод моей статьи, опубликованной на новом портале InterSystems Developer Community. В ней рассказывается о ещё одной возможности в Studio — поддержке автодополнения при создании XML документов в XData. Эта статья развивает идею, поднятую Альбертом Фуэнтесом, об использовании XData и кодогенераторов, для упрощенного создания неких правил. Вы уже могли сталкиваться с автодополнением в XData при разработке ZEN приложения, %Installer-манифеста или REST брокера. Называется это Studio Assist. Я расскажу, как можно настроить и использовать такую возможность.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments3

Не пропусти js-ошибку

Reading time2 min
Views27K
Разрабатывая и тестируя сайт, зачастую замечаешь не все js-ошибки. Это происходит по ряду причин:
  • отсутствие консоли в некоторых мобильных и планшетных браузерах;
  • открытая консоль мешает при тестировании, перекрывая видимую часть страницы;
  • консоль открывают когда страница уже загрузилась и ошибки, возникающие при загрузке, теряются (Firebug в Firefox, Internet Explorer);
  • при разработке часто отключают логирование ошибок в системах аналитики, чтобы не было лишнего «шума» при анализе ошибок;
  • и прочее.
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments29

Таблицы сортировки в СУБД Caché

Reading time8 min
Views6.9K
Зато какая сортировка!
(А. С. Пушкин)


Если бы это была запись для твиттера, то она была бы следующей: «Программисты на Caché ObjectScript! Используйте Cyrillic4 вместо Cyrillic3!». Но тут Хабр, поэтому придётся развернуть мысль – добро пожаловать под кат.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments16

Памятка по базовой верстке статьи для Хабра без использования Markdown-разметки

Reading time5 min
Views46K
На Хабре, по меркам старожилов, я совсем недавно, всего два года, но пишу активно, по возможности каждый день. Так вот, читая статьи, да и просто прокручивая ленту свежих публикаций как на Хабре, так и на GT, я понял, что многие просто не могут совладать с версткой текста и, как следствие, достаточно часто годные публикации хоронятся их же авторами из-за нечитабельности текста. Или отпугивает кривая КДПВ, или еще что произойдет.

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

Картинка Для Привлечения Внимания и выравнивание по левому краю


Так уж сложилось, что вся лента Хабрахабра выровнена по левому краю. По этой причине опытные авторы небольшие изображения оставляют слева или используют картинки шириной в 800-1000 px. Отдельно хочется заметить, что чуть ли не лучшим является соотношение КДПВ 2 к 1, т.е. изображения 800х400 px. Подобная пропорция позволяет SMM-щику соц. сетей не изгаляться с вашей картинкой (а то и вовсе искать что-то другое, более подходящее по размерам), а использовать оригинал, не нарушая задумки автора.
Читать дальше →
Total votes 67: ↑61 and ↓6+55
Comments44

Web-приложения в режиме offline. ServiceWorker и CacheStorage

Reading time6 min
Views41K

О чём речь?


Всё чаще возникает задача научить frontend-приложение работать в автономном режиме. Это значит придать web-приложению свойство mobile- или desktop-программы — функционировать в отсутствии связи с Интернет, а также в случае отказа сервера.

Цель — оградить пользователя от проблем соединения на его устройстве. Как было бы обидно не сохранить созданные в google docs таблицы из-за потери wi-fi в ближайшем фастфуде!

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

Решение задачи заключается в следующем:
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments2

Теория и практика парсинга исходников с помощью ANTLR и Roslyn

Reading time23 min
Views40K

В нашем проекте PT Application Inspector реализовано несколько подходов к анализу исходного кода на различных языках программирования:


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

Наш цикл статей посвящен структуре и принципам работы модуля сигнатурного поиска (PM, pattern matching). Преимущества такого анализатора — скорость работы, простота описания шаблонов и масштабируемость на другие языки. Среди недостатков можно выделить то, что модуль не в состоянии анализировать сложные уязвимости, требующие построения высокоуровневых моделей выполнения кода.



К разрабатываемому модулю были, в числе прочих, сформулированы следующие требования:


  • поддержка нескольких языков программирования и простое добавление новых;
  • поддержка анализа кода, содержащего синтаксические и семантические ошибки;
  • возможность описания шаблонов на универсальном языке (DSL, domain specific language).

В нашем случае все шаблоны описывают какие-либо уязвимости или недостатки в исходном коде.


Весь процесс анализа кода может быть разбит на следующие этапы:


  1. парсинг в зависимое от языка представление (abstract syntax tree, AST);
  2. преобразование AST в независимый от языка унифицированный формат;
  3. непосредственное сопоставление с шаблонами, описанными на DSL.

Данная статья посвящена первому этапу, а именно: парсингу, сравнению функциональных возможностей и особенностей различных парсеров, применению теории на практике на примере грамматик Java, PHP, PLSQL, TSQL и даже C#. Остальные этапы будут рассмотрены в следующих публикациях.

Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments19

Microsoft может интегрировать подсистему Linux в новый выпуск Windows 10

Reading time1 min
Views55K
Недавно стало известно, что в наборе системных файлов Windows 10 Insider Preview Build 14251 содержатся два драйвера с названиями LXss.sys и LXCore.sys, которые могут иметь прямое отношение к реализации подсистемы Linux на Windows 10, для поддержки в последней запуска соответствующих приложений. Указанные названия файлов могут интерпретироваться как Linux Subsystem и Linux Core. Также эти два файла имеют отношение к Windows 10 Mobile, для которой Microsoft собиралась включить поддержку приложений ОС Android, также основанной на ядре Linux.



Кроме этого, известный гуру внутреннего устройства Windows и один из соавторов известной книги Windows Internals, Alex Ionescu, показал в своем твиттере скриншот одной из функций драйвера LXCore.sys Windows 10 того же выпуска в отладчике Windbg, на котором виден анализатор заголовков 64-битных исполняемых файлов Linux, известных как ELF64.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments143

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity