• Как правильно указать WHERE если делаем LEFT JOIN?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Порядок кляуз в запросе чётко определён в документации, и никаких изменений и перестановок не предполагает (исключение - кляуза INTO при помещении результата в переменную, для которой описано 3 разных местоположения).
    SELECT u.*, t.type_name, t.description 
    FROM users AS u 
    LEFT JOIN type_user AS tu ON tu.id_user = u.id 
    LEFT JOIN types AS t ON tu.id_type = t.id
    WHERE u.id = 1;
    Ответ написан
    Комментировать
  • Несколько веб серверов дома, как настроить NS и маршрутизацию?

    @rPman
    Тебе нужен либо второй ip (доп услуга почти у любого провайдера) либо еще одна машина, выступающая http прокси. Посмотри возможности роутера, возможно если его перепрошить, туда можно водрузить nginx... и да не всякий роутера позволит настроить несколько ip адресов, поэтому опять - отдельная машина.

    Тебе правильно посоветовали проксировать в облаках. Рано или поздно придешь к пониманию что нужна защита от ддос, вот тут то решение и придет автоматически
    Ответ написан
    Комментировать
  • Какие проекты нужны junior web-developer в портфолио?

    @Dasha-Web
    Хорошо заходят всякие штуки с админками. Чтобы было много ролей (админы, модераторы и пользователи), у каждой роли свои возможности. Попробуй написать какую-то платформу по типу обучающей например. Юзер имеет свой профиль, может создавать обучающие статьи (с фото/видео и текстом). Статьи сначала попадают в админку к модератору и только потом доступны в публичном доступе. Статьи могут быть доступны публично, либо только авторизованным пользователям. Плюс можно организовать рейтинговую систему (лайки/дизлайки + модераторский рейтинг) . И какую-то ленту новостей, куда будут попадать только новости с высоким рейтингом.
    А дальше уже полет фантазии и навыки, которые хочешь показать. Простая схема - умею работать с canvas - припиливаю что-то на canvas, знаю как делать крутые анимации - использую. Цель таких проектов обычно - показать свои навыки и качество кода + умение работать головой. Использовать что-то не понимая как это работает нет смысла потому как на техническом собеседовании все равно это узнают. И часто компании вообще не просят примеры кода, а дают тестовое задание
    Ответ написан
    1 комментарий
  • Как массив преобразовать в get-образную строку?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    1. Это не массив
    2. URLSearchParams
    Ответ написан
    Комментировать
  • Как вырезать слово регуляркой?

    Simkav
    @Simkav
    Ответ написан
    Комментировать
  • Как удалить и добавить класс при двойном клике?

    nazares
    @nazares
    Software Engineer
    Ответ написан
    Комментировать
  • Как написать слайдер или хотя бы часть его, не понимаю...?

    Anonymous24
    @Anonymous24
    Тут доступно изложена реализация слайдера на базе https://swiperjs.com/
    https://www.youtube.com/watch?v=lXFKRGvV5T4
    Ответ написан
    Комментировать
  • Как связать Express Router с React Router?

    https://stackoverflow.com/a/52336630/6912339

    Суть в том что мы сначала подключаем api роутер, затем выдачу статических ресуросов (css и прочего), а затем все остальные запросы перенаправляем на index.html чтобы отработал react-router. Приходящий на бэк запрос сверяется ровно в том порядке, в котором мы регистрировали обработчики, то есть сначала проверяется, не к api ли он, затем не к статическим ли ресурсам, и под конец, если не запрошено нтчего из вышеперечисленного, то считается что это маршрут фронтенда и выдается react приложение, где маршрут обрабатывается с помощью react-router.
    Ответ написан
    Комментировать
  • Как получить данные со второго домена через fetch, если Header set Access-Control-Allow-Origin * уже стоит?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В любом современном браузере откройте DevTool (кнопка F12), перейдите на вкладку Network, совершите необходимое обращение к другому домену, и смотрите, что именно браузер получил в этом запросе (щёлкнуть запрос, смотреть в окошечке слева во вкладке Response). Вот 100% там будет HTML вместо ожидаемого JSON.
    Ответ написан
    1 комментарий
  • Как правильно сегодня собрать браузерный ES6?

    - babel следует подключать по возможности всегда, хотя бы для обработки es7-8 фишек, которые вам понравятся, но еще не успели внедрить во все браузеры.
    - webpack можно подключить через gulp. Вполне можно выполнять отдельные такси с помощью gulp, а что-то обрабатывать с помощью webpack`а. Так же можно, например, запускать отдельные npm скрипты для выполнения параллельной или последовательной работы gulp и webpack. Особо полезные фишки webpack (имхо): tree shaking, [name][hash].ext корректное именование файлов на выходе, динамический импорт файлов.
    - делать отдельные сборки для старых и вечнозеленых браузеров можно. Подключать можно используя
    <script type="module" src="module.mjs"></script>
    <script nomodule src="fallback.js"></script>

    Подобный хак. Сначала подключаем сборку для браузеров, поддерживающих модули, и почти наверняка, весь es6 (e7-8 не обязательно, поэтому может потребоваться babel для транспилинга es7-8 в es6), а потом в качестве фаллбека подключаем файл в котором весь код преобразован в es5 (или ниже, если необходимо и возможно).
    Ответ написан
    2 комментария
  • Почему происходит задержка применения CSS?

    ae_ph
    @ae_ph
    I'm a owl )
    iframe будут работать медленнее по тому, что для браузера есть дополнительные накладные расходы (его рендеринг, поддержка его экземпляра и ссылки на него).
    Ответ из статьи
    =====================================================
    Иван Кулаков,
    Проверьте ваш HTML документ.
    Если вы указывали в <head> JavaScript и если вы его указали раньше стилей CSS тогда возможна изначальная загрузка JavaScript а затем и CSS стилей из за чего могут быть эти баги.
    Нужно указывать сначало CSS стили а затем уже JavaScript код. Но в иделе конечно писать JavaScript перед закрывающим тегом </body>
    Также хотелось-бы добить, чтобы вы указали ваш <title>Document</title> в низу под стилями.
    6066728f7d82e434619101.jpeg

    Попробуйте написать в конце HTML документа в "скрипт с пробелом" или с комментарием.
    Примеры:
    <script type="text/javascript"> </script>
    <script type="text/javascript">//</script>


    Или за место верхнего скрипта с пробелом просто добавьте пустой JS скрипт там.
    6066681e0d4db105801708.jpeg

    Так-же попробуйте это решение описанное в css-tricks.
    Transitions только после загрузки страницы.

    Цитата из w3 org

    Различные вещи могут вызывать изменения вычислительных значений свойств элемента.
    К ним относятся: вставка и удаление элементов из дерева документа (которые изменяют, имеют ли эти элементы вычисленные значения и могут изменять стили других элементов посредством сопоставления селекторов), изменения в дереве документа (которые вызывают изменения в том, какие селекторы соответствуют элементам), изменения на таблицы стилей или атрибуты стилей и другие вещи.
    Эта спецификация не определяет, когда вычисленные значения обновляются, кроме того, что реализации не должны использовать, представлять или отображать что-либо, являющееся результатом каскадирования CSS, вычисления значений и процесса наследования.


    Также перехода можно избежать, задав стили в HTML файле вместо использования CSS, которые загружаются асинхронно.
    Ответ написан
    9 комментариев
  • Какие языки "убийцы" C/С++?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Первую свою книжку по С я прочитал в 1988 году. С тех пор С все убивают и убивают, то один "убивец" находится, то другой...сколько уже их было - никто и не помнит, потому что через полгода-год "убивец" отправляется на свалку истории, а С - живее всех живых :D
    Ответ написан
    Комментировать
  • Какие языки "убийцы" C/С++?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нет таких. Язык проверен временем, развивается. На нем написано много кода, много чего заточено под C++. А статьи вроде "убийцы C/С++" пишут на сайтах для лохов, наряду с другими заголовками вроде - "всего одна капелька дешевого..." На хабре тоже правда бывают проскакивают на короткое время статьи с такими заголовками, но там правда неплохо так сливаю карму "писателю".

    Можете поставить себе в браузер какой-нибудь блокировщик рекламы, чтобы не видеть такие статьи.
    Ответ написан
    Комментировать
  • Почему событие scroll не работает на экранах меньше 800px?

    wapster92
    @wapster92 Куратор тега JavaScript
    Потому-что скролл это скролл, а то что ты делаешь, это resize
    Ответ написан
    2 комментария
  • Как правильно сделать lazy load?

    dima9595
    @dima9595
    Junior PHP
    ленивая загрузка тогда вам не подходит при работе с кликами. ленивую загрузку используют как правило для подгрузки изображений при видимости самого блока с изображением.

    в вашем же случае достаточно будет data-src и src менять местами при клике.
    Ответ написан
    2 комментария
  • Как проверить: является ли аргумент кодом цвета hex?

    Alexandre888
    @Alexandre888
    Javascript-разработчик
    if (/[0-9A-Fa-f]{6}/g.test(args[0])) console.log("правильный hex")
    Ответ написан
    Комментировать
  • Как readme.md оставить только на гитхаб?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Добавление файла .gitignore не удаляет файл из репозитория. Оно лишь предотвращает автоматическое добавление файла в репозиторий при ближайшем индексировании (например через git add .), но даже игнор не запрещает нам начать отслеживать любой файл просто принудительно добавив его в индекс git add <file>

    Однажды добавив файл в репозиторий, вы уже не сможете его оттуда удалить. Это если понимать под репозиторием всю его базу со всей историей.

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

    Если файл мешает на локальной машине, то для локальной работы используйте другую ветку. Не ту, что показывается по умолчанию на гитхабе. И удалите файл в этой ветке.
    Файл разумеется не исчезнет из истории локальной копии репозитория, но пропадёт из локальной рабочей копии файлов проекта и не будет мозолить глаза.
    Ответ написан
    Комментировать
  • Как создать репозиторий на GitHub из папки на xampp?

    glaphire
    @glaphire
    PHP developer
    Если сайт это независимый проект, то логичнее было бы сделать git init внутри папки htdocs/site, или вынести содержимое сайта на уровень глубже и поправить конфиги апача. Дальше - создать репу на гитхабе, инструкции как залить существующий проект будут сразу же после создания репы
    Ответ написан
    5 комментариев
  • Какие веб-технологии наименее требовательны к ресурсам памяти и ЦП сервера?

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

    Советы:
    * не используйте http rest с генерацией html на сервере (устаревший подход, но много готовых фреймворков его используют, у этого подхода только одно достоинство - дешевая горизонтальная масштабируемость), ваш бакэнд должен выглядеть готовым веб сервером и не должен на каждый запрос делать лишние инициализации.
    * переносите все что только можно на сторону клиента, всякие single page application, в идеале бакэнд должен быть чем то типа прослойки к базе данных и авторизация, все остальное пусть работает на клиенте
    * уменьшайте количество запросов (т.е. запросить 1 мб в виде одного файла менее ресурсоемко чем запросить сто по десять килобайт), никаких периодических запросов на сервер для проверки статусов, пользуйтесь вебсокетами
    * все что неизменно или редко меняется должно быть статикой, на ее поддержку тратится несравнимо меньше ресурсов сервера
    * не перебарщивайте с использованием готовых фреймворков, да это соблазняет простотой и получением готового результата путем комбинации решений как в конструкторе, но начиная с какого то момента ограничения подхода и борьба с особенностями и даже багами превысят затраты на самостоятельную разработку решения. Знаменитый анекдот 'как программист заваривает чайник' отличная иллюстрация того что готовые решения увеличивают затраты ресурсов и по простому это не исправить.
    Готовые репозитарии решений это конечно отлично но вы должны понимать что не вы их поддерживаете а значит становитесь заложником чужих решений и разработчиков, на которых вы не влияете. А уж когда у вас критичная и финансовая информация, чужие готовые решения становятся огромной дырой в безопасности.
    Ответ написан
    Комментировать