• Как правильно соединить два массива?

    array_merge_recursive()

    $a = [
    	'address' => [
    		'city' => 'Moscow'
    	]
    ];
     
    $b = [
    	'address' => [
    		'country' => 'Russia'
    	]
    ];
     
    $c = array_merge_recursive($a, $b);
    var_dump($c);
    Ответ написан
    1 комментарий
  • Где может понадобиться трейт в PHP?

    @novrm
    Пример номер один - трейт для внедрение через сеттер и геттер сервис менеджера.
    ... или других сервисов в другие сервисы.

    use Zend\ServiceManager\ServiceLocatorInterface;
    
    /**
     * ServiceManagerAwareTrait trait.
     */
    trait ServiceManagerAwareTrait
    {
        /**
         * $serviceManager instance.
         * @var ServiceLocatorInterface
         */
        protected $serviceManager = null;
    
        /**
         * Set $serviceManager.
         *
         * @param  ServiceLocatorInterface $serviceManager
         * @return self
         */
        public function setServiceManager(ServiceLocatorInterface $serviceManager)
        {
            $this->serviceManager = $serviceManager;
    
            return $this;
        }
    
        /**
         * Retrieve $serviceManager.
         *
         * @return ServiceLocatorInterface $serviceManager
         */
        public function getServiceManager()
        {
            return $this->serviceManager;
        }
    
    }


    Номер два - наследовать вы можете только ОДИН класс, а трейтов - МИЛЛИОН и тележку...
    Вот у вас есть сервис, который вы обязаны унаследовать от некого стандартного класса...
    ... но желаете добавить еще несколько методов...
    Что тогда?
    Стандартный класс - кем то написан и является неизменяемой частью некого модуля - править нельзя.
    Нужно - унаследовать ДВА раза - один раз наследовать расширенный класс, другой раз - непосредственно от расширенного - наследовать рабочий класс...
    ... или использовать трейты - элегантное решение.

    Правда - есть несколько но - говорят, что при внедрении сложного трейта - тяжело писать тесты, ну и старые версии php их не поддерживают...
    А так - очень даже упрощает жизнь.
    Ответ написан
    1 комментарий
  • Почему length === 13?

    Stalker_RED
    @Stalker_RED
    В вашем примере сразу два косяка

    1. там действительно 13 нод (узлов), потому что Node это не только html-элементы, но и текст между ними (переводы строки и пробелы в вашем случае).
    Можно перебирать не childNodes а .children, который возвращает именно html-элементы, а не все узлы. Но это решает не все проблемы, потом что:

    2. Указывая не 0 а i вы удаляете не все узлы, а каждый второй.
    Дело в том, что childNodes и children это live коллекции и они обновляются при каждом изменении в родительском элементе.
    При удалении нулевого элемента первый тут-же становится нулевым.
    Затем вы увеличиваете i до единицы, удаляете первый (он изначально был вторым), а нулевой (который был первым) остался, и снова происходит сдвиг. Иногда, кстати, этот сдвиг не упевает произойти, так что этим способом нельзя пользоваться даже если вам хочется удалить именно каждый второй.

    Можно бы перебирать с конца
    for (let i=elem.children.length-1; i >= 0; i--) elem.childNodes[i].remove()


    Можно удалять без всяких счетчиков
    while (elem.firstChild) elem.removeChild(myNode.lastChild)


    И наконец, можно удалять вообще без перебора! elem.textContent = '' Это не только самый короткий, но и самый быстрый способ, т.к. браузер не будет пытатся несколько раз перерисовать содержимое elem.
    Ответ написан
    Комментировать
  • Какой способ лучше защитит пароль?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первый вариант, разумеется, вообще ни о чём.

    Есть три вектора атаки на пароли: перебор по радужным таблицам, брутфорс и подбор по словарю.
    От первого защищает соль, от второго алгоритм, от третьего сложность пароля.

    У нас здесь речь идет об алгоритме. То есть, о буртфорсе. Что такое брутфорс? Это тупо подстановка случайных сочетаний символов по очереди и проверка, не совпал ли хэш. Чем быстрее вычисляется хэш, тем быстрее раскалывается пароль.
    ПОЭТОМУ, ключевой характеристикой хэша для паролей является сложность его вычисления.
    Твой ша-пицот-двенадцать выплоненный стопицот раз - это для современной техники как воробей чихнул. А для будущей и подавно.
    Поэтому умные люди придумали алгоритмы которые во-первых вычисляют каждый хэш гораздо медленнее, а во вторых адаптируются под растующую скорость процессоров, и говорят тебе когда пора уже усложнять алгоритм. Именно этим и занимаются встроенные функции, и поэтому ты должен использовать именно их.
    Ответ написан
    Комментировать
  • Кто больше зарабатывает: веб-дизайнер или верстальщик?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Их шеф.
    Ответ написан
    Комментировать
  • NGINX + LUA = Benchmark. У кого есть опыт?

    Fernus
    @Fernus Автор вопроса
    Техник - Механик :)
    Удалось увеличить производительность примерно на 5% (слёзы конечно, но может и нереально больше выжать из текущего стека)...

    В nginx.conf добавляем в секцию events:
    accept_mutex off;

    В "хостах":
    aio threads;

    При этом nginx должен быть собран с опцией:
    --with-file-aio

    Подробнее тут:
    https://habr.com/ru/post/260669/

    Но это не во всех случаях будет приемлемо...читаем - гуглим - вникаем...
    Я после каждого изменения конфига прогонял тест несколько раз...

    НО, всё равно, жду людей кто так же экспериментировал - буду благодарен, если ещё чего подскажите...

    UPD:
    По сравнению с предыдущими тестами щас стабильно держит на 100 запросов больше в сумме за 15 сек и на 15-20 за 1 сек...
    Прирост отдачи "трафика" больше на ~1мб...

    UPD2:
    Текстовый файл содержащий "hello" отдаётся со скоростью ~2800 запросов в сек...

    Вообщем, как и написали, дальше дело в сети...для реальных тестов её надо исключать...
    Ответ написан
    Комментировать
  • Почему я не могу кодить временами?

    Скорее это выгорание. Постарайтесь сделать нормальный режим работы и не тратить врямя на ненужные проекты.
    Ответ написан
    3 комментария
  • Почему я не могу кодить временами?

    @d-sem
    Пора идти по врачам. Дальше будет хуже. Я не врач, но из личного опыта и наблюдения за коллегами (к слову о пользы работы в офисе).

    но у меня начинает сразу болеть спина

    невролог. Скорее всего проблемы с позвоночником. Неправильное рабочее место, отсутствие нагрузок, плохое спальное место.

    глаза слезятся

    офтальмолог - в лучшем случае синдром сухого глаза. слезящиеся глаза один из симптомов их пересыхания.

    я не могу сосредоточиться

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

    Иногда это бывает психологически - я оттягиваю написание кода

    психолог/психиатр/психотерапевт. Что у Вас в душе происходит смогут понять только они. А помочь тем более.

    Но когда это проходит я потом 1-2 месяца с азартом прогаю. Перед сном уже знаю что я буду завтра кодить и как. Документацию тоже пишу, статьи, перевожу что-то...


    возможно, неправильная организация рабочего процесса.
    может быть Вы работаете 1-2 месяца по 10 часов без выходных.
    отдых это тоже работа.
    но хорошая тема для разговора с психиатром на тему биполярки

    А вопрос такой: кто сталкивался с подобным? Почему такое происходит? Можно ли уменьшить эти интервалы "бездействия"?


    наладить режим труда и отдыха, проверить здоровье как минимум у спецов выше. Дальше они подскажут.
    возможно стоит поставить вопрос о профессиональном выгорании и решать его со специалистами.
    Ответ написан
    Комментировать
  • Живы ли вэб-компоненты?

    Suntechnic
    @Suntechnic Автор вопроса
    Мой собственный ответ после изучения темы и чтения иностранных коллег будет таким:

    Технология была многообещающей и интересной на старте. Для ее поддержки гугл даже придумал отдельную спецификацию HTML Imports: https://w3c.github.io/webcomponents/spec/imports/i... (можете не ходить, там 404), что позволяло подключать однофайловые компоненты прямо в документ так:
    <link rel="import" href="my-component.html">
    Классно же да?

    Но технология не приобрела популярности, возможно так как была слишком простой и понятной, а именно в это время на пик славы вышел npm, gulp и вот это всё. В моду входила непонятная магия, утрата контроля над кодом и всякие оптимизаторы позволявшие сделать для одного слайдера на главной страницы бандл в полтора, а иногда 2-3 Мб. кода, и всё это без всяких там jQuеry.
    Ребята одумались и убрали спецификацию HTML Imports, предлагая разбивать компоненты на 3 отдельных файла - js, css и html с шаблоном. Причём js надо было подключать на странице, css тоже, а html должен был загружать по задумке создателей уже в само js. Такой подход позволял резко усложнить работу с web-components и сделать код снова неуправляемым, но было поздно - технология уже уступила позиции конкурентам.
    Конечно это был сарказм, если кто-то не понял.

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

    Короче технология по задумке хорошая, но на практике не применимая, поэтому широкого распространения и не получает.
    Ответ написан
    2 комментария
  • Где найти честного программиста на почасовую оплату?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Можно ли найти человека на почасовую оплату на таких условиях? И где можно найти, чтобы работала делалась добросовестно?
    Встречные вопросы:
    1. Можно ли найти работодателя, который платил бы за сделанную работу вовремя и без дополнительных просьб и задач?
    2. Который всегда бы держал договорённости и никогда не изменял бы их в любой удобный момент в выгодную для себя сторону?
    3. Который гарантировал бы исполнение договорённостей сделки со своей стороны максимально эффективно и чётко?

    Почитайте:
    1. https://sitecoder.blogspot.ru/2016/09/comfortable-...
    2. https://sitecoder.blogspot.ru/2015/12/cost-calcula...
    Ответ написан
    8 комментариев
  • Как продвигать своё расширение для Chrome?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    на полезность
    Ответ написан
    Комментировать
  • Как сделать такой бордер?

    @JustFreelance
    front-end developer
    С помощью тени, цвета только нужно поправить на нужные

    Ответ написан
    Комментировать
  • В какой части кода пишите медиа запросы?

    vladchv
    @vladchv
    WordPress Developer
    Пока десктоп версию не утвердят, я адаптив не начинаю... потов в правках слетает все, двойная морока.
    Ответ написан
    Комментировать
  • Error CS1061 и CS0120 unity как исправить ошибку?

    GavriKos
    @GavriKos Куратор тега Unity
    1. Прочитайте текст ошибок. ПОстарайтесь их осознать
    2. Почитайте АПИ юнити
    3. Почитайте учебник по сишарпу - долго и вдумчиво
    4. Погуглите сами коды ошибок - они мало отношения имеют к юнити.
    Ответ написан
  • Почему много людей в IT недовольны своей работы?

    У каждого своя причина. Кто-то выгорел, кто-то просто устал. Со временем понимаешь что зп это не главное, да и зарплата в IT не такая уж и большая. И что ты каждый день сидишь по 14, 16 а иногда по 18 часов в день перед монитором. Никакой физической активности. Решаешь какие-то странные хочухи клиентов. Результат твоей деятельности мало кто увидит, большая часть твоего кода уйдет на помойку. Что каждый день выходят новые языки, фреймворки. Что количество данных, которые нужно пропускать через мозг, растет с каждым днем. А мозги только стареют. Помнишь Ваас рассказывал про безумие? Так вот, это оно. Каждый день ты залипаешь перед монитором, пытаясь решать кем то придуманную проблему. У тебя уже искривление позвоночника, зрение -5, туннельный синдром где-то не за горами. А ничего, кроме как пялиться в монитор, ты не умеешь.
    Ответ написан
    31 комментарий
  • Как верстать под печать?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Ну давай посмотрим на примере тостера.

    Попробуем распечатать страницу с вопросом.
    Для начала вопрос: для чего мы его распечатываем? Очевидно, нам интересен вопрос, и главное его решение. Именно это мы хотим распечатать на бумаге.

    Что же нам предлагают верстальщики из ТМ?
    5f98935dba783645914348.png


    Мы получаем на бумажной версии кнопку главного меню, поле поиска, кнопки добавления вопроса и контекстного меню. Отлично. Я обязательно их понажимаю после распечатки. Ха-ха. Хорошо хоть сайдбар спрятали.

    Смотрим дальше
    5f98942e4692f875969058.png


    Форма комментирования. Ну что же. Наверное я отстал от современных технологий в своей деревне и во всем мире уже давно можно комментировать распечатанные страницы...

    В самом конце аж три листа совершенно бесполезной информации.

    В общем мы видим совершенно не оптимизированную под печать страницу.

    А вот если не забывать про печатные устройства, можно все это лишнее как минимум спрятать.
    Ответ написан
    2 комментария
  • ВЕБ студия с сотрудниками фрилансерами?

    catdesign
    @catdesign
    Веб-разработчик
    1. Фрилансер - это черная дыра. Нет никаких гарантий, что вы с первого раза найдете хорошего специалиста. Вы потратите массу времени походив по рукам как портовая путана, потеряете массу времени и сил. В итоге скорее всего специалиста вы найдете, но какой ценой?

    2. Нет слово бесплатно. Бесплатно будут работать только молодые специалисты, которых вы воспитаете. И то не долго, постепенно их интерес и отеческие симпатии пропадают, люди имеют свойство развиваться.

    3. Дешевые предложения на фрилансе можно сразу отметать, шанс, что эти специалисты чего-то могут резко приближается к нулю. Нормальные же предложения по стоимости приближены к студийным.

    Вывод: Строить свою веб-студию можно только из своих коллег по цеху с которыми вы уже работали. Для этого желательно самому побыть фрилансером или же поработать в студии. Однако помимо кадровой работы у вас должна быть тонна знаний из разряда всего понемногу. Иначе вы останетесь без денег с лапшой на ушах
    Ответ написан
    1 комментарий
  • Возьмут ли работать на должность data science/ML, если есть знания, но нет диплома?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если я свои проекты покажу на собесе, то будет плюсом или так же будут обращать внимание на отсутствие ВО ?


    Есть только один способ выяснить. Сходите и узнаете, это конечно заметно сложнее чем написать вопрос на тостере, но зато даст вам настоящий ответ на этот вопрос, а не чье-то мнение из интернета, которое к вам может не иметь никакого отношения.
    Это не так уж страшно.
    Ответ написан
    Комментировать
  • Опасно ли давать удаленный доступ к ноутбуку?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Внимание! Изменился адрес почты!
    Такие приколюхи обычно кончаются вечным баном на апворке :)
    Ответ написан
    Комментировать