Привет Хабр! Давно не писал. Да это и понятно. Защита диссертации, получение PhD, а сейчас ещё и активный поиск работы — всё это занимает очень много драгоценного времени. Но разговор сегодня пойдёт не о том. Хотелось бы поделиться с Вами, уважаемые хабралюди, ресурсами и описанием процесса подготовки к телефонному техническому интервью с Гуглом, первый технический этап которого я уже прошёл, и теперь готовлюсь ко второму, который будет в пятницу.
User
Step By Step: Оформление МПО (посылки) в ФТС (таможне)
4 min
45K0. Покупка
Покупаете товар в онлайн-магазине с доставкой по почте. Приходите на почту для получения посылки и… если получаете, то дальше можно не читать.
Если же вместо вручения вам посылки сотрудник Почты России радостно сообщает, что она задержана таможней.
Работаем с EMS по нарушению сроков доставки посылок — инструкция
4 min
212KНедавний пост в «Я негодую» о работе EMS в нашей стране и полном пофигизме почтовых работников выявил потребность в инструкции о том, что можно сделать, чтобы когда-нибудь проблемы с посылками у EMS прекратились.
Сходу расстрою — посылкой управлять никак нельзя. Если она долго не «прилетает» в Россию (т.е. статус Экспорт стоит, а Импорт — нет) — тут вряд ли что-то поможет. Однако страхуемся, делаем по шагам, описанным ниже.
Порадовать тоже могу: процентов 95 посылок все-таки доходят. Объем для сравнений — порядка 10 посылок в месяц из США и Европы.
Обращаю внимание, что многие посылки (процентов 60 всех отправлений) я получаю «от себя», используя сервисе вроде Шипито. В некоторых случаях это означает, что почта не может отказать в претензиях по причине того, что они представляются «не отправителем». Однако во многих случаях рекомендую идти и биться за свою посылку при помощи процессов и документов, представленных ниже.
Сходу расстрою — посылкой управлять никак нельзя. Если она долго не «прилетает» в Россию (т.е. статус Экспорт стоит, а Импорт — нет) — тут вряд ли что-то поможет. Однако страхуемся, делаем по шагам, описанным ниже.
Порадовать тоже могу: процентов 95 посылок все-таки доходят. Объем для сравнений — порядка 10 посылок в месяц из США и Европы.
Обращаю внимание, что многие посылки (процентов 60 всех отправлений) я получаю «от себя», используя сервисе вроде Шипито. В некоторых случаях это означает, что почта не может отказать в претензиях по причине того, что они представляются «не отправителем». Однако во многих случаях рекомендую идти и биться за свою посылку при помощи процессов и документов, представленных ниже.
Постраничная верстка rel=«next|prev»
3 min
29K
Translation
Наряду с использование атрибута rel=«canonical» для указания поисковому боту на дублирование контента, теперь возможно использовать для HTML ссылок значение rel=“next” и rel=“prev” для обозначения положения текущей страницы в отношении соседних в рамках навигационного блока. В рамках веба встречаются различные варианты использования постраничной навигации — статья, разделенная на несколько страниц, либо категория товаров распределенных по нескольким страницам, либо ветка форума, разделенная на последовательность URL-ов. Теперь, включив rel=“next” и rel=“prev” в верстку страниц, мы можем указать Google:
- Создать консолидированный индекс страниц, чтобы ссылки не рассеивались между отдельными страницами page-1.html, page-2.html, и так далее
- При поиске направить пользователя на наиболее релевантную страницу среди всех остальных, например в начало статьи, разбитой на несколько страниц
Обзор зарядного устройства TechnoLine BC-700, или мой опыт восстановления Ni-MH аккумуляторов
6 min
313KТак случилось, что после двух лет активного увлечения фотографией я немного подзабил на всё это дело. И, вот, спустя год, недельки 3 назад, меня «пробило» на фото. Достал фотоаппарат, аккумуляторы, побежал на радостях фотографировать. Сделал 2 фотки, получил сообщение: «Замените аккумуляторы». «С кем не бывает, захватил случайно разряженный комплект», подумал я. Поставил другой комплект — одна-две фотки и фотоаппарат просит новые батарейки. Так со всеми моими четырьмя парами аккумуляторов. Не въехав в ситуацию, пошел, воткнул их в зарядку, пока читал на ночь хабр, заметил, что от момента установки на зарядку не прошло и пяти минут, а светодиод зарядного устройства уже оповещает о полной зарядке. С этого момента и началась история. Добро пожаловать под кат!
Все ходы записаны
20 min
51K Я считаю, что одним из главных устройств, которое должно быть в любом автомобиле, является видеорегистратор. Что это такое и для чего он нужен? По большому счету, это небольшая штука, основная задача которой – записывать всё то, что видит водитель в лобовое стекло своего автомобиля. За этот «бесполезный» кусок китайской пластмассы иной раз хотят очень много денег, поэтому многие считают его покупку нецелесообразной, предпочитая купить какой-нибудь сабвуфер. Однако в жизни любого водителя может случиться (тьфу-тьфу-тьфу) такой момент, когда подобное устройство может оказаться единственным спасением – пройдет всего какой-то миг, а видеорегистратор, в отличие от того же сабвуфера, успеет многократно окупиться. От приключений на дороге никто не застрахован, просто одни вздохнут с облегчением, а к другим моментально придет понимание, что регистратор все-таки нужен. Был.
Сегодня под катом – подробный обзор интересной новинки, некоторые рассуждения и немного советов. Ну так, чтобы знать, на что обращать внимание при выборе и чтобы окончательно понять, нужное это приобретение или нет.
Сегодня под катом – подробный обзор интересной новинки, некоторые рассуждения и немного советов. Ну так, чтобы знать, на что обращать внимание при выборе и чтобы окончательно понять, нужное это приобретение или нет.
Рынок телекоммуникаций в России — что, где, как, почем
7 min
34KТак сложилось, что я давно на рынке сверх-высоко-нагруженных-проектов и связи.
Делал тех. часть (NDA уже снято, да?) begun, mamba, badoo, innova, многих других.
Сейчас — badoo и DI — любимые компании. Хотя — badoo это старая но нерушимая любовь, DI — это нечто для exUSSR — never seen before.
Badoo — мы наконец взорвали рынок Европы, США и Латинской Америки (>100 миллионов пользователей — мне правда очень радостно быть частью процесса).
DI — мы скоро сокрушительно взорвем рынок СНГ, но должны четко представлять куда и на каких условиях мы будем отдавать наш трафик.
Речь сейчас об одной из насущных проблем — связь.
На самом деле — это набор неких субьективных тезисов, которые возможно кому-то помогут, а кого-то возмутят…
Все ниже написанное — глубокое IMHO.
Рынок связи в России — это то что было на западе около 10-15 лет назад — пора диких правил, конкурентной борьбы и мутной воды в которой ловится рыбка.
Делал тех. часть (NDA уже снято, да?) begun, mamba, badoo, innova, многих других.
Сейчас — badoo и DI — любимые компании. Хотя — badoo это старая но нерушимая любовь, DI — это нечто для exUSSR — never seen before.
Badoo — мы наконец взорвали рынок Европы, США и Латинской Америки (>100 миллионов пользователей — мне правда очень радостно быть частью процесса).
DI — мы скоро сокрушительно взорвем рынок СНГ, но должны четко представлять куда и на каких условиях мы будем отдавать наш трафик.
Речь сейчас об одной из насущных проблем — связь.
На самом деле — это набор неких субьективных тезисов, которые возможно кому-то помогут, а кого-то возмутят…
Все ниже написанное — глубокое IMHO.
Рынок связи в России — это то что было на западе около 10-15 лет назад — пора диких правил, конкурентной борьбы и мутной воды в которой ловится рыбка.
Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность
6 min
405KВведение
Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).
В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.
Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Ускорение загрузки Windows for fun and profit
4 min
802K Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…
Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Литература на зиму — новый Windows Phone Training Kit
1 min
1.7KДлинные новогодние выходные – хорошая возможность засесть за изучение технологий!
Тем более, что недавно обновился Windows Phone Training Kit – полный учебный курс по созданию приложений и игр для Windows Phone.
Теперь курс полностью доступен в офлайне в двух вариантах – базовом (basic) и расширенном (advanced).
Темы базового курса:
Тем более, что недавно обновился Windows Phone Training Kit – полный учебный курс по созданию приложений и игр для Windows Phone.
Теперь курс полностью доступен в офлайне в двух вариантах – базовом (basic) и расширенном (advanced).
Темы базового курса:
Второе дыхание бюджетного Android-смартфона
4 min
62KОбладатели неновых смартфонов со скромным объемом оперативной памяти (160 в моем случае) очень скоро начинают ощущать тормоза при работе. Поставил буквально несколько программ, а переключение между ними уже сопровождается ощутимыми задержками, и вызов Quick Settings становится уже совсем не «quick».
После ребута всё летает, а уже после 15 минут работы, вроде набор активных программ тот же, а ощущение такое, будто железка умирает:
— замедленная реакция на команды;
— не плавный скроллинг;
— долгий запуск даже маленьких приложений;
— длинная пауза после подключение к интернету до его появления;
— а в самые нагруженные моменты, когда нужна наибольшая продуктивность и быстрое переключение между задачами, смартфон просто перестает реагировать на Вас, уходит в себя и делает вид, будто он очень серьезно думает о чём-то своём, личном.
Под катом небольшой личный опыт, как с помощью прав рута и двух небольших программ можно вдохнуть в свой смартфон новую жизнь.
После ребута всё летает, а уже после 15 минут работы, вроде набор активных программ тот же, а ощущение такое, будто железка умирает:
— замедленная реакция на команды;
— не плавный скроллинг;
— долгий запуск даже маленьких приложений;
— длинная пауза после подключение к интернету до его появления;
— а в самые нагруженные моменты, когда нужна наибольшая продуктивность и быстрое переключение между задачами, смартфон просто перестает реагировать на Вас, уходит в себя и делает вид, будто он очень серьезно думает о чём-то своём, личном.
Под катом небольшой личный опыт, как с помощью прав рута и двух небольших программ можно вдохнуть в свой смартфон новую жизнь.
Выход за границы контейнера Modern-приложений Windows 8
7 min
27K
Tutorial
Ещё в операционной системе Windows Vista компания Microsoft добавила средство создания «песочниц» — так называемые Integrity Levels:
Untrusted < Low < Medium < High < System.
Всё в операционной системе (файлы, ветки реестра, объекты синхронизации, пайпы, процессы, потоки) имеет свой Integrity Level. Процесс, имеющий, к примеру Low Integrity Level не может открыть файл с диска, имеющий Medium Integrity Level (уровень по умолчанию).
Именно на этом механизме работают UAC и «Run as administrator», повышая Integrity Level запускаемого процесса. Именно на этой технологии работает песочница в Google Chrome: все процессы вкладок имеют самый низкий Integrity Level — Untrusted, что делает невозможным взаимодействие процесса вообще ни с какими файлами, процессами, ветками реестра и т.д.
Этот одна из сильных сторон безопасности Хрома — ведь даже найдя в нём какой-нибудь stack overflow вы упрётесь в систему безопасности ОС, которая не даст выйти за границы процесса. Кстати, сама Microsoft такой механизм организации песочниц для браузера применила лишь 4 года спустя в Win8.1 + IE 11 (было в выключенном состоянии в Win8 + IE 10 — но кто же пойдёт это искать и включать, так что не считается).
С выходом Windows 8 компании Microsoft понадобилось сделать механизм изоляции Modern-приложений, аналогичный применяемым в других мобильных ОС. Нужно было дать понять как пользователю, так и разработчику, что программа из магазина никак не достанет приватные данные юзера без его согласия, никак не сломает его систему и не нарушит работу других приложений даже при собственном крахе. Для реализации этой идеи был снова использован механизм Integrity Levels. Microsoft придумала такую штуку как «AppContainer». Читая доки в Интернете и даже глядя на описание процессов в Process Explorer, можно подумать, что AppContainer — это ещё один Integrity Level. Правда, непонятно где он — между Low и Medium? Между Untrusted и Low? Что тут можно сказать: и доки в Интернете и утилита Process Explorer — врут. Я себе не представляю как это маркетологи должны были задурить голову программистами, чтобы поля данных из официальных структур отображались намеренно неверно, но так оно и есть.
Правильное положение дел показывает сторонняя утилита ProcessHacker. Как мы видим из неё, AppContainer — это не новый Integrity Level. Это всего-лишь специальная метка, которая добавляется к работающему в общем-то под Low Integrity Level процессу. При этом эта метка уникальна для каждого приложения и используется как дополнительный барьер, ограничивая доступ не только к приложениям с более высокими Integrity Levels, но даже между процессами с Low Integrity Levels, но разными AppContainer-метками.
До этого момента всё было ещё более или менее логично. А вот отсюда начинается мракобесие.
Untrusted < Low < Medium < High < System.
Всё в операционной системе (файлы, ветки реестра, объекты синхронизации, пайпы, процессы, потоки) имеет свой Integrity Level. Процесс, имеющий, к примеру Low Integrity Level не может открыть файл с диска, имеющий Medium Integrity Level (уровень по умолчанию).
Именно на этом механизме работают UAC и «Run as administrator», повышая Integrity Level запускаемого процесса. Именно на этой технологии работает песочница в Google Chrome: все процессы вкладок имеют самый низкий Integrity Level — Untrusted, что делает невозможным взаимодействие процесса вообще ни с какими файлами, процессами, ветками реестра и т.д.
Этот одна из сильных сторон безопасности Хрома — ведь даже найдя в нём какой-нибудь stack overflow вы упрётесь в систему безопасности ОС, которая не даст выйти за границы процесса. Кстати, сама Microsoft такой механизм организации песочниц для браузера применила лишь 4 года спустя в Win8.1 + IE 11 (было в выключенном состоянии в Win8 + IE 10 — но кто же пойдёт это искать и включать, так что не считается).
С выходом Windows 8 компании Microsoft понадобилось сделать механизм изоляции Modern-приложений, аналогичный применяемым в других мобильных ОС. Нужно было дать понять как пользователю, так и разработчику, что программа из магазина никак не достанет приватные данные юзера без его согласия, никак не сломает его систему и не нарушит работу других приложений даже при собственном крахе. Для реализации этой идеи был снова использован механизм Integrity Levels. Microsoft придумала такую штуку как «AppContainer». Читая доки в Интернете и даже глядя на описание процессов в Process Explorer, можно подумать, что AppContainer — это ещё один Integrity Level. Правда, непонятно где он — между Low и Medium? Между Untrusted и Low? Что тут можно сказать: и доки в Интернете и утилита Process Explorer — врут. Я себе не представляю как это маркетологи должны были задурить голову программистами, чтобы поля данных из официальных структур отображались намеренно неверно, но так оно и есть.
Правильное положение дел показывает сторонняя утилита ProcessHacker. Как мы видим из неё, AppContainer — это не новый Integrity Level. Это всего-лишь специальная метка, которая добавляется к работающему в общем-то под Low Integrity Level процессу. При этом эта метка уникальна для каждого приложения и используется как дополнительный барьер, ограничивая доступ не только к приложениям с более высокими Integrity Levels, но даже между процессами с Low Integrity Levels, но разными AppContainer-метками.
До этого момента всё было ещё более или менее логично. А вот отсюда начинается мракобесие.
Как мы приложение с Silverlight на Windows 8 портировали
6 min
7.4K
Translation
Недавно мы портировали на Windows 8 относительно объемное бизнес приложение — редактор диаграмм, флоу чартов и другой деловой графики. Изначально этот редактор был написан под платформу Silverlight, но мы его переписали под Windows Runtime и успешно разместились с ним в Windows 8 Store. К сожалению, стандартных контролов нам очень не хватало, поэтому попутно пришлось ещё написать свою библиотеку контролов. И теперь мы готовы поделиться опытом. В этой статье собран ряд нюансов разработки приложений под Windows 8 — от проектирования интерфейса пользователя до технических деталей по работе с DirectX.
Float'омания: разъяснение как работает css свойство float
2 min
149KПосле того как меня шестьдесят восьмой раз спросили почему блок с float отображается неправильно, я решил написать эту заметку, которая объяснила бы типичные ситуации, с которыми сталкивается начинающий верстальщик, а так же для того, чтобы в следующий раз просто дать ссылку на эту статью.
Как работает yield
6 min
658K
Translation
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.
Вот исходный вопрос:
Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?
Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild
Вызывается он так:
result, candidates = list(), [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance >= min_dist: result.extend(node._values) candidates.extend(node._get_child_candidates(distance, min_dist, max_dist)) return result
Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?
** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/
Использование Dummynet для эмуляции узкого канала под Windows
1 min
5.2KИногда нужно протестировать работу клиентского приложения в сетевых условиях, приближенных к боевым. Что при разработке, что при выборе софта. Как правило, сервер рядом, а нужно оттестировать и на таком канале, и на таком. Как ни странно, удобного средства управления трафиком (traffic shaping) под Windows мне долго не удавалось найти. Из поисков запомнилось: кто-то советовал для тестовых целей купить модем. Можно поставить роутером машину на Linux и на ней рулить трафиком, но мне такой подход кажется слегка чрезмерным.
Оказывается, не меньше года в проекте Dummynet есть бинарники для Windows, которые позволяют легко и непринужденно управлять, как минимум, полосой канала (bandwidth) и задержкой (latency).
Оказывается, не меньше года в проекте Dummynet есть бинарники для Windows, которые позволяют легко и непринужденно управлять, как минимум, полосой канала (bandwidth) и задержкой (latency).
Обзор бесплатных инструментов для аудита web-ресурсов и не только
4 min
39KВопрос безопасности всегда будет актуальным, особенно в Сети. По этому, чтобы в один
Под катом — краткий обзор и типовые примеры использования бесплатных утилит, которые помогут (а точнее уже во всю помогают)
У статьи довольно низкий порог вхождения для понимания и использования, по этому, надеюсь, придется по душе многим. Раскрывается лишь базовый функционал программ.
Уязвимость связки PHP+nginx с кривым конфигом
1 min
60KSummary
Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass
Background
Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
Prolog — удивительный язык программирования
10 min
205K — Чем же он удивительный? Я знаю пару десятков языков и для меня не проблема изучить еще один новый, я просто уже не вижу необходимости.
Пролог — уникален. Это единственный язык представляющий парадигму декларативного программирования; это язык, который имеет сотни различных имплементаций, но они все равно называются Prolog, добавляя лишь префиксы и суффиксы к названию; это живой язык в котором не происходит никаких существенных изменений более 20 лет; это, наверное, единственный настолько популярный язык программирования, который не имеет применения в реальном программировании. Почему же Prolog?
Пролог — уникален по своей природе, он появился благодаря счастливому совпадению (таинственному устройству мира). Когда-то в 60-х годах очень бурно развивалась теория автоматического доказательства теорем и Робинсоном был предложен алгоритм резолюций, который позволял доказать любую верную теорему (вывести из аксиом) за конечное время (за какое не известно). Как оказалось позже, это наилучшее решение общей задачи, невозможно доказать теорему за ограниченное число операций. Простыми словами, алгоритм представляет собой обход (в общем случае бесконечного) графа в ширину, естественно, что предсказуемость работы алгоритма практически равно 0, соответственно для Языка Программирования — это абсолютно не подходит. И в этот момент Кальмэроу нашел блестящее сужение задачи, благодаря которому доказательство некоторых теорем выглядело как процедурное исполнение программы. Стоит отметить, что класс доказуемых теорем достаточно широк и очень хорошо применим для класса программируемых задач. Вот так в 1972 появился Prolog.
В этой статье я попытаюсь рассказать о Prolog как инструменте решения общих логических задач. Этот топик будет интересен тем, кто уже владеет синтаксисом Prolog и хочет понять его изнутри, а также тем, кто абсолютно не владеет синтаксисом языка, но хочет понять его «изюминку» не тратя лишнее время на изучение синтаксических конструкций.
Пролог — уникален. Это единственный язык представляющий парадигму декларативного программирования; это язык, который имеет сотни различных имплементаций, но они все равно называются Prolog, добавляя лишь префиксы и суффиксы к названию; это живой язык в котором не происходит никаких существенных изменений более 20 лет; это, наверное, единственный настолько популярный язык программирования, который не имеет применения в реальном программировании. Почему же Prolog?
Пролог — уникален по своей природе, он появился благодаря счастливому совпадению (
В этой статье я попытаюсь рассказать о Prolog как инструменте решения общих логических задач. Этот топик будет интересен тем, кто уже владеет синтаксисом Prolog и хочет понять его изнутри, а также тем, кто абсолютно не владеет синтаксисом языка, но хочет понять его «изюминку» не тратя лишнее время на изучение синтаксических конструкций.
Прозрачное кэширование в nginx для всех и каждого
2 min
114KПредставим, что у нас есть сайт, на который регулярно дают ссылки с хабра.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?
С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.
Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно защитить от резких всплесков посещаемости с помощью nginx с минимальными затратами сил и времени.
Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?
С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.
Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно защитить от резких всплесков посещаемости с помощью nginx с минимальными затратами сил и времени.
Information
- Rating
- Does not participate
- Registered
- Activity