Как стать автором
Обновить

Компания NIX временно не ведёт блог на Хабре

Сначала показывать

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

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


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

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

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

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


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

В этот раз на миниконференции выступят три спикера с актуальными докладами.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии6

Анонс ThinkJava #3. Микросервисы

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


Друзья, приглашаем всех желающих посетить нашу третью встречу ThinkJava. На этот раз мы полностью посвящаем её теме микросервисов: что это такое, как начать их использовать, с какими проблемами можно столкнуться и как их решить, а также как обеспечить безопасность приложения с микросервисной архитектурой.

Последние несколько лет микросервисы остаются одним из наиболее актуальных подходов к разработке крупных приложений. Осенью прошлого года эксперты компании NIX Solutions изучали все нюансы микросервисной архитектуры на крупнейшей международной отраслевой конференции Spring One 2GX. С тех пор наши разработчики успели опробовать многое из услышанного на практике, поэкспериментировать с микросервисами, наступить на некоторые грабли, научиться избегать ошибок или же без потерь устранять их последствия. А заодно освоили различные инструменты разработки микросервисных приложений.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

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

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


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

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

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

Читать дальше →
Всего голосов 40: ↑23 и ↓17+6
Комментарии12

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

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


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

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

Вся представленная ниже информация — основы компьютерной архитектуры. И без нужды я не буду сильно углубляться в эту область. Также я буду применять всем известную терминологию, так что мой пост будет понятен всем, кто не совсем на «вы» с вычислительной техникой. Если же вы захотите изучить вопрос работы с памятью подробнее, то можете обратиться к многочисленной доступной литературе. А заодно не забудьте покопаться в исходном коде ядра какой-нибудь ОС, например, Linux. Я не буду излагать здесь историю вычислительной техники, некоторые вещи не будут освещаться, а некоторые сильно упрощены.
Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии10

Удобное преобразование перечислений (enum) в строковые в С++

Время на прочтение4 мин
Количество просмотров25K
У перечислений есть множество способов применения в разработке. Например, при создании игр они используются для программирования состояний персонажа или возможных направлений движения:

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

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

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

Однако средствами С++ можно гораздо проще решить задачу преобразования перечислений в строковые.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии7

Анонс WordPress Meetup #2

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


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

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

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

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

Приходите, будет круто!
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии3

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

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


В Visual Studio 2015 были заметно улучшены инструменты для отладки и диагностики .NET-приложений. Пожалуй, самым значимым нововведением стал Diagnostic Tools Hub, позволяющий выполнять профилирование в ходе отладки. Давайте посмотрим, какие же новые возможности появились в VS 2015.
Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии1

Мой подход к Class Based Views

Время на прочтение5 мин
Количество просмотров9.3K
Люк Плант (Luke Plant) — программист-фрилансер с многолетним стажем, один из ключевых разработчиков Django.

Когда-то я писал о своей неприязни к Class Based Views (CBV) в Django. Их использование заметно усложняет код и увеличивает его объём, при этом CBV мешают применять некоторые достаточно распространённые шаблоны (скажем, когда две формы представлены в одном view). И судя по всему, я не единственный из разработчиков Django, придерживающийся такой точки зрения.

Но в этом посте я хочу рассказать об ином подходе, который я применил в одном из проектов. Этот подход можно охарактеризовать одной фразой: «Создавайте свой собственный базовый класс».
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Почему я так сильно люблю EF, или Фичи, от которых сложно отказаться

Время на прочтение4 мин
Количество просмотров10K
Недавно мы опубликовали статью, написанную по результатам посещения конференции DEVIntersection. Предлагаем вашему вниманию ещё одну полезную «выжимку», посвящённую Entity Framework (EF).
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии0

ASP.NET 5 Identity 3 и новый инструментарий аутентификации/авторизации

Время на прочтение9 мин
Количество просмотров21K
Жизнь в Лас-Вегасе не ограничивается азартными играми. Несмотря на славу игорной столицы, здесь проходят и мероприятия совсем из других сфер жизни. В частности, ежегодная конференция DEVIntersection, которую в этом году посетила команда наших разработчиков. И здесь мы хотим рассказать обо всём самом важном и интересном, что они узнали на конференции.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

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

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


В течение довольно продолжительного времени о нём не было никаких новостей, но, после долгого ожидания, PHP 7 наконец-то вышел 3 декабря 2015 года. Мы решили протестировать самые популярные CMS, основанные на PHP, чтобы проверить как они работают с PHP 7.
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии29

Security и микросервисы

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


В сентябре этого года группа наших разработчиков посетила Java-конференцию SpringOne2GX, проходившую в Вашингтоне. Это одна из крупнейших подобных конференций, и мы не могли пройти мимо. Предлагаем вашему вниманию рассказ о том, что полезного и интересного мы вынесли для себя по результатам этой конференции.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии0

Улучшение сетевой безопасности с помощью Content Security Policy

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


Content Security Policy (CSP, политика защиты контента) — это механизм обеспечения безопасности, с помощью которого можно защищаться от атак с внедрением контента, например, межсайтового скриптинга (XSS, cross site scripting). CSP описывает безопасные источники загрузки ресурсов, устанавливает правила использования встроенных стилей, скриптов, а также динамической оценки JavaScript — например, с помощью eval. Загрузка с ресурсов, не входящих в «белый список», блокируется.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии7

Анонс конференции для разработчиков Sync.NET #1

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


Интересуешься новинками разработки приложений на платформе .NET и мечтаешь попасть на масштабную конференцию DEVintersection в Лас-Вегасе? Теперь, благодаря техническому десанту NIX Solutions, ты узнаешь последние новости DEVintersection здесь, в Харькове, на первой конференции Sync.NET от NIX Solutions!

В пятницу, 27 ноября, эксперты NIX Solutions собирают теплую компанию .NET-разработчиков, чтобы поделиться своим опытом и новыми знаниями, привезенными с конференции DEVintersection 2015. На Sync.NET #1 ты получишь огромную порцию полезной информации и познакомишься с новой площадкой для общения .NET-разработчиков Харькова. Хочешь всегда держать руку на пульсе .NET-технологий? Тогда добро пожаловать на первую конференцию Sync.NET!
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

По горячим следам DroidCon Moscow 2015

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


С 25 по 27 сентября в Москве проходил DroidCon, крупнейшая евразийская конференция для Android-разработчиков. Гости и выступающие собрались в офисе Mail.ru, занимающем одну из 27-этажных башен бизнес-центра. Сама конференция шла три дня, и программа выступлений каждого дня была рассчитана на разную целевую аудиторию.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии4

Многопоточность в Unity средствами реактивных расширений

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


В данной статье будут рассмотрены основные проблемы, возникающие при разработке многопоточных мобильных игр средствами Unity, а также способы их решения с помощью UniRx (реактивные расширения для Unity).

Статья состоит из двух частей. Первая посвящена многопоточности для «самых маленьких», в ней доступным языком рассказывается о потоках и способах их создания, о синхронизации потоков. Вторая часть посвящена реактивным расширениям, их устройству, принципу работы и способам применения.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии7

Почему минималистский дизайн всё ещё правит вебом

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


Дизайн, как и мода, подвержен регулярным переменам. Но всё же есть направления, которые никогда не теряют свою популярность. Одним из них является минимализм. В последние годы бурно развивались HTML 5, CSS 3 и ряд других технологий, позволяющие сегодня создавать очень сложные веб-страницы. Тем не менее, минимализм в дизайне всё ещё очень востребован.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии24

Небезопасные разрешения в Android-приложениях

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


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

Как известно, безопасность обеспечивается системой разрешений доступа на каждом конкретном Android-устройстве. Эта система призвана защищать важные данные и предотвращать несанкционированный доступ к информации или каналам связи.

По умолчанию ни у одного Android-приложения нет разрешения на проведение операций, которые могут повлиять на ОС, личные данные или другие приложения. Однако без подобного разрешения любое приложение станет бесполезным.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии6

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

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


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

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

Главный урок, который я вынес: не запрашивайте у пользователей доступ до тех пор, пока данные вам действительно не понадобится. И предельно ясно дайте им понять, что они получат взамен.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии4