• Какой уровень MySQL/MariaDB нужно знать среднему php-программисту?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для миддла надо подтянуть только п. 3. У Светы Смирновой есть несколько отличных презентаций по работе с explain, они легко находятся гуглом.

    Еще желательно различать транзакции и блокировки, когда что использовать.

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

    Вообще, по моему опыту, не стоит переоценивать результаты интервью. Когда я 5 лет назад ходил по собеседованиям, то после двух из них, которые я сам посчитал проваленными, мне прислали предложения о работе.
    Ответ написан
    1 комментарий
  • Чем опытнее разработчик, тем меньше соблюдается принцип KISS?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Принцип KISS не означает что надо использовать самые примитивные инструменты.
    Он означает, что не надо переусложнять систему без нужды.
    Если так рассуждать, так и высшее образование не нужно: "Дед отличные бани строил, хотя вовсе был неграмотный. Я и без сопромата небоскреб построю!"
    Если вы пока ещё не понимаете назначение всех этих "лееров, провайдеров и репозиториев", это не значит, что они вообще никому не нужны.

    Для того, чтобы упростить управление системой, её надо усложнить.
    Этот принцип относится к любой области человеческой деятельности, от постройки ракет до управления государствами.
    Чем сложнее система, тем больше накладные расходы на ее управление. Хоумпейдж с котиками можно и нужно делать примитивными средствами. В большом проекте надо сразу закладываться на будущую расширяемость. То есть, заранее делить ответственность между "леерами".

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

    @latush
    смотрите задачи в кроне, похоже на logrotate
    Ответ написан
    Комментировать
  • Когда в БД нужно делать "По умолчанию: Null", а когда "По умолчанию: НЕТ"?

    Stalker_RED
    @Stalker_RED
    Конечно, может оказаться так, что базу проектировали невнимательно, в спешке или еще как-то криво, но чаще оказывается, что этот "беспорядок" для чего-то нужен.

    Представим, что по требованиям бизнес-логики в табличке "user" поле "дата регистрации" обязательно должно быть заполнена. Если ее нет - это ошибка. Ставим not null.

    И "email" обязательный - тоже not null.

    В этой-же таблице поле "phone" необязательное - значит придется разрешить null.
    Ответ написан
    Комментировать
  • Можно ли считать php код, написанный без ошибок E_NOTICE, преимуществом, которое можно указать в резюме? Как, например, валидная верстка?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вы бы пошли к врачу, у которого "преимущество": знаю как поменять лезвие в скальпеле?
    Вот небольшой список требований к коду приемлемого качаства: Попросили проверить код, на что смотреть нужно?
    Ответ написан
    Комментировать
  • Как сделать анимацию трансформирующую один элемент в другой?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Является ли желтая квадратная форма в конце анимации видоизмененной кнопкой или же это совершенно другой элемент разметки?

    По смыслу - это другой элемент. Если мы говорим про более-менее компонентный подход к верстке, то это должно быть очевидно. Кнопка - один компонент. Всплывающее окошко - другой компонент. Набросал небольшую заготовку:


    С такими анимациями можно долго играться, самое главное - проверить в конечном итоге кроссбраузерность. А то в хроме и FF работает, а в каком-нибудь IE всякое может случиться.

    P.S.: Но в целом - я голосую за реализацию таких вещей целиком на JS. Практика показывает, что в проектах с такими анимациями очень быстро собирается большое количество одновременно анимирующихся значений у большого количества элементов, которые нужно синхронизировать между собой. На CSS голова лопнет все это делать. И да, чем больше всего меняется в CSS-анимациях в единицу времени, тем выше шанс найти какой-нибудь редкий баг и долго ломать себе голову в поисках проблемы. Лучше уж взять какую-нибудь библиотеку вроде anime.js или любимый многими GSAP и использовать их.
    Ответ написан
    Комментировать
  • Как правильно изменять json массивы, чтобы не добавлялась индексация?

    Stalker_RED
    @Stalker_RED
    array_values()

    $json = json_encode(array_values($data), JSON_UNESCAPED_UNICODE);
    Ответ написан
    Комментировать
  • Какие температуры чипсета ноутбука приемлемы?

    Jump
    @Jump
    Системный администратор со стажем.
    Контакт чипсета видимо обеспечивался за счет достаточно толстой термопрокладки, я разумеется ее выбросил, надавил термопасты (не целую кучу, о чем потом пожалел)
    У термопасты очень низкая теплопроводность.
    Т.е она очень плохо проводит тепло.
    Все дело в сравнении - теплопроводность термопасты гораздо выше чем у воздуха, но на порядок ниже чем у меди или алюминия.
    Используют термопасту для обеспечения более плотного контакта ее нужно наносить так, чтобы она заполняла неровности, но никак не класть толстый слой термопасты.

    Поэтому для корректного теплоотвода надо обеспечить плотное прилегание радиатора к чипу.
    Верните на место термопрокладку, а на место контакта термопрокладки с радиатором и чипом нанесите тонкий слой термопасты.

    Для сравнения - теплопроводность меди 394 Вт/(м*к)
    Для термопасты это значение в зависимости от качества пасты 1-15 Вт/(м*к)
    Для термопрокладок это значение в зависимости от качества прокладки 5-100 Вт/(м*к)

    Какие температуры чипсета ноутбука приемлемы?
    Сложно сказать, нужно смотреть даташит на конкретный чип.
    Дело в том что температура понятие растяжимое - та температура которую вы можете измерить на поверхности чипа это одно, а та температура которая внутри чипа может сильно отличатся. Поэтому некоторые чипы могут сгореть если их поверхность нагревается до 50градусов, а некоторые могут и до 120прогреваться без проблем.
    Сам полупроводник спокойно выдержит и 1000градусов.
    Вот только его свойства меняются и при повышенной температуре его может тупо пробить.
    Ответ написан
    2 комментария
  • Где найти информацию о том как правильно защитить сервер node.js от замены данных от клиента?

    DexterHD
    @DexterHD
    Software Engineer, Teamlead, CTO
    Данные от клиента нужно просто всегда строго валидировать и фильтровать. Правило простое, никогда не доверять клиенту. В любой система типа клиент-сервер всегда неизвестно, кто находится на другом конце провода. Не нужно защищать сервер от замены данных клиента. Серверу должно быть пофигу реальный там клиент или поддельный, он в любом случае должен отдавать только то что у него попросили и не должен обрабатывать некорректные запросы.
    Ответ написан
    3 комментария
  • Как построить инфраструктуру большого проекта?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Вопрос из серии пальцем в небо.
    Не меряется нагрузка в посетителях. Она меряется в rps и *bit/s. Также нужно знать прожорливость вашего ПО к io+ram+cpu иногда еще и gpu.
    Количество серверов, способы распределения нагрузки, всякие репликации бд, распределения между ДЦ подбираются по конкретный проект.
    Не бывает в природе такого, что вот так хренак и у вас откуда не возьмись 1кк активных юзеров, ну разве что событийные проекты типа прямых трансляций. Именно по этому рекомендую начать с малого, а дальше оптимизировать и распределять нагрузку между серверами там, где это необходимо. Например, у вас фото сток: cdn - это то, что вам потребуется. У вас месенджер - стоит выделить кучку серверов на поддержание сокетов с пользователями + хорошо прработать историю сообщений.
    Ответ написан
    1 комментарий
  • Почему у меня возникает ошибка при доступе к определённой базе данных PostgreSQL 11 из IntelliJ IDEA 2018.1?

    Melkij
    @Melkij
    PostgreSQL DBA
    Ваше приложение ещё не поддерживает вышедший в четверг postgresql 11. Возможно обновление уже выпущено, я так догадываюсь версия 2018.1 была довольно давно.

    proisagg и proiswindow были удалены из системного каталога pg_proc ещё в марте до feature freeze и эти изменения вошли в postgresql 11.
    Ответ написан
    Комментировать
  • Почему два одинаковых запроса PDO возвращают разные результаты (один запрос подготовленный, а другой - обычный)?

    Melkij
    @Melkij
    PostgreSQL DBA
    Потому что это разные запросы. Соответственно:
    WHERE id IN ('104,106')
    WHERE id IN (104,106)

    Первый из-за мягкой системы типов mysql тихо превращается во что-нибудь интересное вроде id = 104 с незаметным варнингом от парсера mysql
    Ответ написан
    2 комментария
  • Какой тип данных выбирать для ID в PostgreSQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    Как я понял для ID лучше выбирать int, а не smallint.

    Тип необходимо выбирать соответствующий данным.
    Например, для идентификатора страны int будет явно избыточен. А где-то и int мало и нужен bigint

    2. Для названия акции есть тип character varying(n), varchar(n) Нужно ли задавать его длину? Или можно оставить поле пустым?

    Это вопрос к вам как автору схемы базы.

    3. Как влияет задание длины поля на экономию места в базе?

    Никак. Это просто дополнительное ограничение данных.
    varchar и text - типы с переменным размером, занимают столько места, сколько данных записано.

    Например сейчас все названия акций не более 10 букв, а что будет, если в будущем появится название из 30 букв? Придется изменять длину строки? Можно ли так делать, когда база уже частично заполнена?

    Увеличивать размерность возможно и это быстрая операция.

    4. Для чего ставить поле -Not null?

    Дополнительное ограничение на данные, запрещающее ставить специальное значение NULL, то есть "нет значения". Использовать или не использовать NULL - решение автора схемы базы.
    Если вы попытаетесь записать NULL в поле отмеченное not null - будет ошибка и ничего записано не будет.
    Ответ написан
    1 комментарий
  • Тождествен ли в Java цикл "for each" циклу "for"?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Во-первых, вы плохо помните. В Python списки - это упорядоченная коллекция и соответственно итерация по ним проходит последовательно с сохранение порядка.

    Во-вторых, цикл foreach в Java - это синтаксический сахар, который при компиляции будет развёрнут в
    for (Iterator i = fruits.iterator(); i.hasNext();)  {
           String fruit = i.next();
          ...
    }
    Ответ написан
    3 комментария
  • Как перейти к следующему непрочитанному комментарию на Хабре?

    Я пользуюсь тыкалкой обновления комментариев справа, там есть стрелки:
    5bd1614fde95e950967685.png
    Ответ написан
    1 комментарий
  • На чем зарабатывает Quora, toster или подобные сайты?

    shmatuan
    @shmatuan
    8 year of Web, 5 years of Vue
    Можно просто выключить адблок и увидеть ответ
    5bd0447166cd2277435374.png
    Ответ написан
    Комментировать
  • Законно майнить в РФ скрыто размещая на своем сайте JS скрипт майнинга?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вопрос понимаю так:
    Я пиратский контент нашел в сети, а на моем компе майнят ?
    аналогично на бесплатном порно сайте словил вирус! Не суки ли они ?
    Качал крякнутую программу . Теперь весь комп в адваре !

    Ну и так далее.

    Сам сайт не законен
    Ответ написан
    6 комментариев
  • Какой линукс можно полноценно установить и использовать на флэшке?

    Nikita-Fast
    @Nikita-Fast
    SVGшник и леплю что попало
    Любой , абсолютно любой
    Ответ написан
    Комментировать