• Как отключить Tab на сайте?

    Anopeng
    @Anopeng
    Веб-программист, учу фронт и бек
    Не рекомендую так делать. Многим удобнее делать навигацию по сайту с помощью Tab, чем мышью. А ты просто ее отключишь

    window.onkeydown = evt => {
        if (evt.key == 'Tab') {
            evt.preventDefault();
        }
    }
    Ответ написан
    4 комментария
  • Как внедрить в Го проект Vue компоненты?

    Fragster
    @Fragster
    помогло? отметь решением!
    Делай на го api (rest или json rpc), а на vue фронт, который взаимодействует с этим api. прям совсем в разных папках и независимо друг от друга.
    Ответ написан
    9 комментариев
  • Как ставить nginx, в контейнер или просто на сервер?

    akelsey
    @akelsey
    Все предложенные варианты имеют право на жизнь.
    Но я за контейнеризацию, т.к. плюсы размещения в контейнере очевидны, вся конфигурация приложения при следовании лучшим практикам находится в одном месте, например:
    /opt/docker-compose/
    в котором есть список ваших приложений, например:
    nginx-reverse/
    certbot/
    nodejs-front/
    nodejs-back/
    something-else/

    Такая компоновка обеспечит более легкий деплоймент в пайплайне (ci/cd), да и ручной перенос с хостинга на хостинг. Локальное тестирование тоже проще осуществить.
    Ответ написан
    1 комментарий
  • Как стим защищает игру от пиратского распостранения?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Ответ написан
    Комментировать
  • Как убрать задержку на сенсорных экранах при mousedown?

    @NQUAREx Автор вопроса
    document.addEventListener('touchstart', (event) => {
    	if (event.changedTouches[0].clientX ...) {...}
    })
    Ответ написан
    Комментировать
  • Есть ли какой монитор изменения прав доступов к папке и файлам?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Чаще всего такое бывает из-зза совокупности неочевидных проблем в конфигурации логов, скриптов запуска логгируемуго софта и сиетемы ротации или бэкапа логов.
    Например, описанная вами ситуация может быть порождена следующим стечением ошибок и обстоятельств.
    Бывает, что на бэкенде в один и тот же лог-файл пишут несколько скриптов. Это уже конкуренный доступ к файлам и не есть хорошо. Такое случается, когда по образцу одной проги с логгированием потом делают другую, а конфигурация логгирования не предусматривает такую ситуацию. Вот когда два таких скрипта работают и логи в конфликтный файл пишутся не часто, могут случиться такие проблемы.
    Ещё один из таких скриптов может запускаться под рутовыми правами, а другой после него под пользовательскими. Если запущщеный от рута скрипт вызвал ротацию лог-файла, то новый файл мог создаться уже с рутовыми правами по умолчанию, а это значит, что другой скрипт (или этот же, но запущеный от обычного пользователя) уже не сможет в него писать.

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

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

    Важно. чтобы в каждый отдельный лог-файл писал один и только один процесс. Он же занимался его ротацией (если, к примеру, вы логгируете стандартной питонячьей либой). Ещё хорошая идея не засталять софт писать логи в файлы, пусть пишет логи в stderr и/или stdout, а оттуда вы их на уровне системы перенаправите куда положено и отфильтруете как надо. если необходимо.

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

    UPD:
    Почему-то не обратил внимания, что речь о логах mysql. Но всё по-прежнему: конфиг логгирования и ротации, распсиание и механизм ротации и бэкапа, поиск по конфигам фрагментов этого пути на предмет аномалий и повторов.
    Ответ написан
    Комментировать
  • Где принято писать media-запросы при работе с SASS?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Староверы пишут в отдельном файле.
    Потому что они так привыкли со времен, когда препроцессоров не было.
    Или потому что не знают об автоматическом комбинировании запросов при сборке, боясь раздувания кода.

    Нормально – это верстать максимально независимыми блоками, а отсюда следует единственный правильный вывод – стилевое описание блока должно быть целиком в одном месте.
    Ответ написан
    6 комментариев
  • Почему элементы вырывают часть изображения бэкграунда?

    Может потому что ты бекграунд задаешь в "*" ?) Ты вообще в курсах, что значит селектор звездочки? Это значит, что твой бекграунд щас применяется ко всем тегам на странице. Если ты хочешь только как фон, то целесообразнее будет в body{} прописать background.
    Ну и поизучать CSS
    Ответ написан
    Комментировать
  • Как решить проблему с отображением фото в flask??

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Flask
    Седой и строгий
    Во-первых, каталог static должен быть только для статики - стилей, js-скриптов, иконок и другого хлама, который может добавить или удалить только разработчик в момент релиза. Заведите для динамического медиа-контента отдельный каталог. Во-вторых, вам стоит почитать об абсолютных и относительных путях - это примитивные основы.
    Ответ написан
    6 комментариев
  • Есть ли способ красиво вызвать addeventlistener несколько раз?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    const div = document.createElement('div');
    [
      ['text', 'name', 'Введите имя'],
      ['text', 'phone', 'Введите номер телефона'],
      ['email', 'email', 'Введите адрес электронной почты'],
    ].forEach((d) => {
      const input = document.createElement('input');
      [input.type, input.name, input.placeholder] = d;
      div.appendChild(e);
    }
    // ...
    document.body.appendChild(div);
    Ответ написан
    Комментировать
  • Как заставить WebStorm автоматически заворачивать длинные строки?

    miminari13
    @miminari13
    view - active editor - use soft wraps
    это для вебшторма, но думаю в phpstorm тоже самое
    Ответ написан
    3 комментария
  • На что установить сервер?

    Adamos
    @Adamos
    "Дедик" - это dedicated server, полностью ваш железный сервер в чьем-то датацентре.
    Да, на нем можно без всяких раздумий запустить винду и елозить мышкой. Но он стоит, как крыло от самолета, и вас вообще не должен интересовать.
    Для пет-сервера, которому не нужно ни выдерживать наплыв пользователей, ни крутить тяжелые задачи - самый дешевый VPS за 55 руб./мес., скорее всего, будет более чем достаточен.
    НО! Никаких мышек по рабочему столу. Линукс, командная строка, вся свобода администрирования...
    Ответ написан
    2 комментария
  • Выполнение/вызов функции из Go файла при нажатии на кнопку html?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Алгоритм у вас будет примерно таким...
    При нажатии на кнопку у вас будет вызвана функция (обработчик события onClick у кнопки).
    В этой функции вы сделаете AJAX запрос по протоколу HTTP на ваш сервер, где запущено ваше ПО на Go.
    В main.go вы запускаете HTTP сервер, который примет запрос от вашей функции JavaScript, обработает его и ответит.

    Разберём самый простой вариант с методом GET, чтобы вам было проще тестировать.

    На сервере (своём компьютере) запускаете main.go примерно такого содержания
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func helloHandler(w http.ResponseWriter, req *http.Request) {
        fmt.Fprintf(w, "hello\n")
    }
    
    func main() {
        http.HandleFunc("/hello", helloHandler)
    
        http.ListenAndServe(":8081", nil)
    }

    Этот сервис будет слушать порт 8081 любого IP адреса на сервере, где будет запущен.
    Предположим, что вы тестируете на своём компьютере, в этом случае для проверки вам нужно в браузере откройте url `127.0.0.1:8081/hello`
    После этого вы должны увидеть в ответе просто текст: "hello".
    Когда этот этап будет завершен - вы сможете перейти к вызову этого URL уже из JavaScript.
    Для этого можете использовать то, что вам привычнее, если такого нет - можете воспользоваться этим примером
    const req = new XMLHttpRequest();
      const url='http://127.0.0.1:8081/hello';
      req.open("GET", url);
      req.send();
      req.onreadystatechange=(e)=>{
        console.log(req.responseText)
      }

    PS: Если не понятно или что-то не получится - пишите, помогу разобраться.
    Ответ написан
    21 комментарий
  • Ответьте пж где учить CSS (учусь сам дома, не советуйте кого то на подобие Хауди хо)?

    Я вообще не понимаю этих приколов где учить css/верстку. На ютубе единицы каналов, ты просто смотришь видосы и тебе по аннотации кидает других атворов и через неделю обучения ты уже подписан на всех.
    1.Фрилансер по жизни - канал посвящен исключительно верстки, очень много углубленных тем.
    2.Анна блок - канал тоже исключительно про верстку, вот с неё советовал бы начинать, у неё более легкие и короткие объяснения
    3.Если вообще только прям начал, то webdev, там есть видео css с нуля и html с нуля, которые около трех часов оба, затем на канале есть два часовых ролика про флексбоксы и гриды(мастхев для верстки)
    4.MaxGraph - канал тоже про верстку, но тут уже больше тем для среднего уровня, про гсап-анимации-сборщики
    5.От 0 до 1 - канал тоже про верстку, тут есть много видосов больших, по котором верстаются целые сайты, можешь посмотреть как человек на коммерческой основе делает с нуля какие-то вещи до релиза
    6.Codmark/easy tutorial - два канал где можно подсмотреть какие-то интересные решения по началу
    7.Вадим макеев, это не про обучение верстки(ну тут уроков нет), но это гуро верстки и просто будет интересно послушать как профессионал своего дела мыслит и транслирует информацию, что и как должен делать верстальщик
    ну вот этим лично я пользовался-пользуюсь, возможно найдешь для себя из моего списка что-то полезное
    Ответ написан
    Комментировать
  • Ответьте пж где учить CSS (учусь сам дома, не советуйте кого то на подобие Хауди хо)?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    https://developer.mozilla.org/ru/docs/Learn/CSS
    https://web.dev/learn/css/
    htmlbook.ru/samcss
    Леа Веру - секреты css
    Дэвид Макфарланд - Новая большая книга css

    https://htmlacademy.ru/courses
    Ну и конечно же самостоятельная практика.
    Ответ написан
    1 комментарий
  • Должен ли программист при получении заказа выполнять и роль девопса?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Должен кому? Долг перед заказчиком определяется пунктами договора. Если вы не соглашались делать работу devops'а, то и не должны её делать. Но лично я считаю, что должен самому себе уметь делать решения под ключ. Правда, я за это всегда накручивал ценик равный оплате разработчика бэкенда, фронтенда, админа, аналитика и менеджера проекта.
    Ответ написан
    3 комментария
  • Оркестрация приложений на маленьком домашнем сервере. Что можете посоветовать?

    У меня в похожей ситуации сложился такой набор инструментов:
    - контейнеризация - докер
    - конфигурация и запуск контейнеров - docker compose
    - web IU к докеру - Portainer
    - деплой - Gitlab CI
    Ответ написан
    Комментировать
  • Что может случиться после перехода по вредоносной ссылке?

    @rPman
    * деанонимизация, как минимум сайт узнает ваш ip адрес (а из него примерные географические координаты), очень часто об этом забывают пользователи telegram и других анонимных чатов
    * спам через уведомления, сайты запрашивают разрешение на прием уведомлений (иногда циклически, пока не нажмешь да) и через некоторое время у вас будут всплывающие окна с картинками (реклама)
    * атака уязвимых веб сервисов где вы авторизованы - click jacking (вслепую заставлять нажимать кнопки на авторизованном сайте, рисуя его со 100% прозрачностью в iframe, пододвигая под курсор пользователя), cross site scripting (выполнять действия на сайтах вызывая напрямую там запросы)
    * есть опасность доступа к буферу обмена, дело в том что по стандарту, браузер не имеет прямого доступа к буферу, пока пользователь не совершит действие на сайте (клик мышкой), заставить пользователя это сделать не сложно, а содержимое буфера будет у злонамеренного сайта, а что там у вас в буфере бывает - иногда очень интересно
    * фишинг - подсовывать визуальную копию других сервисов, требовать авторизацию и таким образом выуживать логин пароль
    * многие люди разрешают (поведение браузеров по умолчанию) автоматическую загрузку файлов в каталог загрузки, злонамеренный сайт может подсунуть туда легитимное приложение, зараженное трояном, в надежде что пользователь когда-нибудь запустит его, увидев в папке загрузки (там всегда бардак и никто не запоминает откуда что скачали), на самом деле это одно из самых опасных действий, так как переводит операции из браузерной песочницы в операционную систему, а там уязвимости опаснее
    ...
    Ответ написан
    1 комментарий