Pull to refresh
0
0
Михаил Буйлов@mipxtx

User

Send message
Вот вам еще немножко статических пхп ужасов:
class A {
    static $i;
    public static function i(){
        return self::$i? self::$i: self::$i = new static;
    }
    function say(){ echo get_class($this) . "\n"; }
}

class B extends A{}
class C extends A{}

B::i()->say();
C::i()->say();

выдаст
B
B

но
class A {
    public static function i(){
        static $i;
        return $i? $i: $i = new static;
    }
    function say(){ echo get_class($this) . "\n"; }
}

class B extends A{}
class C extends A{}

B::i()->say();
C::i()->say();

выдаст
B
C


Кто расскажет почему?
Создается впечатление, что статические методы, вместо наследования, тупо копируются.
если я купил легально легальный диск в соотв. регионе, то какая разница, каким плеером я его смотрю?

На сколько я понял — незаконно воспроизведение лицензионных дисков на несертифицированных проигровтелях, которые не внесли отчислений в DVD CCA.
Т.е. мало купить лицензионный диск, надо еще иметь лицензионный плеер.
Не во всех, например:
php -r 'var_dump(false || "Hello");' bool(true)
На мой взгляд — это крайне неявное поведение. А неявное поведение — прямая дорога к ошибкам. Чем меньше неявного поведения, тем сложнее ошибиться. Статья то как раз и про это.
а вместо странной булевой операции
x = yy || zz
я бы использовал симантически более правильный и такой же компактный тернарный оператор:
x = (yy?:zz)
в Perl (как и во многих других языках) X && Y, в случае если X — false, возвратит не просто false (не выполняя Y), а возвратит сам X

Может быть я что-то не понимаю, но почему в результате булевой операции возвращается небулево значение? Вы не могли бы объяснить, зачем так сделано? Я еще понимаю такое поведение в строготипизируемых языках, но тут то такие фокусы не должны срабатывать.
в данном конкретном случае компиляция пхп не упадет. пхп и не такое скомпилирует
Подобные проблемы обычно решаются интеграционным тестированием. Добавил фичу со старыми методами — тесты развалились — надо идти править.
Автоматическая замена в моем понимании скорее зло — вместе с переименованием методов изменяется и логика, и код, расчитанный на старую логику, разломается, даже если сделает новые вызовы.
<сарказм>
Жду, когда уж возьмутся за мерзкий автосалон bently, который занимается дискриминацией меня по финансовому признаку
</сарказм>
А мне нравился бар в хроме. Маленькая кнопочка, в которой есть пробки и погода. И я даже обрадовался, когда увидел, что теперь будет две кнопочки вместо одной. Но почему этого расширения нет в маркете хрома? И чем занимается инсталлятор, который мне предлагают скачать? У меня на маке даже солидные программы себе такого не позволяют. Почему для установки хрома админские права не нужны (надо просто перетащить иконку в программы), а для установки расширения к нему нужны (нужно вводить пароль)? Выглядит как попытка встроить мне в систему троян. Нет спасибо.
Лично я был сильно удивлен, что Apple lightning коннектор выглядит не так. А Surface радует все сильнее.
Это не решение проблемы. Потому что по новым законам — эти сайты тоже можно закрыть.
А чем отличается KILL SOFT от просто_подождать, пока не закончится? Как он определяет что запросы можно или нельзя убивать?
Если вы будите злоупотреблять убийством запросов — убьете таблицы. Апдейты хоть и происходят в транзакциях, но были случаи, когда таблицы ломались.
Вообще мне кажется, что автоматизация убийства запросов — не самый верный путь развития любого сервиса. И надо искать ошибки в сервесе, а не купировать их подобным варварским способом
Ок, согласен. Но суть то от этого не меняется. Обществу(налогоплатильщикам) не выгодны самоубийства.
Вы платите, но не факт, что государство не платит. Другое дело, что деньги разворовывают по дороге, что не мешает государству заявлять свои права.
К тому же меня бесплатно учили, поэтому лично мне нельзя самоубиваться)
С точки зрения государства — он вообще скотина редкая.
А подвижки с возвратом денег за образование в таких случаях уже набирают обороты. Мне кажется я слышал про подобные законопроекты.
Наверно потому что государство вкладывало в человека деньги, учила в школе и институте (выдавало на обучение деньги). И если этот человек совершит самоубийство, то деньги не вернутся в виде налогов.
Я думаю, не нормальная. Они же там не с логарифмичесими линейками сидят? Надо строить опытные образцы в диких колличествахю. Чтоб получить искомое. потом 1000 человеко-часов — это работа 100 человек втечение 10 часов. Я бы оценил работу над таким прототипом как минимум в 100тыс. человеко-часов
Конечно же я не сомневаюсь в том, что основные урлы уже вдоль и поперек перелопачены на предмет уязвимостей.
Я считаю, что выплевывать наружу трейсы — это нарушение безопасности.
Трейсы в паблик — это раскрывать часть архитектуры и давать потенциальным взломщикам пищу для размышлений. Лучше не провоцировать.
А зачем они трейсы наружу выставляют? Слава богу в нем паролей нет
это не просто моник, а почти док станция. у меня туда воткнута клавиатура, ethernet, внешняя звуковуха и usb шнурок для телефона. Как маковод — очень советую. Прихожу домой — втыкаю кабель от монитора и питание — все поднимается

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity