• Где разница между статическими функциями и фабричными?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Любой атрибут (свойство), содержащий функцию, называется методом.

    Атрибут, присвоенный функции - конструктору объекта (и только функции-конструктору), называется статическим атрибутом. Соответственно, любой метод, присвоенный функции-конструктору, называется статическим методом.

    Любая функция, главным назначением которой является создание объекта и возвращение его в качестве результата, называется фабрикой (фабричной функцией).

    Если фабричная функция является методом, она называется фабричным методом.

    Фабричный статический метод - это статический метод, являющийся фабричным.
    Ответ написан
  • Как узнать сколько памяти нужно будет на выполнение скрипта?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    После каждой тысячи строк сохраняй кол-во строк, прошедшее время и значения функций memory_get_usage и memory_get_peak_usage. А потом по этим данным строй графики - сможешь по ним оценить и примерный объём памяти, и примерное же время работы...

    P.S. Намного быстрее и проще сохранять данные в CSV.
    Ответ написан
    Комментировать
  • Как перестать кодить и начать программировать?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Очень хорошо, языки Вы знаете. Но хотя бы один учебник программирования в своей жизни прочитали? Не модного языка, а именно программирования?

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

    Попробуйте начать с учебника Вирта: "Аглоритмы и структуры данных", издание от 2010 года и новее.
    Ответ написан
    Комментировать
  • Как передавать проект на back end?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Если в ТЗ прописан bootstrap, то в выполненной работе должен быть именно bootstrap - и никак иначе. Если же в ТЗ такого требования нет, то какие претензии?

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

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Это делается не библиотеками, а конструкциями @media в CSS, которые автоматически меняют стили в зависимости от ширины экрана.

    Нормальная адаптивная вёрстка - это когда от ширины экрана зависят только стили при неизменном HTML. Уже давно используемые флексбоксы (flex) и набирающие популярность сетки (гриды, grid) позволяют легко это реализовать.
    Ответ написан
    Комментировать
  • Как решить вопрос с паддингами в slick-slidere?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Например, вот так: https://jsfiddle.net/3hfwrwmq/390/8/

    Просто наложил сверху по краям 2 блока с непрозрачным фоном, совпадающим с основным фоном страницы.
    Ответ написан
    Комментировать
  • Как правильно составить алгоритм?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Из множества строк первой таблицы вычитаем множество строк второй таблицы и результат записываем в третью таблицу. В MySQL это делается единственным SQL-запросом INSERT ... SELECT. Но так как в MySQL не реализована SQL-команда EXCEPT (разность множеств), то используется её эмуляция стандартным приёмом (описываемом в любом учебнике) через LEFT JOIN и IS NULL:

    INSERT INTO table3
    SELECT table1.*
    FROM table1
    LEFT JOIN table2
      ON table1.id = table2.id
    WHERE table2.id IS NULL
    Ответ написан
    Комментировать
  • Какой язык программирования учить для успешного поиска работы за рубежом?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Учить надо программирование, а не языки. Язык - всего лишь вспомогательный инструмент, единственное назначение которого - запись алгоритмов в понятной компьютеру форме. И не один учебник модного языка не научит основам алгоритмики.
    Ответ написан
    Комментировать
  • Можно ли ускорить обработку измерения,сделанного на основе таблицы фактов?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    140 миллионов записей - это немного. Так что:

    1. Проанализировать план запроса: https://technet.microsoft.com/ru-ru/library/ms1780... .
    2. Оптимизировать запрос (возможно, разбить его на несколько независимых запросов с сохранением промежуточных результатов во временных таблицах).
    3. Создать необходимые для данного запроса индексы.
    4. Настроить параметры СУБД.

    И как более радикальный вариант - использовать специализированную СУБД, оптимизированную для OLAP.
    Ответ написан
    Комментировать
  • Как в TinyMCE настроить табуляцию?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Введи в любом оффлайновом текстовом редакторе символ табуляции, скопируй в буфер обмена, вставляй в окно TinyMCE с помощью Ctrl+V.

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

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В современных (5.6, 7.0) версиях PHP: $b * (1+ N / 100.0) ** $n
    Где $n - кол-во месяцев.
    В более ранних: $b * pow(1+ N / 100.0, $n)
    Ответ написан
    Комментировать
  • Как сохранять emoji utf8mb4 в mysql на shared хостинге?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Чтобы сохранять символы с кодами больше 0xFFFF недостаточно задать кодировку сессии, необходимо чтобы таблицы базы данных имели кодировку utf8mb4. Пересоздай таблицы БД с явным указанием кодировки utf8mb4.

    Но учти, что максимальная длина индексного значения в БАЙТАХ при этом не меняется. Потому, если у тебя есть индексы по полям типа VARCHAR, то для utf8mb4 (4 байта на символ вместо 3 у utf8) длина этих полей не должна превышать 191 символ (255*3/4).
    Ответ написан
    1 комментарий
  • Как заменить все h1 на h2 во множестве статей на движке wordpress?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Делаешь дамп таблицы MySQL в текстовый файл. Каким-нибудь редактором, или скриптом производишь массовую замену. Заливаешь исправленное содержимое обратно в базу.
    Ответ написан
    Комментировать
  • В чем может быть ошибка при хранении yii 1 сессий в БД?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Какой, на хрен, INT с автоинкрементом??? Ты документацию на CDbHttpSession вообще хоть раз смотрел? Там чёрным по белому написано, какие типы должны иметь поля таблицы хранения сессий. Поле id хранит php'шный идентификатор сессии и потому должно иметь тип CHAR(32).
    Ответ написан
    Комментировать
  • Сколько будет жить cookie, если сессия не закончилась?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Важно не время нахождения пользователя на сайте, а время между двумя обращениями к серверу (это может быть и переход пользователя на другую страницу, и подгрузка контента AJAX'ом и т.п.).

    Сессия устанавливает куку, содержащую id сессии в момент открытия страницы. После того, как страница предана браузеру, состояние сессии записывается в архив.

    Если между обращениями к серверу прошло меньше 15 минут, то сервер возьмёт id сессии из куки и по этому id восстановит состояние сессии из архива. При этом время жизни куки передвинется на +15 минут от текущего.

    Если же прошло больше 15 минут, то кука будет удалена и при следующем обращении к серверу он не сможет прочитать id сессии - потому автоматически создаст новую сессию с новым id и этот id будет записан во вновь созданную куку.
    Ответ написан
  • Не пора ли выпилить капчу?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Добавишь паузу - хакер вместо десяти ботов запустит тысячу. И добьётся точно такого же результата.

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

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Те, кто называют фреймворки "костылями", похоже не понимают, что современные языки программирования сами по себе являются костылями. Зачем изучать алгоритмы сортировок, когда в PHP встроено 12 функций - на все случаи жизни? Зачем разбираться с выделением и очисткой памяти, если всё это делается автоматически? И т.д., и т.п.

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

    И, разумеется, не надо начинать с написания собственного фреймворка "с нуля". Ты же не будешь видеть собственные ошибки. Даже не сможешь понять, что допустил ошибку. Потому лучше начни с разбора чужого кода...

    Возьми тот же Yii2 и попробуй разобраться - что и как там работает и почему сделано именно так, а не иначе. После этого возьми другой фреймворк и сравни их... Да Kohana сдохла, но тот же FuelPHP (который является форком Коханы) вполне себе развивается.
    Ответ написан
    Комментировать
  • Как убрать отступ?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Если действительно inline-блоки, то между элементами вставляется пробел, который ты и видишь. Либо убирай все пробелы между элементами в html-коде (чтобы между закрывающим тегом первого таба сразу шёл открывающих тег второго - без пробелов, переводов строк и прочих символов между ними), либо сделай для обрамляющего их блока font-size: 0px; - чтобы шрифт между табами был нулевого размера.
    Ответ написан
    Комментировать
  • Как выровнять контент с помощью div'ов?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    Смотри в сторону параметров css: display: table-cell (обеспечивает для div такое же поведение, как и для td; в частности, автоматическое выравнивание по высоте стоящих в одной строке div'ов). И display: flex (это вообще принципиально новый механизм html-вёрстки) - frontender.info/a-guide-to-flexbox

    Еще очень простой, но ограниченный по возможностям механизм: display: inline-block. Вполне подойдёт, если между ячейками нет рамок.
    Ответ написан
    Комментировать