В основном, они независимые. Причём есть несколько уровней иерархии.
На муниципальном уровне (город и крупный населённый пункт) сосредоточена основная полицейская сила. Она, в основном, занимается бытовыми преступлениями.
Дальше идёт Шериф & Co — полиция округа — они, занимаются вопросами администрирования окружных тюрем, охраной здания суда. Плюс, если в каком-то отдельном муниципальном образовании внутри этого округа нет местной полиции, то они так же выполняют функции муниципальной полиции в таких местах.
Следом идёт полиция штата. Тут я уже затрудняюсь описать, кто за что отвечает.
Потом, на федеральном уровне, у них есть министерство юстиции. В его подчинение, например, входит ФБР.
В общем, в единую структуру у них полиция не входит.
Когда они пришли за коммунистами, я молчал — я не был коммунистом.
Когда они пришли за социал-демократами, я молчал — я не был социал-демократом.
Когда они пришли за профсоюзными активистами, я молчал — я не был членом профсоюза.
Когда они пришли за мной — уже некому было заступиться за меня.
У меня свой вариант есть:
Когда они добавили рекламный блок с картинкой вверху правой колонки, я не блокировал — я не против одной картинки.
Когда они добавили рекламную кнопку на панель инструментов, я не блокировал — я не против неназойливой кнопки.
Когда они добавили раздел «Спецпроекты» в меню «меню», я не блокировал — я туда практически не заглядываю.
Когда они добавили блок «Спецпроекты» в верхнее меню со списком сайтов, я не блокировал — обычные ссылки, пусть даже красного цвета.
Когда они добавили Яндекс.Директ (который параллельно собирает телеметрию для Я.Метрика) и Adriver — уже некому было заступиться за меня, кроме AdBlock.
Я на полном серьёзе отключил бы AdBlock на всех ресурсах ТМ, если бы знал, что Вася Пупкин, который написал статью, будет получать процент от рекламы показанной на странице с его статьёй — всё время, пока его статья опубликована. Я даже смирился бы с тем, что рекламы на трёх ресурсах стало реально дофига. Без блокировщика почти в любом месте страницы в поле зрения мелькает реклама.
А сейчас получается, что пишут контент авторы, а на рекламе зарабатывают владельцы сайта. Это распространённое явление — понятно. Оно не вызывает желание кричать о несправедливости. Но когда редактор ресурса начинает говорить о проблеме блокировщиков и давить на эмоции, появляется закономерное возмущение.
Добавьте в тех статьях, которые написаны редакторами ресурса, какой-нибудь уникальный класс к тегу body. Я по нему сделаю исключение для блокера и буду смотреть рекламу на страницах этих статей. Статьи написаны работниками TM — я смотрю там рекламу и этим помогаю компании развиваться. Но на остальных страницах я её всё так же буду вырезать, потому что другим авторам вы отчисления от заработка ни их статьях не делаете, кроме единоразовой выплаты по ППА, в которую ещё попасть надо.
Возможно, это просто восприятие так устроено. Вы только что купили такой товар, и теперь больше обращаете внимание на рекламу — просто там показано то, что у вас сейчас занимает мысли, и это проходит мимо фильтров авто-необращания-внимания-на рекламу в мозге. Если бы отображалась другая вещь, вы бы так сильно на неё внимания не обращали.
Дополнительно, наверняка, когда вы покупали какой-то товар, вы несколько раз подряд посещали его страницу, либо сниппет с товаром появлялся на экране (я встречался с ситуацией, что по товарам в корзине тоже трек отправляется в какой-нибудь Google Analytics, даже техническую реализацию таких вещей делал, когда занимался e-commerce-разработкой). Соответственно, товар трекается чаще, и, по мнению рекламодателя, вы потенциальный покупатель этого товара в ближайшее время.
Если бы во всём Интернете для каждого сайта использовался один и тот же движок, рекламодателю было бы просто понимать, что после посещения определённых страниц в определённом порядке произошёл факт покупки. Разновидностей магазинов много, и чтобы эффективно анализировать такие вещи, нужно очень сильно вкладываться в алгоритмику или нанимать операторов, которые вручную будут анализировать трафик. Это сократит доходы рекламодателя. Так что проще и прибыльнее просто вытаскивать из контента страницы ключевые слова и показывать рекламу по тем словам, которые чаще встречаются на посещаемых вами страницах.
Тут небольшая неточность. 9000 сотрудников Department of Homeland Security (DHS). Это министерство внутренней безопасности, МВБ. А МВД — это министерсво внутренних дел — Department of the Interior (DOI). Оно занимается земельными вопросами. Я так понимаю, что это единственное МВД в мире, которое не занимается полицейской деятельностью. Если не единственное, то одно из немногих.
Можно и так, хотя тот учёный, который изнасиловал журналиста, стал насильником только после того, как послал журналиста на три буквы. Пока он с ним разговаривал, он не был насильником.
«Да пошла она, эта гравитация, на три буквы! Только впустую 47 лет потратили!» — сказали учёные. К несчастью, рядом были журналисты, которым нужно было хоть что-то написать по теме.
По поводу цен, по моим наблюдениям, Adobe старается не сильно привязываться к скачкам курса в странах, где есть их представительство. В Украине, например, представительство Adobe есть. В ситуации с рублём, они заморозили внутренний курс на, примерно, 30-ти рублях за доллар. Вполне может быть, что при при оплате с территории Украины гривнами, они посчитают курс $1 = 8грн. И, в итоге, вы вместо 20 долларов (для того плана, который вы обводили рамкой) фактически будете платить эквивалент 7-ми долларов, если я правильно понимаю текущий курс гривны.
Хотя, вру. Списывалось с карты в рублях. Это у меня просто банк в отчёте показал сумму в долларах в $52.69. В детялях платежа всё-таки было написано, что снималось рублями.
Обратите внимание на план слева от того, что вы обводили. Это как раз план, ограниченный фотошопом. Это во первых. Во вторых, у меня показывались такие же суммы в долларах, пока я не перешёл к оплате. Теоретически, у меня должно было получиться 120 долларов за год за «План для фотографов». Когда я перешёл к оплате, мне написали, что я должен заплатить 3588 рублей (иенно в рублях уже была написана сумма), и с карты у меня в итоге списалось после покупки $52.69 именно в долларах.
Опять же, про план: вы сами видите на картинке, что есть план конкретно для фотошопа, который стоит в два раза дешевле. Зачем нужно выбирать «План на отдельное приложение», если этим отдельным приложением у вас будет фотошоп? Ладно, если бы вы покупали Premiere или After Effects — для них нет отдельных планов. Но с фотошопом нет смысла переплачивать в два раза.
скрипты стартующие с помощью cron каждую секунду (да, да видел и такое)
У крона минимальный интервал — одна минута, а не одна секунда. Если используются какие-то хаки, вроде запуска 60-ти экземпляров скрипта раз в минуту с инкрементным sleep, то это не значит, что скрипты стартуются с помощью крона каждую секунду.
Приобрести Photoshop можно исключительно по подписке! Стоимость ежемесячного использования редактора составляет 20$, и для разных регионов эта цифра может изменяться.
Я покупал в конце декабря годовую подписку на именно Photoshop. Обошлось в 3588 рублей за весь год. План назывался «План Creative Cloud для фотографов (на один год, с предварительной оплатой, продление вручную)». Там доступен только фотошоп. Если поделить, получается 299 рублей в месяц. В долларах это, по текущему курсу, составляет $3,91. То есть, далеко не 20 долларов в месяц — в 5 раз меньше.
Я думаю, раз авторы статей могут разрешать комментарии от новичков, нужно дать этим же авторам возможность запрещать выбранные комментарии от R&Cов. То есть, если рак публикует плохой комментарий, автор статьи должен иметь возможность этот комментарий скрыть. И если у рака за определённый период накопилось 5 скрытых комментариев от разных авторов, то у него опять появляются ограничения, связанные с премодерацией.
Я уточню на всякий случай про HeavyCar::init(), который выглядит так, будто я пытаюсь вызывать статический метод init, хотя он при этом не статический. В PHP на письме принято методы класса показывать именно таким образом — вне зависимости от того, статичный метод или нет. Просто так принято писать. В официальной документации, например, так и делается. В самом коде, конечно же, я бы использовал коррекный способ вызова в зависимости от статичности метода.
Дублирования кода, можно избежать, вынеся эти методы в класс Car и используя вместо константы protected метод Car::getType, но сейчас я не буду на этом останавливаться для простоты.
Можно и не использовать. Достаточно будет описать эти методы в классе Car таким образом:
class Car extends ActiveRecord
{
const TYPE = 'car';
public function init()
{
$this->type = static::TYPE;
parent::init();
}
public static function find()
{
return new CarQuery(get_called_class(), ['type' => static::TYPE]);
}
public function beforeSave($insert)
{
$this->type = static::TYPE;
return parent::beforeSave($insert);
}
}
Ключевое слово static как раз будет указывать, что речь идёт о том классе, который наследует логику, а не о том классе, в котором эта логика прописана (как происходит при использовании self). Соответственно, если класс HeavyCar расширяет класс Car, то при вызове метода HeavyCar::init() инструкция $this->type = static::TYPE; будет, по сути, исполняться как $this->type = HeavyCar::TYPE;, а при вызове SportCar::init() будет исполняться как $this->type = SportCar::TYPE;. При этом, если в дочернем классе нет константы TYPE, то она будет искаться в родительском классе. Вот пример, как работает static:
class ParentClass
{
const TYPE = 'parent';
public function getType()
{
return static::TYPE;
}
}
class ChildOne extends ParentClass
{
const TYPE = 'child one';
}
class ChildTwo extends ParentClass
{}
$instance = new ParentClass();
echo $instance->getType() . PHP_EOL; // parent
$instance = new ChildOne();
echo $instance->getType() . PHP_EOL; // child one
$instance = new ChildTwo();
echo $instance->getType() . PHP_EOL; // parent
А с самим подходом, когда для работы с одной и той же таблицей используются несколько моделей, я не согласен, потому что появится соблазн ввести в таблице Car поле, хранящее JSON-кодированную (или ещё каким-нибудь способом сериализованную) структуру данных с информацией о прицепах для HeavyCar. В случае с СУБД, которые поддерживают JSON это может быть нормально, но если используется MySQL, как это часто бывает, лучше всё-таки подумать над формализацией данных на уровне БД, а не на уровне кода.
Возвратная частица «se» лишает слово «coucher» неприличности. Возвратная форма (se coucher) означает «ложиться спать» («me» — это «se» от первого лица в единственном числе). Без возвратной частицы появляется значение «переспать». «Ложить» — это не возвратная форма, в отличии от возвратной формы, — «ложиться», — которое из русского языка не вытеснялось.
Я, во всяком случае, думаю, что это самая логичная причина, по которой «ложить» вытеснилось из языка — вопрос неприличности при прямом переводе, когда французский язык был очень популярен. Если бы была какая-то научная основа для вытеснения, то формообразование тоже было бы затронуто. Например, было бы корректным слово «покласть». Но вытеснилось только слово «ложить», а его формы остались: ложиться, положить, переложить и т.п.
Слово «клали» искажает смысл процесса. В русском языке слово «ложить» начало вытесняться из речи культурных людей в 18-м–19-м веках из-за того, что в тот момент был популярен французский язык, а дословный перевод «ложить» (coucher) на французский несёт неприличный посыл. Безо всяких суффиксов-приставок оно не используется как раз из-за этого.
Ложить какой-нибудь сервис — это как раз неприличное явление, потому что злоумышленник в процессе имеет этот сервис в какую-нибудь дырку, так что слово «класть» здесь меньше подходит.
Пихать везде слово «класть» — это не круто. Это примерно то же самое, когда человек начинает слово «крайний» использовать вообще во всех без исключения ситуациях. Если кто-то умирает, он всё равно говорит: «Крайний раз я видел Васю во-вторник — за день до его смерти». (И следом убеждает, что говорить «последний раз» нельзя из-за смысловой нагрузки этого выражения, хотя сам до конца не понимает эту смысловую нагрузку. Хотя, в данном конкретном случае нужно говорить как раз: «Последний раз я видел Васю во-вторник — за день до его смерти».)
На муниципальном уровне (город и крупный населённый пункт) сосредоточена основная полицейская сила. Она, в основном, занимается бытовыми преступлениями.
Дальше идёт Шериф & Co — полиция округа — они, занимаются вопросами администрирования окружных тюрем, охраной здания суда. Плюс, если в каком-то отдельном муниципальном образовании внутри этого округа нет местной полиции, то они так же выполняют функции муниципальной полиции в таких местах.
Следом идёт полиция штата. Тут я уже затрудняюсь описать, кто за что отвечает.
Потом, на федеральном уровне, у них есть министерство юстиции. В его подчинение, например, входит ФБР.
В общем, в единую структуру у них полиция не входит.
У меня свой вариант есть:
Когда они добавили рекламный блок с картинкой вверху правой колонки, я не блокировал — я не против одной картинки.
Когда они добавили рекламную кнопку на панель инструментов, я не блокировал — я не против неназойливой кнопки.
Когда они добавили раздел «Спецпроекты» в меню «меню», я не блокировал — я туда практически не заглядываю.
Когда они добавили блок «Спецпроекты» в верхнее меню со списком сайтов, я не блокировал — обычные ссылки, пусть даже красного цвета.
Когда они добавили Яндекс.Директ (который параллельно собирает телеметрию для Я.Метрика) и Adriver — уже некому было заступиться за меня, кроме AdBlock.
Я на полном серьёзе отключил бы AdBlock на всех ресурсах ТМ, если бы знал, что Вася Пупкин, который написал статью, будет получать процент от рекламы показанной на странице с его статьёй — всё время, пока его статья опубликована. Я даже смирился бы с тем, что рекламы на трёх ресурсах стало реально дофига. Без блокировщика почти в любом месте страницы в поле зрения мелькает реклама.
А сейчас получается, что пишут контент авторы, а на рекламе зарабатывают владельцы сайта. Это распространённое явление — понятно. Оно не вызывает желание кричать о несправедливости. Но когда редактор ресурса начинает говорить о проблеме блокировщиков и давить на эмоции, появляется закономерное возмущение.
Добавьте в тех статьях, которые написаны редакторами ресурса, какой-нибудь уникальный класс к тегу body. Я по нему сделаю исключение для блокера и буду смотреть рекламу на страницах этих статей. Статьи написаны работниками TM — я смотрю там рекламу и этим помогаю компании развиваться. Но на остальных страницах я её всё так же буду вырезать, потому что другим авторам вы отчисления от заработка ни их статьях не делаете, кроме единоразовой выплаты по ППА, в которую ещё попасть надо.
Дополнительно, наверняка, когда вы покупали какой-то товар, вы несколько раз подряд посещали его страницу, либо сниппет с товаром появлялся на экране (я встречался с ситуацией, что по товарам в корзине тоже трек отправляется в какой-нибудь Google Analytics, даже техническую реализацию таких вещей делал, когда занимался e-commerce-разработкой). Соответственно, товар трекается чаще, и, по мнению рекламодателя, вы потенциальный покупатель этого товара в ближайшее время.
Если бы во всём Интернете для каждого сайта использовался один и тот же движок, рекламодателю было бы просто понимать, что после посещения определённых страниц в определённом порядке произошёл факт покупки. Разновидностей магазинов много, и чтобы эффективно анализировать такие вещи, нужно очень сильно вкладываться в алгоритмику или нанимать операторов, которые вручную будут анализировать трафик. Это сократит доходы рекламодателя. Так что проще и прибыльнее просто вытаскивать из контента страницы ключевые слова и показывать рекламу по тем словам, которые чаще встречаются на посещаемых вами страницах.
Тут небольшая неточность. 9000 сотрудников Department of Homeland Security (DHS). Это министерство внутренней безопасности, МВБ. А МВД — это министерсво внутренних дел — Department of the Interior (DOI). Оно занимается земельными вопросами. Я так понимаю, что это единственное МВД в мире, которое не занимается полицейской деятельностью. Если не единственное, то одно из немногих.
Опять же, про план: вы сами видите на картинке, что есть план конкретно для фотошопа, который стоит в два раза дешевле. Зачем нужно выбирать «План на отдельное приложение», если этим отдельным приложением у вас будет фотошоп? Ладно, если бы вы покупали Premiere или After Effects — для них нет отдельных планов. Но с фотошопом нет смысла переплачивать в два раза.
У крона минимальный интервал — одна минута, а не одна секунда. Если используются какие-то хаки, вроде запуска 60-ти экземпляров скрипта раз в минуту с инкрементным sleep, то это не значит, что скрипты стартуются с помощью крона каждую секунду.
Я покупал в конце декабря годовую подписку на именно Photoshop. Обошлось в 3588 рублей за весь год. План назывался «План Creative Cloud для фотографов (на один год, с предварительной оплатой, продление вручную)». Там доступен только фотошоп. Если поделить, получается 299 рублей в месяц. В долларах это, по текущему курсу, составляет $3,91. То есть, далеко не 20 долларов в месяц — в 5 раз меньше.
HeavyCar::init()
, который выглядит так, будто я пытаюсь вызывать статический метод init, хотя он при этом не статический. В PHP на письме принято методы класса показывать именно таким образом — вне зависимости от того, статичный метод или нет. Просто так принято писать. В официальной документации, например, так и делается. В самом коде, конечно же, я бы использовал коррекный способ вызова в зависимости от статичности метода.Можно и не использовать. Достаточно будет описать эти методы в классе Car таким образом:
Ключевое слово
static
как раз будет указывать, что речь идёт о том классе, который наследует логику, а не о том классе, в котором эта логика прописана (как происходит при использованииself
). Соответственно, если классHeavyCar
расширяет классCar
, то при вызове методаHeavyCar::init()
инструкция$this->type = static::TYPE;
будет, по сути, исполняться как$this->type = HeavyCar::TYPE;
, а при вызовеSportCar::init()
будет исполняться как$this->type = SportCar::TYPE;
. При этом, если в дочернем классе нет константыTYPE
, то она будет искаться в родительском классе. Вот пример, как работаетstatic
:А с самим подходом, когда для работы с одной и той же таблицей используются несколько моделей, я не согласен, потому что появится соблазн ввести в таблице
Car
поле, хранящее JSON-кодированную (или ещё каким-нибудь способом сериализованную) структуру данных с информацией о прицепах дляHeavyCar
. В случае с СУБД, которые поддерживают JSON это может быть нормально, но если используется MySQL, как это часто бывает, лучше всё-таки подумать над формализацией данных на уровне БД, а не на уровне кода.Я, во всяком случае, думаю, что это самая логичная причина, по которой «ложить» вытеснилось из языка — вопрос неприличности при прямом переводе, когда французский язык был очень популярен. Если бы была какая-то научная основа для вытеснения, то формообразование тоже было бы затронуто. Например, было бы корректным слово «покласть». Но вытеснилось только слово «ложить», а его формы остались: ложиться, положить, переложить и т.п.
Ложить какой-нибудь сервис — это как раз неприличное явление, потому что злоумышленник в процессе имеет этот сервис в какую-нибудь дырку, так что слово «класть» здесь меньше подходит.
Пихать везде слово «класть» — это не круто. Это примерно то же самое, когда человек начинает слово «крайний» использовать вообще во всех без исключения ситуациях. Если кто-то умирает, он всё равно говорит: «Крайний раз я видел Васю во-вторник — за день до его смерти». (И следом убеждает, что говорить «последний раз» нельзя из-за смысловой нагрузки этого выражения, хотя сам до конца не понимает эту смысловую нагрузку. Хотя, в данном конкретном случае нужно говорить как раз: «Последний раз я видел Васю во-вторник — за день до его смерти».)