• Подпись файлов через браузер

      В ряде проектов требуется подписывать файлы произвольного формата (например, конкурсную документацию в формате PDF) при загрузке их на сервер.
      Обычно требуется подпись по ГОСТ Р 34.10-2001, с применением цифровых сертификатов X.509. При этом саму подпись потом удобно хранить на сервере в формате CMS detached.
      Сразу хочется отметить, что задача это решена достаточно давно (КриптоПро CSP, CAPICOM, etc). Но есть нюансы, которые делают такое решение не всегда удобным. Для одного из проектов мы предложили решение по подписи файлов, которое реально облегчило жизнь конечным пользователям и техподдержке. О нем ниже.



      Читать дальше →
    • Боремся с нагрузками в HPE Vertica

      • Tutorial
      Типовой сценарий работы «just in time» хранилища данных выглядит так: десятки (ETL) сессий почти непрерывно захватывают с источников данные и вставляют их в хранилище. Параллельно множество других (ELT) сессий отслеживают поступление данных, заполняют консолидированный слой и ведут расчет агрегатов и витрин. Одновременно с этим, на поступающих первичных и рассчитанных данных, выполняют запросы пользователи, BI и другие системы. Вся эта каша должна ладно вариться в рамках сервера хранилищ данных, без тормозов и затыков, какими бы не были пиковые нагрузки.

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

      По умолчанию после установки сервера Vertica на созданной базе данных это выглядит примерно так:


      Читать дальше →
      • +16
      • 4.8k
      • 4
    • Отрисовка карт с условными координатами

      • Tutorial

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


      В прошлой своей статье я рассказал про построение простых графиков с помощью библиотеки d3, с ее же помощью планировал отрисовывать и карты, но поэкспериментировав с d3, Raphael и paper.js понял что велосипедостроения избежать не удастся и переделал отрисовку на HTML Canvas, о чем и хочу рассказать в данной статье.

      Читать дальше →
    • Головоломки TCP

      • Translation

      Говорят, что нельзя полностью понять систему, пока не поймёшь её сбои. Ещё будучи студентом я ради забавы написал реализацию TCP, а потом несколько лет проработал в IT, но до сих пор продолжаю глубже и глубже изучать работу TCP — и его ошибки. Самое удивительное, что некоторые из этих ошибок проявляются в базовых вещах. И они неочевидны. В этой статье я преподнесу их как головоломки, в стиле Car Talk или старых головоломок Java. Как и любые другие хорошие головоломки, их очень просто воспроизвести, но решения обычно удивляют. И вместо того, чтобы фокусировать наше внимание на загадочных подробностях, эти головоломки помогают изучить некоторые глубинные принципы работы TCP.
      Читать дальше →
    • Консоль разработчика Google Chrome: десять неочевидных полезностей

      • Translation
      Как с помощью консоли разработчика превратить Google Chrome в подобие текстового редактора? Какой смысл в ней приобретает знакомый многим по jQuery значок $? Как вывести в консоль набор значений, оформленный в виде вполне приличной таблицы? Если сходу ответы на эти вопросы в голову не приходят, значит вкладка Console из инструментов разработчика Chrome ещё не раскрылась перед вами во всей красе.

      image

      На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
      Читать дальше →
    • План «Б»: открывать кафе или идти в программисты?

        image alt text


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


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

        Читать дальше →
      • Автоматизация работы ИТ-службы

        Добрый день, уважаемый Хабр! Поделюсь небольшим опытом в организации работы ИТ службы Банка. Статья не будет нагруженной описанием бюрократических составляющих, которые я выполнял для достижения цели и, надеюсь, мой опыт будет вам полезен.

        Все началось с того, что в начале 2016 года меня пригласили работать в небольшой украинский Банк в качестве архитектора информационных систем (ИС). И одной из задач, которая перешла мне от прошлой команды, была задача организации работы ИТ службы в соответствии с сервисно-ресурсной модели. Да, задача безусловно не относится к архитектуре ИС, но послужила для меня своеобразным вызовом.

        Факторы, повлиявшие на успех выполнения задачи:

        • Поддержка руководства (уровень правления Банка);
        • Желание модернизировать ИТ службу (как со стороны бизнес пользователей, так и со стороны работников ИТ службы);
        • Личный опыт работы в данной модели управления на предыдущих местах работы.
        Читать дальше →
        • +12
        • 23.7k
        • 4
      • Ключевые навыки успешной Agile-команды или как сделать так, чтобы Agile заработал?

          Дмитрий Лобасев (lobasev.ru)


          Давайте погрузимся в механику гибких процессов и вместе подумаем, как сделать так, что вот, приходите вы, например, с конференции и как менеджер говорите: «Так, ребята, всем Kanban с понедельника!» или «Всем Scrum!». А ребята смотрят на вас – ну, а какой у них выбор? Сказали Scrum, значит, Scrum… Идут, что-то делают, пытаются сделать Scrum, делают какие-то ритуалы, приплясывают возле доски по утрам, ходят, что-то еще делают. Но что-то не работает.

          Мой доклад, как раз, этому и посвящен. Давайте рассмотрим механику Agile-процессов – как сделать так, чтобы все-таки это приносило ценность.

          Вот как было задумано:



          Ну, и получается на выходе:


          Читать дальше →
        • Бизнес-девелопмент для SaaS-сервисов: дизайн-проектирование стратегии

            Сергей Рыжиков

            Сергей Рыжиков (1С-Битрикс)



            Есть такое ругательное слово – бизнес-девелопмент. Мы часто можем его видеть на визитках у наших западных коллег. На самом деле, я толком даже не могу объяснить по-русски, что такое бизнес-девелопмент. Перед этой конференцией я попытался пошарить. В русском варианте вы не найдете нормального объяснения, что это такое. Есть западное определение.
            Читать дальше →
            • +11
            • 6.8k
            • 1
          • Избавляемся от бинарных зависимостей с композитной сборкой в Gradle 3.1

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


              Композитные сборки


              В готовящейся к релизу версии 3.1 в Gradle появляется новый поход к организации сборок, состоящих из нескольких компонентов: композитные сборки (ориг. Composite Builds).


              Композитные сборки позволяют:


              • Быстро подложить исправленную версию исходников библиотеки в другой проект без необходимости собирать её, опубликовывать и править сборку.
              • Делить большие проекты на несколько небольших, изолированных сборок, над каждой из которых можно работать как по отдельности, так и одновременно.
              • Отделить разработку плагина для системы сборки от проекта, его использующего (аналог buildSrc)

              Читать дальше →
              • +15
              • 5.5k
              • 5
            • Обзор возможностей инструмента Adobe Captivate

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

              Курс, сгенерированный на Adobe Captivate, можно выгружать в разных форматах. В своей работе я чаще всего использую форматы: *.html, *.exe и scroom 1.2 для загрузки курсов в систему Moodle и на иные платформы типа eFront.

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

              Для создания симуляций программ, Captivate позволяет использовать правую и левую кнопку мыши и нажатия клавиш, что очень удобно при обучении пользователей, без допуска оных к «боевому» стенду. Для демонстраций программ возможна запись в реальном времени. Созданные с помощью Captivate скринкасты занимают намного меньше места, чем полноценные записи с экрана.
              Читать дальше →
              • +15
              • 12.3k
              • 6
            • Выявление проблем дорожной сети с помощью Яндекс.Пробок. Лекция в Яндексе

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



                Аналитик Карт Леонид Медников рассказал о примере такого использования на конференции Яндекса «Пути Сообщения 2016». Под катом — расшифровка доклада и большинство слайдов.


                Читать дальше →
              • Получаем управление обратно в Jenkins Pipeline

                • Tutorial

                Jenkins Pipeline Plugin очень удобная штука, чтобы организовать у себя непрерывную доставку ПО (Continuous Delivery). Плагин даёт возможность разбить доставку ПО до конечного потребителя на стадии (stage), каждой из которых можно управлять (на каком узле, что и как нужно сделать) и, в конечном счёте, визуализировать процесс доставки. Вкупе с Blueocean plugin всё это выглядит очень вкусно. В реальной же жизни подчас оказывается так, что кроме Jenkins-а есть ещё и другие системы, которые участвуют в этом процессе (workflow), и встаёт вопрос — как их интегрировать с имеющимися решениями. Примером тут может служить Jira, в которой есть некий issue падающий на тестировщика, прокликивающего интерфейс (ну или совершающего другую полезную работу), и только после его благословения, наш артефакт имеет право двигаться дальше в сторону ожидающего его клиента.


                Так какие у нас есть варианты реализации?

                Хочу узнать
                • +15
                • 34.4k
                • 5
              • Джентельменский набор пакетов R для автоматизации бизнес-задач

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


                  Как правило, все пакеты (9109 штук на 07.09.2016) находятся в репозитории CRAN. Те, что по тем или иным причинам, пока не опубликованы в репозиторий, могут быть найдены на GitHub. Итак, кратким списком:

                  Читать дальше →
                • Панорамный обзор: Как оценить работу сотрудника

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

                    Это стало поводом для поиска более разносторонних подходов, и в качестве одного из решений появился «метод 360 градусов». Он предполагает сбор обратной связи от всего окружения человека или рабочей группы. Метод был придуман 19 лет назад и представляет собой периодический сбор оценок от руководителей, подчиненных и коллег. Несколько лет назад мы начали использовать его в Wrike для обратной связи руководителям, тимлидам и менеджерам по продукту, чтобы определять направления для личного развития. Также метод 360 градусов помогает улучшить взаимодействие в командах, куда пришло много новых сотрудников, или там, где возможны потенциальные конфликты.


                    Читать дальше →
                    • +11
                    • 14.3k
                    • 9
                  • 30 легковесных JavaScript плагинов и библиотек

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

                      Как и следовало ожидать ниже вы найдете много плагинов для создания ползунков, галерей с изображениями, адаптивных меню, а также много других полезных плагинов и библиотек. Также в списке представлены плагины, которые предлагают действительно уникальные функциональные возможности. Давайте взглянем на список!
                      Читать дальше →
                    • Как моделировать бизнес-процессы в нотации eEPC?

                      В ходе своей работы и преподавания я сталкиваюсь с описанием бизнес-процессов организации в нотации eEPC (Extended event driven process chain), которая принята стандартом де-факто для описания процедур и регламентов после обследования деятельности организации. К сожалению, используя эту нотацию очень просто допустить ошибки моделирования, не зная правил, по которым она составляется. Эти ошибки приводят в последующем к несоответствию логики процесса, и как следствие – непониманию реальной ситуации в организации. Эта статья является некоторым обобщением моего опыта моделирования бизнес-процессов, и надеюсь, послужит некоторым читателям полезным руководством.
                      Читать дальше →
                    • Поиск работы за рубежом: дайджест полезных материалов для потенциальных ИТ-экспатов



                        Вопрос о поиске работы за границей при нынешней нестабильной экономической ситуации в России стоит перед многими ИТ-специалистами довольно остро. Недавний опрос мэрии Иннополиса и рекрутингового портала HeadHunter показал, что около 13% российских ИТ-спецалистов готовы стать «трудовыми мигрантами». Но так ли просто найти работу за рубежом и настолько ли «там» все лучше, чем «здесь» — чтобы с этим разобраться я изучил много интересных материалов. Свое мнение афишировать не буду, лучше поделюсь полезным дайджестом материалов о поиске работы в разных странах и решения возникающих по ходу дела задач и вопросов.
                        Читать дальше →
                      • 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками

                        • Translation

                        image
                        Маргарет Гамильтон стоит рядом с написанным ей исходным кодом бортового компьютера «Аполлона»


                        Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.


                        В JPL пишут на Си, и на их сайте есть документ "JPL Institutional Coding Standard", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в Хекслете постоянно говорим об этом в вебинарах и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «Основы программирования», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.


                        Спасибо хабраюзеру Boletus за важную поправку и дополнение:
                        В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего стандарта, наряду с MISRA C и другими дополнениями. Статья в Википедии.


                        Вот перевод этого списка.

                        Читать дальше →