• Как настроить seo?

    @mletov
    Я тоже не seo, но вы же сами все базовые недостатки и перечислили)

    По этому своему плану и действуйте:
    - Пропишите или заставьте кого-нибудь прописать ЧПУ
    - Сделайте склейку зеркал
    - Проследите чтобы копирайтеры/контент менеджеры внесли на каждую страницу уникальное описание товара.
    А также title и description.
    - Сгенерите sitemap.xml
    - Поиграйтесь с robots.txt. Поставьте disallow для технических страниц и дубликатов.

    ну и редирект 301 на 20к страниц прописать анрил

    Я, конечно, не знаю, на чем там у вас сайт, но в приличных CMS 301 редирект для прописанных ЧПУ делается автоматом или при проставлении соответствующего флага в админке. В любом случае, это можно/нужно автоматизирвоать.

    Посмотрите, насколько быстро грузится сайт. Нет ли тормозов на фронте/бэке, не нужны ли где-нить миниaфикация или кэширование.

    Посмотрите на сайт глазами пользователя:
    Поставьте перед собой цель что-нибудь заказать на сайте. Если найти и заказать удалось быстро - значит хорошо.
    Если пришлось 3 часа рыскать по страницам и заполнять 100500 полей в разных формах - что-то не так с юзабилити. Поисковики сейчас его тоже оценивают.
    Ответ написан
    Комментировать
  • Тестирование продукта на фрилансе?

    @mletov
    Свои косяки надо исправлять за свой счет, но:
    1) В разумный гарантийный срок
    2) Должно быть условие, что в течении этого гарантийного срока сторонние разработчики в этот проект не лезут, это как гарантийная пломба на электроприборе. А то бывает пустят проект по рукам, а потом говорят "а у вас там баги"
    Ответ написан
    Комментировать
  • Как осуществить поиск слова в НЕСКОЛЬКИХ файлах?

    @mletov
    1) Свою логику вынесите в отдельный метод
    2) Сложите пути к файлам в массив
    3) Пройдитесь по массиву циклом, на каждой итерации вызывая свой метод
    Ответ написан
  • Как удалить запись из таблицы, на которую есть ссылка?

    @mletov
    А связанные записи из staff и прочих таблиц вы тоже пытаетесь удалить каскадом?

    1) Если нет - то тогда разберитесь с целостностью, поставьте NULL во всех полях внешних ключей записей, привязанных к удаляемой

    2)Если же удаление каскадное, со всеми связанными полями в других таблицах
    https://roothelp.ru/lessons/kaskadnoe_udalenie_na_mysql
    Проверьте, есть ли опция ON DELETE CASCADE у всех полей с внешними ключами удаляемой записи.
    Ответ написан
    Комментировать
  • Как проверить безопасность params?

    @mletov
    По поводу sql:
    используйте параметризированные sql запросы или какой-нибудь ORM или конструктор sql запросов (по-моему, сейчас каждый язык/фреймворк что-нибудь такое имеет).

    По поводу xss:
    Вырезать регуляркой тег script, или вообще не выполнять дальше действий, если такой есть в запросе. Экранируйте, заменяйте теги спецсимволами и т д.
    Некоторые продвинутые фреймворки сами не дают сохранить такой код, пишут что-то вроде "Обнаружено потенциально опасное содержимое запроса"

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

    Значит легкого пути не будет. Какие варианты можно рассмотреть:
    1) Если количество разрешенных команд конечно, то просто присвойте им порядковые номера типа localhost:3000/command=1, localhost:3000/command=2...
    И в зависимости от переданного номера выполняйте команду.
    2) Если количество команд не ограничено, то тут разве что завести пользователя с ограниченными правами, чтобы все команды, переданные запросом, выполнялись под ним.
    3) Если количество команд ограничено, но у них есть опциональные параметры (типа там путь к аудитории, имя создаваемого файла и т д), то, как уже предложил dimonchik2013, забейте все допустимые шаблоны в regex.
    Ответ написан
    4 комментария
  • Сколько нужно знать слов, чтобы начать учиться только на английском?

    @mletov
    Отталкивайтесь от противного. Не копите слова чтобы в один прекрасный день начать читать (они быстро забудутся), а читайте, подспудно запоминая слова. Разумеется, если ручкой выписывать слова в тетрадку, то прогресс будет очень медленным.
    Мне на первых порах очень помог метод чтения Ильи Франка, ну а далее просто читаю, тыкаю в незнакомой слово переводчиком, часто употребляемые слова сами запоминаются. Специально ничего не зазубриваю, слова запоминаются сами. Ну кроме отдельных исключений, бывает, наткнешься на слово, которое уже 100 раз встречалось, а не помню, тогда специально его заучиваю. А если слово редкое - то фиг с ним, нечего его помнить, не в переводчики чай метим.
    Ответ написан
    Комментировать
  • Backend для frontend разработчика?

    @mletov
    Многое зависит от компании, в которую попадете. Требуемый уровень знаний может варьироваться начиная от "почти никакой" до "почти так же хорошо, как и frontend".

    Расскажите где работаете и где планируете работать - и вам, вероятно, знающие люди расскажут, чего там можно ожидать. Веб-сдудия, где клепают сайты на потоке - одно, суперкрутой портал с узкой спеализацией разработчиков - другое.

    Ровно тоже самое о ваших личных проектах, расскажите, что планируете делать - вам расскажут какой уровень бэкэнда нужен.
    Ответ написан
    Комментировать
  • Как правильно рассчитывать отступы?

    @mletov
    Погуглите по словам "типографика" и "теория близости". Подозреваю, что это не просто одна формула должна быть, а целая концепция, когда какие отступы применять.
    Ответ написан
    Комментировать
  • Как добавить A-запись с ru-center?

    @mletov
    1) Как уже посоветовал Андрей, A-записи должны прописываться на 1GB или другом хостинге, чьи DNS там прописаны.
    2) Но иногда почему-то хостеры встают в позу (так было с Агавой), говорят, не прописывайте наш DNS, а прописывайте DNS регистратора и в его настройках указывайте A-запись на наш айпишник. А у NIC.RU это доп деньги
    Ответ написан
  • Настройка multi-tenant приложения на хостинге?

    @mletov
    На многих шаред хостингах можно сделать так, чтобы несколько доменов ссылались на одну папку. Как правило, через их веб-интерфейс.
    Ну а там уже по ходу дела можно анализировать в коде или в .htaccess и подсовывать нужную логику в завизимости от домена.
    Yii тут особо непричем.
    Ответ написан
    2 комментария
  • Фактор возраста (ageism) при поиске работы в ИТ -так ли важен возраст?

    @mletov
    Немножко бы переформулировал: многие работодатели оценивают не возраст сам по себе, а соотношение "возраст - знания/навыки", т е при одном и том же уровне знаний/навыков 25-летнего оторвут с руками, а 35-40 летнему скажут, что в вашем возрасте вы должны уже быть супергуру и низкий и даже средний уровень квалификации не катит.

    А вот почему у 40-летнего квалификация как у 25 летнего - отдельная тема для обсуждения. Например, человек слишком поздно пришел в IT. Или человек всю жизнь в IT, но все время мечется, знаю человека, который был системным администратором, потом писал для Flash на Action Script, потом на Delphi, потом вот переключился на C#, но т к молодые годы упущены, то сейчас конкурирует в плане квалификации по части .NET с 25-летними. Или человек долго сидел на одном месте без профессионального роста и потерял связь со внешним миром, а когда контора развалилась, то оказалось, что стаж и опыт - ни разу ни одно и то же.
    Ответ написан
    Комментировать
  • Какие данные сохранять в бд широты и долготы?

    @mletov
    Так возьмите несколько реальных адресов на пробу, введите в поиск по картам координаты из первого массива и из второго, сделайте выводы.
    Ответ написан
  • Как стать продвинутым сайтоклепателем (формоклепателем) и отправиться на каторгу, чтобы пахать за говяжий дошик и оплачивать сарай?

    @mletov
    Жирновато.
    Походит на стилистику ebanoe.it , но даже там все обычно чуть тоньше
    Ответ написан
    Комментировать
  • Z-index: over9999 - зачем?

    @mletov
    Если код проекта целиком свой, то действительно нет нужды. Но если используются сторонние плагины, в которых элементы имеют большой z-index, а их надо перекрыть, то ничего другого не остается.
    Ответ написан
    Комментировать
  • Куда двигаться дальше senior разработчику? Новый язык, технологии, opensource, стартап?

    @mletov
    Если вы круты в java - почему бы не расширить свой кругозор в плане мобильной разработки под Android на той же java?
    Если пишете бэкенд под веб, то почему бы не покопать глубже в плане фронтенда на javascript или наоборот, в сторону БД.
    На мой взгляд, следует цепляться за смежные области, а не так, что сегодня веб, а завтра программирование микроконтроллеров.
    Ответ написан
    Комментировать
  • Как называется CMS созданная на основе wordpress?

    @mletov
    Вы ничего не перепутали? WordPress сам по себе CMS. Может быть речь идет о сборке, включающей в себя набор плагинов, ориентированной под какие-нибудь конкретные нужны (интеренет-магазин, соц. сеть и пр) ?
    Ответ написан
  • Каким способом изучать API Битрикса?

    @mletov
    Основные структурные единицы Битрикса - информационные блоки и их элементы.
    От этого и отталкивайтесь. Много задач тупо сводится к получению списка элементов инфоблока с определенными значениями свойств, т е к написанию аналога sql запроса, только при помощи функций Битрикс.
    CIBlockElement::GetIBlockByID и CIBlockElement::GetList на первое время покроют большую часть ваших потребностей.

    Что касается массивов $ArResutlt, $ArItem, $ArFiles в шаблонах, то частенько выручает var_dump. По содержимому массива вполне можно понять, за что он отвечает.
    Ответ написан
    1 комментарий
  • Почему на телефонах Samsung на Яндекс.Картах отрабатывает двойной клик, а не одинарный?

    @mletov Автор вопроса
    Решил вопрос. Обновил API Яндекс.Карт

    <script src="https://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU" type="text/javascript"></script>


    на

    <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script>


    Девайсы, на которых я тестил, были под Android 5, а проблемные телефоны Samsung - на Android 6. Судя по всему, какая-то разница в браузере.
    Ответ написан
    Комментировать
  • Как сверстать адаптивно блок выбора этажа?

    @mletov
    1) Обводите этажи, например, в Gimp
    2) Генерите тэг map area с координатами
    3) Используете плагин www.outsharked.com/imagemapster
    Ответ написан
  • Как будет верно?

    @mletov
    , - эквивалент INNER JOIN
    Вам нужен LEFT JOIN

    Начинайте выбирать из auth_info, т к данные из этой таблицы должны всегда быть, потом джоините к ней все остальное.

    Ограничения тоже старайтесь прописывать не в WHERE, а в ON
    Ответ написан
    Комментировать