Как стать автором
Обновить
48.02
Сначала показывать

Почему мы выбрали новый Angular

Время на прочтение 11 мин
Количество просмотров 40K
image


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


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

Читать дальше →
Всего голосов 42: ↑38 и ↓4 +34
Комментарии 101

Тестирование в React

Время на прочтение 14 мин
Количество просмотров 43K
image

Каждый JS-разработчик рано или поздно начинает писать тесты и сожалеть, что не стал делать этого раньше. Поскольку за последние пару лет все постепенно перешли к компонентной разработке на основе React, Angular или, например, Vue, это дало очередной толчок для популяризации тестирования, так как компоненты обычно малы и тестировать их гораздо проще. В данной статье мы рассмотрим компонентное тестирование в React.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 10

Иннополис глазами жителя Москвы

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


Шайба
Читать дальше →
Всего голосов 28: ↑25 и ↓3 +22
Комментарии 59

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

Время на прочтение 7 мин
Количество просмотров 36K


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

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

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

Разумеется, для скрытия факта передачи информации можно использовать не только формат JPEG, но и многие другие. Каждый формат имеет свои особенности, благодаря которым он может подходить или нет для роли контейнера. Я опишу, как можно найти приклеенные файлы в наиболее популярных форматах или же указать на факт склейки.
Читать дальше →
Всего голосов 33: ↑27 и ↓6 +21
Комментарии 38

Партиционирование в postgres 9.x. Использование pg_pathman для оптимизации вставки и отсечения (pruning) партиций

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

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

Также я расскажу, как это замечательное расширение внедрить в схему данных, уже побитую на партиции «штатным» способом.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 6

Как написать свою «песочницу»? Разбор простейшей «песочницы»

Время на прочтение 14 мин
Количество просмотров 19K
image
Если вам случалось писать большие приложения, вы, вероятно, использовали такие виртуальные машины, как VMWare, Virtual PC или что-то иное. Но задавались ли вы вопросом: как они работают? Эти удивительные, можно сказать, магические технологии увлекали меня довольно долгое время. Чтобы развенчать «магию» и разобраться в деталях, я написал «с нуля» собственную систему виртуализации – «песочницу». Решение этой задачи было довольно сложным делом. Реализация подобного продукта ставит множество вопросов, ответы на которые вы не найдете в Google, поэтому я хочу поделиться своим опытом с сообществом.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 6

Как восстановить утерянный пароль к архиву с помощью видеокарты

Время на прочтение 6 мин
Количество просмотров 86K
image

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


Случилось так, что мне потребовалось подобрать утерянный пароль к архиву 7zip, который содержал резервную копию нескольких файлов со старого диска. Пароль я давно потерял, а процесс его восстановления потребовал определенных усилий и оказался довольно занятным делом. Подробнее об этом и расскажу в статье.
Читать дальше →
Всего голосов 29: ↑23 и ↓6 +17
Комментарии 38

Сериализация данных или диалектика общения: простая сериализация

Время на прочтение 13 мин
Количество просмотров 13K
image Доброго времени суток, уважаемые. В данной статье мы рассмотрим наиболее популярные форматы сериализации данных и проведем с ними небольшое тестирование. Это первая статья на тему сериализации данных и в ней мы рассмотрим простые сериализаторы, которые не требуют от разработчика больших изменений в коде для их интеграции.

Рано или поздно, но вы, как и наша компания, можете столкнуться с ситуацией, когда количество используемых в вашем продукте сервисов, резко возрастает, да и все они к тому же оказываются очень «говорливыми». Произошло ли это из-за перехода на «хайповую» нынче микросервисную архитектуру или вы просто получили пачку заказов на небольшие доработки и реализовали их кучкой сервисов — неважно. Важно то, что начиная с этого момента, ваш продукт обзавелся двумя новыми проблемами — что делать с увеличившимся количеством данных, гоняемых между отдельными сервисами, и как не допустить хаоса при разработке и поддержке такого количества сервисов. Немного поясню про вторую проблему: когда количество ваших сервисов вырастает до сотни или более, их уже не может разрабатывать и сопровождать одна команда разработчиков, следовательно, вы раздаете пачки сервисов разным командам. И тут главное, чтобы все эти команды использовали один формат для своих RPC, иначе вы столкнетесь с такими классическими проблемами, когда одна команда не может поддерживать сервисы другой или просто два сервиса не стыкуются между собой без обильного уплотнения места стыка костылями. Но об этом мы поговорим в отдельной статье, а сегодня мы обратим внимание на первую проблему возросших данных и подумаем, что мы можем с этим сделать. А делать нам в силу нашей православной лени ничего не хочется, а хочется добавить пару строчек в общий код и получить сразу профит. С этого мы и начнем в данной статье, а именно — рассмотрим сериализаторы, встраивание которых не требует больших изменений в нашем прекрасном RPC.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 24

Как написать свою «песочницу»: пример простейшей «песочницы». Часть II

Время на прочтение 13 мин
Количество просмотров 10K
image

В первой части статьи вы получили краткое представление о драйверах в привилегированном режиме. Настало время покопаться в нашей песочнице.
Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 0

Не все КТ масленица, или КТ не гуляет сама по себе

Время на прочтение 14 мин
Количество просмотров 4.8K


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

Опираясь на Федеральный закон (далее ФЗ), проанализируем и логически разложим цели, задачи и особенности введения режима КТ, а также связку закона о КТ с другими нормативно-правовыми актами. Анализ будем проводить в контексте корпоративной защиты от внутренних угроз информационной безопасности. Для удобства восприятия информации всё это мы «замариновали» в инфографике, полная версия которой представлена в конце статьи.
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 6

Ваш звонок очень важен для нас? Или как работает система приоритизации заявок в сервисных подразделениях

Время на прочтение 8 мин
Количество просмотров 9.4K
imageЗдравствуй, дорогой Читатель. Сегодня я расскажу тебе, как устроена система определения приоритетов обращений в техническую поддержку компании, наличие которой в организации позволяет существенно сократить время реакции на запрос, правильно распределить ограниченные ресурсы сервисного подразделения, максимально быстро и эффективно реагировать на острые проблемы клиентов, не терпящие отлагательств. Особенности работы системы мы рассмотрим на реальном примере нашей компании.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 21

Как мы используем Confluence для разработки требований к продукту

Время на прочтение 6 мин
Количество просмотров 40K


В статье описаны наши подходы к использованию Confluence в качестве инструмента для работы с требованиями к продукту. Не претендуем на универсальность, но, возможно, эти подходы будут полезны для решения ваших задач, которые не обязательно связанны с процессами разработки требований (ведение пользовательской документации, описание внутренних регламентов работы отдела, организация базы знаний и пр).
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 13

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

Время на прочтение 7 мин
Количество просмотров 13K


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

Особенности работы Postfix

Время на прочтение 10 мин
Количество просмотров 52K
image

Добрый день, сообщество. В этой статье хочу поговорить о Postfix – о том, каковы принципы его работы, и о возможностях диагностики проблем. В силу специфики работы приходится с ним сталкиваться — либо для решения своих задач, либо для понимания того, как работает чужая инфраструктура. В интернете о Postfix много информации, однако в основной массе это готовые конфиги для развертывания почтового сервера с нуля. Здесь же я постараюсь охватить основные аспекты администрирования Postfix.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 9

Как (не) наломать дров на удаленке

Время на прочтение 5 мин
Количество просмотров 5.8K
image

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

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

Читать дальше →
Всего голосов 26: ↑19 и ↓7 +12
Комментарии 10

Языки и технологии принтеров

Время на прочтение 7 мин
Количество просмотров 21K
image

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

В этой статье предлагаю рассмотреть и сравнить технологии печати, с которыми вы сталкиваетесь, выбирая новый принтер, проводя допечатную подготовку документа или работая с электронными PDF-копиями документов. И конечно, если вы пытаетесь перехватить и проанализировать задание на печать.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 5

Простая математика для решения непростых задач

Время на прочтение 3 мин
Количество просмотров 19K
image

При рассмотрении статьи, посвященной системе приоритезации обращений в техническую службу АО «Инфовотч», может возникнуть логичный вопрос: каким образом проводился расчет весовых коэффициентов? «Уложить» алгоритм расчета в комментарий к статье с учетом его объема будет, мягко говоря, трудновато. Поэтому, предвидя подобные вопросы, мы решили дополнить предыдущую статью поэтапным рассмотрением алгоритмов расчета данных весовых коэффициентов.
Читать дальше →
Всего голосов 20: ↑16 и ↓4 +12
Комментарии 14

Анимация в Angular-приложениях

Время на прочтение 20 мин
Количество просмотров 37K


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


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

Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 5

Делаем MitM с помощью openssl на Android

Время на прочтение 18 мин
Количество просмотров 12K

image


Мотивация


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


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


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


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


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


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


Цель

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 2

Атмосфера в компании InfoWatch

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


Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 36

Информация

Сайт
www.infowatch.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия