Рубрика «Блог компании NIX Solutions» - 8

Чёрные списки: Киберзащита в эру продвинутых устойчивых угроз - 1

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

В основе большинства современных систем защиты лежат «чёрные списки». Однако анализирующие сигнатуры антивирусы и репутационные списки IP-адресов доказывают своим примером, что технологии на базе чёрных списков уже малоэффективны. Ведь атакующим ничего не стоит сменить IP или собрать новый исполняемый файл. Тем не менее, многие компании продолжают расширять свои сети, безопасность которых полностью зависит от чёрных списков. И перенос усилий в область определения угроз и своевременного реагирования не поможет улучшить ситуацию, пока мы не научимся надёжно блокировать большинство атак. Более того, сейчас очень трудно составлять и поддерживать чёрные списки IP-адресов, ведь в связи с исчерпанием адресного пространства IPv4 один и тот же адрес могут использовать десятки разных доменов через сети доставки контента (CDN).
Читать полностью »

Анонс встречи Sync.NET #2 - 1

Мы продолжаем развивать наше .NET-комьюнити, и приглашаем всех желающих на вторую встречу Sync.NET. Гостей ждут интересные доклады, горячие обсуждения, вкусные кофе-брейки, последние новости из мира .NET-разработки и масса ярких впечатлений.

В этот раз на миниконференции выступят три спикера с актуальными докладами.
Читать полностью »

Лучшие инструменты для JavaScript-разработчика - 1

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

Но прежде чем перейти к делу, хотим уточнить:

  • Не нужно ломать копий, если в этот список не попали какие-то из ваших любимых фреймворков или библиотек.
  • Следите за обновлениями используемых вами инструментов. В последнее время начала активно внедряться кроссбраузерная и кроссаппаратная (cross-device) поддержка. Например, можно воспользоваться сканером, который подскажет, совместимы ли более старые версии с большинством устройств.

Читать полностью »

Segmentation Fault (распределение памяти компьютера) - 1

Когда я делаю ошибку в коде, то обычно это приводит к появлению сообщения “segmentation fault”, зачастую сокращённого до “segfault”. И тут же мои коллеги и руководство приходят ко мне: «Ха! У нас тут для тебя есть segfault для исправления!» — «Ну да, виноват», — обычно отвечаю я. Но многие ли из вас знают, что на самом деле означает ошибка “segmentation fault”?

Чтобы ответить на этот вопрос, нам нужно вернуться в далёкие 1960-е. Я хочу объяснить, как работает компьютер, а точнее — как в современных компьютерах осуществляется доступ к памяти. Это поможет понять, откуда же берётся это странное сообщение об ошибке.

Вся представленная ниже информация — основы компьютерной архитектуры. И без нужды я не буду сильно углубляться в эту область. Также я буду применять всем известную терминологию, так что мой пост будет понятен всем, кто не совсем на «вы» с вычислительной техникой. Если же вы захотите изучить вопрос работы с памятью подробнее, то можете обратиться к многочисленной доступной литературе. А заодно не забудьте покопаться в исходном коде ядра какой-нибудь ОС, например, Linux. Я не буду излагать здесь историю вычислительной техники, некоторые вещи не будут освещаться, а некоторые сильно упрощены.
Читать полностью »

Удобное преобразование перечислений (enum) в строковые в С++ - 1У перечислений есть множество способов применения в разработке. Например, при создании игр они используются для программирования состояний персонажа или возможных направлений движения:

enum State {Idle, Fidget, Walk, Scan, Attack};
enum Direction {North, South, East, West};

Гораздо удобнее, когда во время отладки в консоль выводится сообщение типа “State: Fidget” вместо “State: 1”. Также частенько бывает нужно сериализировать перечисления в JSON, YAML или иной формат, причём в виде строковых значений. Помимо того, что строковые воспринимать легче, чем числа, их применение в формате сериализации повышает устойчивость к изменениям численных значений констант перечислений. В идеале, "Fidget" должен ссылаться на Fidget, даже если объявлена новая константа, а Fidget имеет значение, отличное от 1.

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

Однако средствами С++ можно гораздо проще решить задачу преобразования перечислений в строковые.
Читать полностью »

Анонс WordPress Meetup #2 - 1

Мы продолжаем традицию проведения митапов для WordPress-разработчиков Харькова, и приглашаем всех желающих на WordPress Meetup #2! Как и всегда, наших гостей ждут интересные доклады, вкусные кофе-брейки и увлекательное обсуждение новостей из мира CMS.

Приятные сюрпризы предстоящей встречи:

  • В этот раз мы соберёмся на новой отличной площадке — в хабе «Фабрика». Надеемся, здесь наши встречи будут проходить в ещё более комфортной и уютной обстановке.
  • Помимо традиционных докладов будет выделено время для вопросов и ответов, в течение которого можно обсудить все интересующие вас темы, связанные с WordPress.
  • Авторы лучших вопросов и ответов получат специальный подарок — годовую подписку на любую IDE от JetBrains.
  • На встрече авторы семи репостов с наибольшим количеством лайков получат WordPress-кружку. Нужно лишь позвать с собой друзей, сделав репост анонса в Facebook, VK или Google+ с хештегом #wpkharkiv.

Чтобы принять участие в конференции, подписывайтесь на наш ивент на meetup.com и подтвердите своё присутствие на второй встрече Kharkiv WordPress.

Приходите, будет круто!
Читать полностью »

Отладка и профилирование в Visual Studio 2015 - 1

В Visual Studio 2015 были заметно улучшены инструменты для отладки и диагностики .NET-приложений. Пожалуй, самым значимым нововведением стал Diagnostic Tools Hub, позволяющий выполнять профилирование в ходе отладки. Давайте посмотрим, какие же новые возможности появились в VS 2015.
Читать полностью »

Жизнь в Лас-Вегасе не ограничивается азартными играми. Несмотря на славу игорной столицы, здесь проходят и мероприятия совсем из других сфер жизни. В частности, ежегодная конференция DEVIntersection, которую в этом году посетила команда наших разработчиков. И здесь мы хотим рассказать обо всём самом важном и интересном, что они узнали на конференции.
Читать полностью »

Сравнение производительности PHP 7.0 и HHVM - 1

В течение довольно продолжительного времени о нём не было никаких новостей, но, после долгого ожидания, PHP 7 наконец-то вышел 3 декабря 2015 года. Мы решили протестировать самые популярные CMS, основанные на PHP, чтобы проверить как они работают с PHP 7.
Читать полностью »

Как правильно запрашивать доступ у пользователей iOS - 1

Автор этой статьи — Бренден Маллиган, один из создателей LaunchKit, пакета инструментов для iOS-разработчиков. Он также работает над мобильным и веб-приложением Cluster, которое позволяет создавать личные соцсети на основе общих интересов и опыта. Также Бренден является автором проектов ArtistData и OneSheet.

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

Главный урок, который я вынес: не запрашивайте у пользователей доступ до тех пор, пока данные вам действительно не понадобится. И предельно ясно дайте им понять, что они получат взамен.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js