• Meeting Room Little Helper

      Сегодня я расскажу вам о приложении, которое создавалось в «Аркадии» для удобства бронирования переговорных комнат.



      Есть два основных сценария использования этого приложения:

      1. Поиск свободной комнаты
      Ежедневно в компании проходит множество митингов, переговорки бронируют менеджеры, разработчики и сотрудники HR-отдела. Поиск комнаты для митинга может быть довольно долгим и рутинным занятием. Чтобы понять, какая из комнат свободна в данный момент, необходимо зайти в календарь Outlook (или открыть дверь, отвлекая внимание участников проходящего совещания), просмотреть полное расписание по комнатам, найти свободный слот времени и создать appointment. За это время кто-то из сотрудников может забронировать комнату, и тогда необходимо начинать поиск заново. Гораздо удобнее сделать бронирование нажатием одной кнопки при помощи приложения, заранее получив подсказки о статусе комнат.

      2. Ad hoc бронирование
      Довольно часто возникает ситуация, когда нужно собраться минут на 15, чтобы коротко обсудить текущие задачи по проекту. В этом случае нет смысла занимать комнату на целый час, да может и не быть свободных слотов на выбранное время. Но если остаётся хотя бы 10 минут до следующего митинга, приложение позволит забронировать комнату, и для короткого митинга этого может быть вполне достаточно. Также иногда возникает ситуация, когда комната была забронирована на долгий срок, например, 2 часа, но митинг завершился раньше. В этом случае по завершении митинга можно нажать на кнопку отмены и освободить комнату.
      Читать дальше →
    • Раздача фронтенда через CDN

      В мире современных веб-технологий все стремительно развивается и меняется. Пару лет назад совершенно нормальным было по запросу клиента рендерить DOM структуру на сервере (например, при помощи PHP) и отдавать уже полностью сформированную страницу. Сейчас все чаще появляются сайты c полным отделением фронтенда (Angular, React, Vue.js...) от бэкенда (некие API эндпоинты), где на фронтенде почти весь контент формируется посредством скриптов, а сервер отдает только данные по запросу. Тут можно было бы упомянуть SSR (Server Side Rendering), но не об этом данное произведение.

      В любые времена перед разработчиками и владельцами сайтов стояла непростая задача: доставить контент как можно быстрее, как можно большему количеству клиентов. Одно из самых правильных решений — использовать CDN (Content Delivery Network) для раздачи статичных файлов. В случае с динамическим рендером страниц на сервере мы должны были ограничиваться небольшим списком объектов, которые можно было разместить в CDN: таблицы стилей, файлы скриптов, изображения. Однако, фронтенд, написанный на Angular (React, Vue.js...), статичен целиком, включая индексную страницу. Вот тут и возникает мысль: а почему бы не организовать раздачу через CDN всего фронтенда?

      В данной статье пойдет речь о настройке комплексного решения для разработки, контроля версий, автоматической сборки и доставки статического сайта с использованием Gitlab CI, Amazon S3 и Amazon CloudFront. Также речь пойдет о настройке сопутствующих вещей: git, безопасное соединение по протоколу HTTPS, доменная почта, DNS хостинг, бэкенд сервер…

      Если вас заинтересовала эта тема, добро пожаловать под кат. Осторожно! Много скриншотов.
      Читать дальше →
    • Приглашаем на конференцию Azov Developers Meetup — 23 сентября в Таганроге



        Приглашаем провести 23 сентября с нами в Таганроге на Azov Developers Meetup 2017.

        Приезжаем к 9 утра в конгресс-отель «Таганрог» на ул. Дзержинского, 161 попить кофе перед началом и до трёх часов дня послушать лекции о разработке. Мы расскажем о Vue.js и CQRS, попробуем найти точки соприкосновения SQL и NoSQL, поговорим о пределах совершенства кода и о настоящем Quality Assurance, развеем страхи перед интервью с заказчиком и ответим на дизайн-вопросы. Кроме того, мы пригласили на конференцию Михаила Скипского — игрока телеклуба «Что? Где? Когда?», обладателя двух «Хрустальных сов» (2010, 2016) — он расскажет о принятии решений и эффективности в малых группах.
        Читать дальше →
      • Воспроизведение зашифрованных файлов с дешифровкой “на-лету” на iOS

          image

          В процессе разработки приложения на фрейворке Sencha Touch для платформы iOS потребовалось реализовать воспроизведение локальных видео и аудио файлов, которые должны быть зашифрованы на сервере перед скачиванием в память мобильного устройства. Дополнительным условием был запрет на создание дешифрованной версии файла на диске, таким образом появилась необходимость делать расшифровку и чтение данных в оперативной памяти. Поэтому стандартный плагин от Cordova для воспроизведения локальных медиа файлов не подходил, хотя опыта разработки на Objective C у меня не было, я решил создать свой, обладающий требуемым функционалом.
          Читать дальше →
          • +11
          • 4,3k
          • 2
        • Drupal и WordPress — сравнение, аналогии, сходства, различия

          Целью данной публикации является сравнение возможностей двух популярных CMS — Drupal 7 и WordPress (последней на данный момент версии 4.6). Ставилась цель рассмотреть CMS с точки зрения программиста и сравнить основные API обеих систем, провести аналогии, сделать выводы о том, какая система лучше подходит для каких задач. Публикация не претендует на полноту изложения всех возможностей CMS, а автор будет благодарен за коррективы и дополнения.
          Читать дальше →
        • Custom Video Recorder для iOS приложений

          • Tutorial
          Приложение Камера для iPhone / iPad очень удобно в использовании. Пользователь легко может переключаться из режима фотографирования на видеосъемку. В режиме видеосъемки показывается время съемки и всего одна кнопка (Старт / Стоп). К сожалению, при использовании стандартного UIImagePickerController’а нет возможности контролировать количество кадров в секунду и некоторые другие параметры. Я покажу, как, используя AVFoundation framework, получить доступ к более тонким настройкам камеры, таким как, количество кадров в секунду, качество видео, длительность записи, размер видео файла. Пользователь сразу будет видеть на экране видео в том качестве, в котором оно будет сохранено.
          Читать дальше →
          • +10
          • 3,9k
          • 9
        • Приглашаем на конференцию Azov Developers Meetup — 10 декабря в Таганроге


            10 декабря в Таганроге пройдет конференция Azov Developers Meetup 2016. Будут обсуждаться вопросы разработки высоконагруженных web приложений и систем машинного обучения, тестирования и управления проектами.

            Приходите, будет интересно!
            Читать дальше →
          • Симметрическая разность возможностей Swift и Objective-C

              image


              В этой статье я расскажу о различии возможностей, которые предоставляют iOS-разработчикам языки Swift и Objective-C. Безусловно, разработчики, которые интересовались новым языком от Apple, уже видели немало подобных статей, поэтому я решил акцентировать внимание на тех отличиях, которые действительно влияют на процесс разработки и на архитектуру приложения. То есть, те отличия, которые следует знать, чтобы использовать язык максимально эффективно. Я попытался составить наиболее полный список, удовлетворяющий этим критериям.


              Кроме того, рассказывая о новых возможностях, которые Swift привнёс в разработку, я постарался не забыть упомянуть то, что он потерял по сравнению с Objective-C.


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


              На момент написания статьи текущая версия Swift — 3.0.1.


              Читать дальше →
            • Как подружить юнит-тестирование с базой данных

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


                  На картинке — глупенькая красавица отдаёт чудовищу учётную запись пользователя.

                  В одной стране жила была старая некрасивая система администрирования для школ, написанная на Classic ASP. Ею пользовались все учителя, ученики, а так же их родители. И в один прекрасный солнечный день её решили модернизировать. На смену уже устаревшей технологии должна придти современная ASP.Net MVC 5 с новым дизайном.
                  Однако в одночасье переписать все 6000 asp файлов не представляется возможным, какое-то время старая и новая система должны существовать параллельно.
                  И вот спустя полгода новая сверкающая (хотя кое-где всё таки проглядывает ржавчина и заплатки, ибо сроки) система приняла первых пользователей.
                  Следующим шагом необходимо было применить технологию единого входа (SSO) для пользователей, чтобы каждый мог свободно перемещаться между пока ещё глупенькой красавицей и полнофункциональным чудовищем.
                  Кроме того, одна из крупнейших систем управления обучением (LMS) захотела иметь тесную интеграцию с нашей системой администрирования, включая в себя SSO.
                  Читать дальше →
                Самое читаемое