Pull to refresh
88
0

Пользователь

Send message

PHP против Ruby: Давайте жить дружно

Reading time12 min
Views34K


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

Я решил, что было бы куда интереснее провести более честное сравнение, с точки зрения разработчика, которому нравятся оба языка и который имеет приличный опыт работы с ними. Например, с PHP и Ruby. И задача здесь не в том, чтобы выяснить, какой из них «лучше». Я лишь хочу подчеркнуть те свойства, которые мне нравятся в Ruby и его экосистеме.
Читать дальше →
Total votes 35: ↑26 and ↓9+17
Comments85

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

Reading time10 min
Views9.5K


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

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

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

Reading time2 min
Views5.3K


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

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

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

Reading time2 min
Views8.8K


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

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

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

Reading time8 min
Views52K


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

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

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

Читать дальше →
Total votes 40: ↑23 and ↓17+6
Comments12

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

Reading time16 min
Views114K


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

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

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

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

Reading time4 min
Views25K
У перечислений есть множество способов применения в разработке. Например, при создании игр они используются для программирования состояний персонажа или возможных направлений движения:

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

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

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

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

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

Reading time7 min
Views23K


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

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

Reading time5 min
Views9.4K
Люк Плант (Luke Plant) — программист-фрилансер с многолетним стажем, один из ключевых разработчиков Django.

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

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

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

Reading time4 min
Views10K
Недавно мы опубликовали статью, написанную по результатам посещения конференции DEVIntersection. Предлагаем вашему вниманию ещё одну полезную «выжимку», посвящённую Entity Framework (EF).
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments0

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

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

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

Reading time4 min
Views24K


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

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

Reading time4 min
Views15K


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

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

Reading time7 min
Views141K


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

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

Reading time2 min
Views4.1K


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

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

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

Reading time19 min
Views5K


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

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

Reading time10 min
Views50K


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

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

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

Reading time4 min
Views37K


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

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

Reading time6 min
Views70K


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

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

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

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

Reading time6 min
Views9.8K


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

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

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

Information

Rating
Does not participate
Registered
Activity