Разница между nginx и apache с примерами

Автор: admin от 28-01-2017, 23:10, посмотрело: 831

Во время собеседований на роль linux/unix администратора во многих IT-компаниях спрашивают, что такое load average, чем nginx отличается от apache httpd и что такое fork. В этой статье я постараюсь объяснить, что рассчитывают услышать в ответ на эти вопросы, и почему.


Здесь важно очень хорошо понимать основы администрирования. В идеальной ситуации при постановке задачи системному администратору выставляют ряд требований. Если же ситуация не идеальная, то, по сути, требование к администратору одно: «Хочу, чтобы всё работало». Иными словами, сервис должен быть доступен 24/7 и, если какое-то решение не удовлетворяет этим требованиям (масштабирование и отказоустойчивость относятся к доступности), то можно сказать, что администратор плохо сделал свою работу. Но если разные решения двух администраторов работают 24/7, как понять, какое из них лучше?


Хороший системный администратор при выборе решения при заданных требованиях ориентируется на два условия: минимальное потребление ресурсов и их сбалансированное распределение.


Вариант, когда одному специалисту нужно 10 серверов для выполнения задания, а второму всего 2, мы рассматривать не будем, что тут лучше – очевидно. Далее под ресурсами я буду понимать ЦПУ (cpu), ОЗУ (ram) и диск (hdd).


Давайте рассмотрим ситуацию: один администратор создал решение, которое требует 10% cpu, 5% ram и 10% hdd от всего вашего оборудования, а второй использовал для этого 1% cpu, 40% ram и 20% hdd. Какое из этих решений лучше? Тут все становится уже не так очевидно. Поэтому хороший администратор всегда должен уметь грамотно подобрать решение, исходя из имеющихся ресурсов.

Категория: Системное администрирование, Веб-разработка

 

Нативный код Android и iOS в Qt на примере status bar

Автор: admin от 28-01-2017, 22:55, посмотрело: 447

Здравствуйте! Уверен, многие слышали о том, что Qt очень хорош для кросплатформенной разработки мобильных приложений. Однако, для решения некоторых задач приходится иметь дело с нативным кодом (Java, Objective-C), к примеру, вызов камеры, галереи, вызов стороннего api.


В этой статье на простом примере задания прозрачности для status bar я покажу, как осуществляется вызов нативного кода Java и Objective-C.


Нативный код Android и iOS в Qt на примере status bar

Категория: Веб-разработка, Android, iOS

 

Подмена провайдером DNS-запросов

Автор: admin от 28-01-2017, 19:55, посмотрело: 819

Предыстория

После принятия всем известных законов в нашем Отечестве, я выхожу в инет через западный VPN-сервер.

Вчера, по причине некоторых проблем с основным провайдером, я временно переключился на провайдера под названием Дом.ру.

Сегодня, я лазил в гугле и искал некоторую информацию по уходу за кактусами. Одна из ссылок привела меня на сайт psy*****s.org. Там, как выяснилось, вовсю торгуют «веществами». И кактусы тоже продают, правда, довольно специфические.

Но, об этом я узнал позже, а сначала, я был шокирован показом мне странички «доступ к данному ресурсу был заблокирован...» с логотипом Дом.РУ.

С тех пор, как купил ВПН, я такие страницы не наблюдал вообще, по понятной причине.

Расследование

Для начала, я решил проверить, а работает ли мой VPN?

Категория: Информационная безопасность

 

Практика метапрограммирования на C++: бинарное дерево поиска на этапе компиляции

Автор: admin от 28-01-2017, 16:55, посмотрело: 474

Практика метапрограммирования на C++: бинарное дерево поиска на этапе компиляцииСоздатели шаблонов в C++ заложили основу целого направления для исследований и разработки: оказалось, что язык шаблонов C++ обладает полнотой по Тьюрингу, то есть метапрограммы (программы, предназначенные для работы на этапе компиляции) C++ в состоянии вычислить всё вычислимое. На практике мощь шаблонов чаще всего применяется при описании обобщенных структур данных и алгоритмов: STL (Standard Template Library) тому живой пример.

Однако, с приходом C++11 с его variadic-шаблонами, библиотекой type_traits, кортежами и constexpr'ами метапрограммирование стало более удобным и наглядным, открыв дорогу к реализации многих идей, которые раньше можно было воплотить только с помощью расширений конкретного компилятора или сложных многоэтажных макросов.

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

Категория: Программирование

 

Немного о Swift runtime или куда пропал NSObject

Автор: admin от 28-01-2017, 16:15, посмотрело: 368

Привет друзья! Я из тех, кому скучно просто дергать за ниточки, торчащие из черной коробки, хочется увидеть все своими глазами, как оно работает под капотом. Мы поговорим с вами про рантайм, да-да рантайм. Для наших опытов рассмотрим старого доброго дедушку Objective C и революционного, но пока еще находящегося в стадии развития, Swift. Нам с вами понадобиться нырнуть практически на самое дно абстракций, которые заботливо придумали программисты Apple. Давайте немного разберемся, зачем вообще понадобилось разрабатывать новый язык. Я слышал много негативных отзывов в самом начале, особенно от уже матерых разработчиков Objective C. Если посмотреть повнимательнее на новый язык Swift, он на мой взгляд значительнее взрослее и серьезнее. Во-первых, он написал на языке С++ в отличии от Си, который лежит в основе Objective C. Я здесь высказываю только свои сугубо личные предубеждения, с которыми можно согласиться, можно и поспорить.

Категория: Веб-разработка, Game Development, iOS

 

iOS: Работа с галереей (Photos framework). Часть 2

Автор: admin от 28-01-2017, 15:05, посмотрело: 359

Привет, Хабр! В этой статье я расскажу про работу с видео, live-фото и отслеживание изменений в галерее с помощью Photos framework. Для лучшего понимания статьи рекомендую ознакомиться с предыдущей статьей.

Категория: Веб-разработка, iOS

 

Правильное обнаружение проблем с помощью Zabbix

Автор: admin от 28-01-2017, 13:25, посмотрело: 721

Правильное обнаружение проблем с помощью Zabbix

Алексей Владышев ( alexvl )


Меня зовут Алексей Владышев, я являюсь создателем Zabbix, и в данный момент я отвечаю за его архитектуру и roadmap.

Это вводная лекция, сначала я расскажу, что такое Zabbix, потом – как работает Zabbix с точки зрения высокоуровневой архитектуры и с точки зрения обнаружения проблем. Мы будем говорить о том, как обнаруживать проблемы применительно к Zabbix, как можно использовать Zabbix, чтобы обнаруживать проблемы.

Категория: Админитстрирование » Системное администрирование

 

Вложенные логические выражения

Автор: admin от 28-01-2017, 13:25, посмотрело: 259

Привет. В этой статье я расскажу, как можно очень сильно заморочиться. Как несколько мыслей могут захватить голову на годы, и даже повлиять на жизнь. Я расскажу, как складывать и умножать числа, как вычислить md5, а может и искать числа из гипотезы Эйлера.

Категория: Программирование, Криптография

 

Security Week 04: пропавший ботнет, уязвимость в Webex, патчи Apple

Автор: admin от 28-01-2017, 13:25, посмотрело: 288

Security Week 04: пропавший ботнет, уязвимость в Webex, патчи AppleВажной технической новостью недели в сфере ИБ стало исследование (новость) специалиста по безопасности в проекте Google Project Zero Тависа Орманди об уязвимости в плагине Cisco Webex для браузера Chrome. Тавис специализируется на неординарных уязвимостях (несколько патчей для продуктов «Лаборатории», кстати, выпущены благодаря ему), но проблема в плагине для популярного сервиса видеоконференций относится к совсем уж нестандартным.

Конференция Webex — это по сути отдельная программа, которая запускается на вашем компьютере, после того как участие было инициировано в браузере. Соответственно, для выполнения нативного кода, плагин Cisco Webex использует интерфейс Native Messaging. Суть бага в том, что если передать плагину URL с определенной «магической строкой», то он запустит любой код, без всяких проверок. Пожалуй, следует назвать это фичей: явно было сделано для упрощения процесса запуска нужного приложения без особых церемоний. В итоге, пользователь может словить троян, посетив подготовленную веб-страницу (любую), и кликнув один раз OK на предложение начать веб-конференцию.

Уязвимость была пофикшена быстро, но, по мнению ряда исследователей (включая самого Тависа), не до конца. Новая версия плагина для Chrome ограничивает возможность запуска кода при наличии чудо-строки, только если URL начинается с https://*.webex.com/. Очевидно, что это значительно ограничивает возможность эксплуатации, но любая XSS уязвимость на webex.com может быть использована в паре с магической строкой для атаки.

Категория: Информационная безопасность, iOS

 

Борьба с читерами в онлайн-играх: 22 «нужно» и «нельзя»

Автор: admin от 28-01-2017, 11:25, посмотрело: 344

Борьба с читерами в онлайн-играх: 22 «нужно» и «нельзя»

Почти невозможно найти успешную многопользовательскую онлайн-игру (кроме тех, в которые играют только друзья разработчика), в которой нет читеров. Другими словами, если в вашей публичной игре нет читеров, она или недостаточно популярна, или распознавание мошенников работает не слишком хорошо. Во всех остальных случаях вам придётся иметь дело с читерством. Изучите список шагов которые НУЖНО и НЕЛЬЗЯ совершать (подробное обсуждение темы читерства приведено в моей трёхтомной книге, см. примечание в конце статьи) при борьбе с мошенничеством в играх.

Категория: Программирование » Веб-разработка

 
Назад Вперед