• Почему плохо работает Open Server?

    @kitos7
    Как вариант в панели разработчика F12->Network отключить кэш
    60c1f6bd3b843831864063.png
    Ответ написан
    Комментировать
  • Есть ли сайты, на которых собраны множество "рецептов" по html/css?

    Eugevin
    @Eugevin
    22 года, frontend как смысл жизни
    Оу, май, парень. В этом плане лучше всех CSS-Tricks! И это на самом деле лучший ресурс: трюки, фишки, обучение и гайды с подробным описанием всех новейших технологий в области HTML/CSS (Flex, Grid, красивые менюшки и так далее)
    Ответ написан
    Комментировать
  • Определение живых пользователей от ботов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    1. Запрос страниц без картинок (почти однозначно бот)
    2. Время на странице (нужна статистика)
    3. Капча на чувствительные места (регистрация и отправка сообщений)
    4. Регистрация через соц. сети (почти однозначно не бот)
    5. Невидимая кнопка, если перешел сразу бан. (почти однозначно бот)
    6. banner gdpr большого размера и не нажатая кнопка. (почти однозначно бот)
    7. push notification который не нажали на 2 страницах (почти однозначно бот)
    Ответ написан
    7 комментариев
  • Как дизайнеру делать адаптивные сайты?

    mannaro
    @mannaro
    Умею профессионально гуглить
    В идеале делается так:
    1 дизайн, который сможет тянуться на любую ширину. Включается, если ширина > 1920px.
    1 дизайн для широких экранов 1024 <= x <= 1920, где x - ширина экрана.
    1 дизайн для мелких экранов 512 <= x < 1024 (часто опускают)
    1 для планшетов
    1 для телефонов

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

    rockfeeler
    @rockfeeler
    Фронтендер, дизайнер, верстальщик-перфекционист
    Тебе в голову пришел совершенно правильный вариант.
    Вообще, в каждой ситуации нужно отталкиваться от того, что должно получиться в результате. Если речь о визуальной составляющей, то на нее и нужно смотреть, подгонять и т.д.
    Автоматически можно только только задать object-fit и object-position, но зато с этими параметрами и размерами (width, height) изображения потом можно "играть" через медиа-запросы, подгоняя под нужный вариант.
    Ответ написан
    Комментировать
  • Как умно ресайзить фотографию под разные разрешения экранов и пропорции (десктоп, смартфон)?

    wapster92
    @wapster92 Куратор тега Вёрстка
    <picture>
      <source media="(max-width: 799px)" srcset="elva-480w-close-portrait.jpg">
      <source media="(min-width: 800px)" srcset="elva-800w.jpg">
      <img src="elva-800w.jpg" alt="Chris standing up holding his daughter Elva">
    </picture>

    браузер не грузит лишнии изображения. Это самый правильный и быстрый вариант
    Ответ написан
    4 комментария
  • Удобно ли верстать HTML на ретине?

    Хотела написать что-нибудь наполненное сарказмом, типа «возьмите теплый ламповый монитор старых годов, там отлично видны пиксели, они помогут вам верстать идеально», но, оказалось, что я хороший человек.

    Берите ретину! Это офигенно! Это не будет вам мешать верстать никоим образом, для пиксельперфекта нужна не малая плотность пикселя экрана, а ровные руки, растущие из правильного места, и опыт-опыт-опыт. А ретина это прекрасно, верстайте макеты с учетом существования ретины, откройте сайты на ретине, не сделанные под нее — картинки оформления размыты, все фу-фу, а с ретиной вам некуда будет деваться, вы будете верстать под нее, чтобы все было четко, резко. И ваши сайты на galaxy note и на ipad air будут смотреться просто великолепно.

    Но вы, конечно, можете верстать под малые разрешения, не учитывая высокую плотность пикселей устройств, я буду только рада. Больше людей верстают плохо — больше денег я получаю.
    Ответ написан
    5 комментариев
  • Можно ли стилизовать picture?

    Odisseya
    @Odisseya
    Оптимизирую PageSpeed & Performance
    Тег picture не стилизуют и не дают ему классы потому, что в некоторых браузерах стилизация отвалится. Если нужны старые браузеры, IE11 или Opera Mini — стоит стилизовать <img> или блок-обертку.
    Ответ написан
    4 комментария
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    gscraft
    @gscraft
    Программист, философ
    Нет, файл-PHP защищать не нужно, если веб-сервер передает его на обработку PHP-интерпретатору. То есть, если сценарии вообще работают, а не выдается содержимое PHP-файла при запросе по адресу ваш-сайт/action_page.php. Большинство PHP-движков спокойно хранят настройки в PHP-скриптах.

    Однако, если данные очень критичны и есть боязнь сбоя сервера (например, администратор допустит случайную и временную ошибку, открыв доступ к содержимому скриптов, исключив интерпретацию), можете вынести все приватные данные за пределы action_page.php, например, в action_page_handler.php , в свою очередь находящийся за пределами публичной директории, и подключаемый, скажем, как require __DIR__ . '../../scripts/action_page_handler.php'; (и это будет единственная строчка в action_page.php, которую кто-либо когда-либо сможет увидеть).
    Ответ написан
    Комментировать
  • Нужно ли защищать обработчик формы (PHP файл) от прямого доступа?

    Ninazu
    @Ninazu
    1. Создай единую точку входа, и оставь ее в корне сайта, остальные файлы вынеси за пределы (Это не только сделает твое приложении более гибким, понятным, и структурированным, но и в случае отваливания веб сервера, такое когда-то у меня было, после кривого обновлении до php7, исходный код показывался браузером)
    2. Не забудь про SQL иньекции. Никакой конкатенации или вставок PHP. Только плейсхолдеры и байндинг
    3. Если есть возможность загружать файлы, нужно исключить возможность исполнения в этой папке.
    Ответ написан
    3 комментария
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

    Я учился на конкретных задачах. Обучение практически всегда начиналось с состояния хочу сделать вот это (четко осознаваемый конечный результат), но вообще понятия не имею как это делать, и даже с какой стороны подойти и за что хвататься...

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

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

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

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

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

    О даа, детка, хороший программист имеет нереальную оперативную память, в которой умудряется держать десятки и сотни ключевых аспектов контекста задачи, учитывать их особенности, взаимное влияние (комбинаторика), и пр., без чего никакая задача никогда решена не будет.

    С этим не рождаются, это выкристаллизовывается за сотни и тысячи часов жесткого баттхерта от неспособности найти, где ты забыл поставить запятую... Когда код из 10 строк прочитан сотни раз вдоль, поперек и наискосок...

    Только так, только жесткий хардкор! Если ты не прошел эту фазу, то ты либо родился гением, либо тебе нечего делать в профессии... Это как детские болезни - ими нужно переболеть в детстве.

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

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

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

    victory_vas
    @victory_vas
    idangero.us/swiper он идеален. Есть всё, что только может понадобится, в т.ч. вертикальный скролл
    Ответ написан
    1 комментарий
  • Достаточно ли использовать подготовленные запросы PDO PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    тут у вас в кучу кони и люди...
    Препаред стэйтментс защищают запросы от инъекций на уровне драйвера, но кроме этого есть еще логика приложения и типы данных, где эти переменные тоже должны соответствовать какому-то критерию, например если в массиве будет строковая переменная, а в базе поле под нее интежер мы падаем с ошибкой базы, а не обрабатываем на уровне приложения, где можно внятно ее обработать и отдать пользователю четкую ошибку.
    Соответственно проверка данных как минимум на типы должна проводиться на уровне приложения.
    Ответ написан
    Комментировать
  • Как на PHP в консоли WINDOWS получить кириллический текст, введенный с клавиатуры?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    <?php
    // КОДИРОВКА В КОТОРОЙ НАПИСАН СКРИПТ
    ini_set('default_charset','UTF-8');
    mb_internal_encoding('UTF-8'); 
    
    // ВЫВОДИТЬ НА КОНСОЛЬ
    mb_http_output('IBM866');
    ob_start("mb_output_handler"); 
    
    
    // ДВОЙНАЯ ПЕРЕКОДИРОВКА . ТАК КАК ТУТ ОНА НЕПРАВИЛЬНО РАЗОБРАНА PHP
    $a = iconv('IBM866','UTF-8',iconv('CP1251','IBM866',$argv[1]));
    
    // РУССКИЕ АРГУМЕНТЫ
    echo "\nпроверка: ".$a;
    Ответ написан
    4 комментария
  • Почему гугл и яндекс не сделали свои главные страницы в виде pwa?

    @stratosmi
    Незачем.

    PWA предполагает что в браузере остается работать некая часть кода сайта, берущая на себя частично серверный функционал.

    Но зачем это поисковику?
    Какой там будет функционал?
    Как вы себе представляете без сети поисковик?

    А, скажем, для почты того же Google некоторый смысл в этом есть и они используют PWA для GMail. Также и для Youtube. И mail.ru использует.
    В Firefox в этом можно убедиться вбив в строке адресной
    about:serviceworkers
    Ответ написан
    3 комментария
  • Какие по вашему мнению самые удобные решения для параллельной работы с несколькими эккаунтами на одних и тех же сайтах?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Гугл как бы поддерживает возможность одновременной авторизации в нескольких аккаунтах. У меня так рабочий и домашний аккаунты в gmail открыты постоянно.

    На счет яндекса не уверен но вроде бы было и у них подобное.
    Ответ написан
    2 комментария
  • Sublime Text 3, автоматический выбор Build System?

    Можно задать горячие клавиши для тех builds (далее также «билдов» и т. п.), которыми пользуетесь.


    1. Собственные builds

    PreferencesKey Bindings - User. Если прежде не использовали собственные хоткеи, вставляем такой код:

    [{ "keys": ["ctrl+alt+b"], "command": "build", "args": {"build_system": "Packages/User/SashaIsMyIdol.sublime-build", "variant": "" }]

    Когда же уже приходилось вписывать хоткеи в этот файл с синтаксисом JSON, [квадратные скобки] нужно ставить только в начале и конце, но не между командами, перечисляемыми через запятую. Пример файла:

    [
    // Clickable URL — открыть URL, на которую наведён курсор
        { "keys": ["alt+enter"], "command": "open_url_under_cursor" },
    // Открыть PowerShell
        { "keys": ["ctrl+7, ctrl+t"], "command": "open_terminal" },
    // Наш Build
        { "keys": ["ctrl+alt+b"], "command": "build", "args": {"build_system": "Packages/User/SashaIsMyIdol.sublime-build", "variant": "" }
    ]

    keys — произвольный, но незанятый шорткат,
    build_system — путь к файлу Вашего билда с расширением .sublime-build, начиная с папки Packages.

    Нажимаем горячие клавиши, — в примере это Ctrl+Alt+B, → build должен запуститься.


    2. Builds по умолчанию

    Принцип тот же: задать горячие клавиши в файле Key Bindings - User. Нужно ещё узнать, где лежат файлы билдов.

    Положим, мы работаем с Ruby. Ctrl+Shift+PPackageResourceViewer: Open Resource (благодаря fuzzy-поиску достаточно ввести prv) → RubyRuby.sublime-build. В title страницы смотрим путь к файлу билда, его и вписываем:

    { "keys": ["ctrl+7, ctrl+b"], "command": "build", "args": {"build_system": "Packages/Ruby/Ruby.sublime-build", "variant": "" }},

    Аналогичным образом находим пути к builds для остальных языков программирования: для Python это Packages/Python/Python.sublime-build, у плюсов Packages/C++/C++ Single File.sublime-build.


    3. Альтернативный вариант

    Сначала у меня не срабатывал из-за опечатки автора книги Sublime Text Power User.

    Делаем так, чтобы когда у нас были открыты файлы для Python, например, с расширением .py, запускался бы Build Python, файлы для C++, например, с расширением .ex — соответственно, для C++. В файле вашего билда с расширением .sublime-build необходимо добавить параметр selector, значением которого будет являться общая для вашего языка разметки/программирования или инструмента программирования часть т. н. «области видимости» (scope). Как получить области видимости, подробно расписано тут. Нам нужно только то, что до первого пробела; допустим, если мы получили
    source.python meta.function.python entity.name.function.python
    , необходимо будет подставить только source.python . Пример билда для Python:

    {
        "cmd": ["python", "-u", "$file"],
        "file_regex": "^[ ]*File
    
    quot;(...*?)
    
    quot;, line ([0-9]*)",
        "selector": "source.python"
    }

    Для C++:

    {
    	    "cmd": ["g++", "$file", "-o", "$file_base_name", "-I/usr/local/include"],
    	    "selector": "source.c++",
    	    "windows": {
    	       "cmd": ["cl", "/Fo${file_path}", "/O2", "$file"]
    	    }
    	}


    Спасибо.
    Ответ написан
    Комментировать
  • Как добавлять сайты в open server?

    Symphony
    @Symphony
    1. Идем в папку openServerdomainsсоздать папку(название вашего домена, напр: mysite.loc) ► Перезагрузить OpenServer
    2. В адресной строке набираем httр://mysite.loc
    Ответ написан
    2 комментария
  • Где большие чаты рускоговорящих web-разработчиков?

    AterCattus
    @AterCattus
    Люблю быстрый backend
    Для golang: регистрация тут (4gophers.ru/slack), сама слака тут (https://golang-ru.slack.com/).
    Сейчас там чуть больше 700 человек.
    Ответ написан
    Комментировать