• Прокачай свой CLI

      Сейчас многие фреймворки имеют в своем арсенале CLI (Command Line Interface) и ангуляр – не исключение. Впервые с CLI-утилитами я столкнулся, когда пробовал EmberJS и тогда мне это показалось очень удобным инструментом, который довольно сильно экономил мое время. Но, к сожалению, из коробки CLI-утилиты подходят только для несложных, домашних проектов.


      Использование их же в крупных production-проектах без допилки напильником почти невозможно. Поэтому на старте нашего проекта мы вынуждены были отказаться от его использования из-за особенностей нашей архитектуры. Почти год я периодически смотрел в сторону Angular CLI в плане его развития и огорчался, что мы не можем его использовать, так как это сделало бы вход в проект гораздо проще. Но в один прекрасный момент команда Angular выпустила @angular-devkit, который содержит в себе набор пакетов, используемых cli утилитой, и это дало нам возможность допилить Angular CLI под наши нужды. Репозиторий содержит на сегодняшний день с десяток пакетов, но в этой статье мы рассмотрим только те, которые относятся к schematics.


      image

      Читать дальше →
    • Как (не) наломать дров на удаленке

        image

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

        И вот что выяснилось:

        Читать дальше →
      • Языки и технологии принтеров

          image

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

          В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
          Читать дальше →
          • +12
          • 5,9k
          • 5
        • Миграция из Oracle в Postgres

            Зачем переносить данные


            image


            Тема переноса (миграции) данных из Oracle в Postgres набирает обороты. В РФ количество запросов по переходу на Postgres на волне импортозамещения, сейчас больше, чем когда либо. Oracle — очень качественный, мощный и отлично документированный инструмент. Но вместе с тем очень дорогой в лицензировании и поддержке. Зачастую охватить все его возможности не получается в силу специфики использования. Ключевыми параметрами эксплуатации в нашем случае являются производительность системы, процент использования (утилизации) железа, простая тех. поддержка, а также дешевое и быстрое масштабирование — легкое развертывание новых баз.


            Я решил изучить процесс миграции данных, изучая то, как реализовать пожелания конкретного заказчика, а также из практического любопытства, теперь я пробую перенести небольшую схему около 15 Гбайт с Oracle 11.2.0.4 на Linux Redhat 6.8 в Postgres 9.4 на Windows. Немного погрузившись в тему, я решил написать эту статью и рассмотреть процесс подробно. В отрыве от нашей специфики пост будет полезен интеграторам и DBA при планировании переноса данных/CUT.

            Читать дальше →
          • Прозрачный Squid с SSL-Bump для Gentoo с nft

              image

              Предыстория


              Недавно я взялся переводить межсетевой экран на своей РС с проверенных временем iptables на новенькие nftables. Для более углублённого изучения таблиц nf я поставил себе задачу: настроить прозрачный прокси-сервер (Squid) с разбором шифрованных соединений (HTTPS) для раздачи доступа в Интернет виртуальным машинам, РС «Raspberry Pi», а также своему смартфону (работающему с ОС «Android» 6-го выпуска) по беспроводному соединению (с помощью приложения hostapd).
              Читать дальше →
            • Для чего и каким образом мы тестируем обновление

                image

                В этой статье я расскажу, почему так важно не забывать о тестировании обновления продукта и, каким образом устроен данный процесс в нашей компании. Стабильность обновления — это вопрос репутации продукта и доверия пользователя к вашим нововведениям. По своему опыту могу сказать, что иногда перед запуском обновления, например, на телефоне, предпочитаю выждать хотя бы день и прочесть комментарии (они всегда актуальны только для последней версии). Если комментарии ругательные, то вероятность того, что я решусь на обновление, стремится к нулю. Рейтинг приложения за счет отрицательных комментариев падает, и восстановить его не так просто, ведь надо суметь заинтересовать пользователя в установке нового обновления, которого он теперь уже будет опасаться.
                Читать дальше →
              • Анимация в Angular-приложениях

                • Tutorial


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


                После перехода нашего продукта на Angular 2+ мы столкнулись с тем, что Ангуляр предоставляет свой механизм для описания анимации. Поскольку Ангуляр полностью владеет транзакциями DOM, то он может упростить описание анимации и мы решили попробовать отказаться от анимации на CSS. Да и в целом было интересно посмотреть, что из этого получится. За почти год разработки проекта мы так и не перешли обратно на CSS-анимацию, и я могу сказать, что можно вполне успешно жить с анимацией Ангуляра. В этой статье я расскажу, как использовать анимацию в проектах на Angular 2+ и о возможностях, которые до сих пор почему-то не описаны в официальном гайде.

                Читать дальше →
                • +11
                • 22,3k
                • 5
              • Как восстановить утерянный пароль к архиву с помощью видеокарты

                  image

                  Добрый день, Хабрасообщество!


                  Случилось так, что мне потребовалось подобрать утерянный пароль к архиву 7zip, который содержал резервную копию нескольких файлов со старого диска. Пароль я давно потерял, а процесс его восстановления потребовал определенных усилий и оказался довольно занятным делом. Подробнее об этом и расскажу в статье.
                  Читать дальше →
                • ГК InfoWatch подвела итоги года

                    Деятельность группы компаний (ГК) InfoWatch в 2017 году подарила такое количество интересных событий, что только их официальное изложение потребовало бы издать небольшую книжку объемом чуть более 300 страниц. К счастью для издателей, а также для тех, кто не всегда успевает следить за нашими новостями, мы уменьшили объем излагаемого материала примерно в 100 раз и представляем вашему вниманию только самые важные факты из жизни компании в уходящем году.

                    Развитие бизнеса


                    Оборот бизнеса компании растет высокими темпами уже пять лет подряд. В 2016 финансовом году выручка ГК InfoWatch превысила 1,5 млрд рублей, а число проектов внедрений DLP-решений увеличилось на треть.

                    image
                    Читать дальше →
                  • Базовые наборы API для реализации сервисов «прозрачного» проксирования

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

                      image

                      Cтатья посвящена сервису прозрачного проксирования и способам реализации проксирования трафика. В ней не будут рассматриваться вопросы перенаправления сетевого трафика на сервис прозрачного проксирования, хотя это тоже достаточно интересная техническая задача.
                      Читать дальше →
                    • Сбор и фильтрация событий входа в систему с помощью Log Parser



                        Здравствуйте, уважаемое сообщество!


                        ИТ-инфраструктура всегда находится в динамике. Тысячи изменений происходят ежеминутно. Многие из них требуется регистрировать. Аудит систем является неотъемлемой частью информационной безопасности организаций. Контроль изменений позволяет предотвратить серьезные происшествия в дальнейшем.

                        В статье я хочу рассказать о своем опыте отслеживания событий входа (и выхода) пользователей на серверах организации, подробно описать те детали, которые возникли в ходе выполнения задачи анализа логов аудита, а также привести решение этой задачи по шагам.
                        Читать дальше →
                        • +6
                        • 11,9k
                        • 9
                      • Иннополис глазами жителя Москвы

                          Меня зовут Лена, я работаю тестировщиком в InfoWatch. Хочу поделиться впечатлениями от длительной летней командировки в Иннополисе. Знаю, что статей об этом необычном городе под Казанью уже немало, и надеюсь, что мой рассказ поможет вам увидеть его с новой стороны.


                          Шайба
                          Читать дальше →
                        • Делаем MitM с помощью openssl на Android

                            image


                            Мотивация


                            В русскоязычном интернете трудно найти информацию об API-библиотеке OpenSSL. Большое внимание уделяется использованию консольных команд для манипуляции с самоподписанными сертификатами для веб-серверов или OpenVPN-серверов.


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


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


                            Отдельно стоит отметить сетевую составляющую. Если сертификат есть и просто лежит на диске, он бесполезен.


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


                            Данная статья — компиляция моего опыта по работе с библиотекой OpenSSL при реализации клиент-серверного приложения. Описанные в ней функции будут работать как на десктопе, так и на Android-устройствах. К статье прилагается репозиторий с кодом на C/C++ для того, чтобы вы могли увидеть работу описываемых функций.


                            Цель

                            Читать дальше →
                          • Методы обнаружения «склеенных» файлов



                              Многие могли слышать о таких файлах, как rarjpeg'и. Это особый вид файлов, представляющий собой склеенную вплотную jpeg-картинку и rar-архив. Он является прекрасным контейнером для скрытия факта передачи информации. Создать rarjpeg можно с помощью следующих команд:

                              UNIX: cat image1.jpg archive.rar > image2.jpg
                              WINDOWS: copy /b image1.jpg+archive.rar image2.jpg

                              Или же при наличии hex-редактора.

                              Разумеется, для скрытия факта передачи информации можно использовать не только формат JPEG, но и многие другие. Каждый формат имеет свои особенности, благодаря которым он может подходить или нет для роли контейнера. Я опишу, как можно найти приклеенные файлы в наиболее популярных форматах или же указать на факт склейки.
                              Читать дальше →
                            • Не все КТ масленица, или КТ не гуляет сама по себе



                                Категорирование информации в РФ на сегодняшний день довольно обширное. Одних только тайн по видам более 50. Сегодня мы рассмотрим одну из них, но, на наш взгляд, очень важную в контексте корпоративной защиты от внутренних угроз информационной безопасности – коммерческую тайну (далее КТ).

                                Опираясь на Федеральный закон (далее ФЗ), проанализируем и логически разложим цели, задачи и особенности введения режима КТ, а также связку закона о КТ с другими нормативно-правовыми актами. Анализ будем проводить в контексте корпоративной защиты от внутренних угроз информационной безопасности. Для удобства восприятия информации всё это мы «замариновали» в инфографике, полная версия которой представлена в конце статьи.
                                Читать дальше →
                                • +15
                                • 4,1k
                                • 6
                              • Партиционирование в postgres 9.x. Использование pg_pathman для оптимизации вставки и отсечения (pruning) партиций

                                  Здравствуйте! Хочу рассказать про особенности партиционирования в текущей postgresql 9.х и его улучшении с помощью расширения pg_pathmanвот), созданного парнями из Postgres Professional. Статья предназначена для знакомых с партиционированием разработчиков, которым понадобилось разбить большую БД в postgres, или для тех, кто хочет оценить сложность переноса уже партиционированной не postgres БД на postgres.

                                  Сначала мы создадим схему БД, затем партиционируем её двумя способами(«штатным» и pg_pathman), после чего наполним данными и проверим, как работают запросы по партиционированным таблицам.

                                  Также я расскажу, как это замечательное расширение внедрить в схему данных, уже побитую на партиции «штатным» способом.
                                  Читать дальше →
                                  • +21
                                  • 6,4k
                                  • 6
                                • Атмосфера в компании InfoWatch

                                    Дорогие друзья, предлагаем вам совершить обзорную экскурсию в центральный офис «InfoWatch» и своими глазами увидеть, где и как мы работаем. Для начала немного истории: «Группа компаний InfoWatch — российский разработчик комплексных решений для обеспечения информационной безопасности организаций. Компания основана Натальей Касперской в 2003 году и сегодня объединяет такие бренды как InfoWatch, Kribrum, Attack Killer, EgoSecure, Cezurity и Taiga. На 2017 год мы имеем более 20 подразделений и представительств в России, Западной Европе, Казахстане, Беларуси, Юго-Восточной Азии, Ближнем Востоке. Головной офис компании находится в Москве».


                                    Читать дальше →
                                  • Динамический Angular или манипулируй правильно

                                      image

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

                                      Читать дальше →
                                    • Кадровый голод тоже не тетка, или как вырастить ИТ-специалиста из студента



                                        По оценкам Минкомсвязи России, дефицит кадров в ИТ-отрасли оценивается в 350–400 тысяч специалистов — почти столько же, сколько работает в этой сфере сегодня. Анализ рынка труда (по данным hh.ru) в разрезе ИТ-профессий позволяет сделать вывод, что ежегодно потребность в ИТ-специалистах возрастает примерно на 25%. Так, в отношении значений 2016 года к 2015 году, прирост ИТ вакансий составил 28%. Об одном из способов решения вопроса нехватки кадров далее в нашей статье.
                                        Читать дальше →
                                      • Почему мы выбрали новый Angular

                                          image


                                          В своей статье я хочу поделиться с вами опытом использования нового Angular как основы для наших enterprise приложений. Речи о том, что новый Angular лучше, чем React, Vue или какая-то другая популярная сейчас библиотека, в статье не пойдет, хотя, конечно, я буду сравнивать его с конкурентами. Все решения имеют свои плюсы и минусы, и то, что хорошо подошло одному проекту, может устроить сущий ад в другом. Итак, прежде чем объяснить, чем нас зацепил новый Аngular, расскажу немного о том, что мы уже используем в разработке.


                                          Наш основной проект имеет долгий путь развития и построен на уже устаревших технологиях — Marionette + Backbone + Coffescript. Пару лет назад мы поняли, что развивать проект в таком стеке стало довольно тяжело, и начали изучать альтернативы в экосистеме фронтенда и думать, как же нам мигрировать туда нашего «зверя».

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

                                        Самое читаемое