Задать вопрос
  • Почему margin-top не работает?

    @Shinso
    Поменяй main.css и reset.css местами а то reset.css тебе все стили перепысивает
    Ответ написан
    Комментировать
  • Если присутствует определённый класс, то к другому контейнеру добавляется ещё класс?

    FeST1VaL
    @FeST1VaL
    Тихий
    У вашего слайдера есть эвенты, подпишитесь на них и при смене слайдера проверяйте какой элемент сейчас is-selected и далее проверяйте какой у вас класс у этого элемента black image итд...

    Я просто не пользуюсь данным слайдером... предпочитаю OWL

    В офф. документации нашел это:
    // jQuery
    $carousel.on( 'change.flickity', function( event, index ) {
      console.log( 'Slide changed to ' + index )
    });
    Ответ написан
    Комментировать
  • В каком классе писать логику столкновений двух объектов?

    hack504
    @hack504
    Нигде. В парадигме ООП и снежинка и варежка и сцена - описывают только свое поведение методами и свойствами. Введите ещё одну абстракцию - мир(или физика), которая содержит все эти объекты и описывает поведение их взаимодействия.
    Сцена детектит столкновение снежинкой и варяжкой - передает миру, а тот в свою очередь удаляет снежинку, запускает анимацию варяжке, запускает в сцене радостный звуковой щелчок.
    Таким образом, если в дальнейшем реализовывать дополнение "Грачи прилетели", то легко реализуется логика столкновения варяжки и помета => помёт остается, варяжка замирает, в сцене грустный звук "ооу"
    Ответ написан
    Комментировать
  • Ошибка при импорте базы данных MySQL?

    @Dizzy221
    PHP Программист
    Измените через автозамену utf8mb4 на utf8 во всем файле-запросе
    Ответ написан
    1 комментарий
  • Когда можно вешать события на элементы?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Как работает ваш пример:
    $('#button1') // — Находит все елементы по селектору, которые в данный момент уже загружены
    .on('click',  // На все найденные елементы навешывается обработчик события
    function() {
      alert('Hi!');
    });


    По большому счету, скрипт, который работает с участком страницы, должен запускаться ПОСЛЕ того, как этот участок страницы будет загружен (в коде html, должен быть выше javascript).

    Конструкция $(document).ready, позволяет не заботится о том, где именно находится ваш скрипт. С её помощью вы как бы говорите "Запусти мой код, когда вся страница будет загружена". И не важно, где сам скрипт находится. Даже если он в шапке, и запускается раньше, чем загрузется непосредственно сам html — его выполнение будет отложено.
    Ответ написан
    2 комментария
  • Объект по умолчанию сортируется по алфавиту?

    potapchino
    @potapchino
    объект не гарантирует порядок ключей

    const obj = {}
    
    obj['z'] = {}
    obj['a'] = {}
    obj['b'] = {}
    
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            console.log(property) // "z" "a" "b"
        }
    }
    
    obj['1'] = {}
    obj['0'] = {}
    for (var property in obj) {
        if (obj.hasOwnProperty(property)) {
            console.log(property) // "0" "1" "z" "a" "b"
        }
    }


    если вам важна упорядоченность, используйте массивы или Map

    const map = new Map()
    
    map.set('z', {})
    map.set('a', {})
    map.set('b', {})
    map.forEach((val, key) => {
      console.log(key) // "z" "a" "b"
    })
    
    map.set('1', {})
    map.set('0', {})
    map.forEach((val, key) => {
      console.log(key) // "z" "a" "b" "1" "0"
    })
    Ответ написан
    Комментировать
  • Объект по умолчанию сортируется по алфавиту?

    KorniloFF
    @KorniloFF Куратор тега JavaScript
    Работаю по font-end / JS
    Можно и в алфавитном порядке ключи объекта перебирать, но сам он их сортировать не обязан по спецификации. Хотя некоторые броузеры и сортируют.
    var o = {a:1, d:4, b:2, c:3};
    Object.keys(o);
    // Array(4) [ "a", "d", "b", "c" ]
    
    var o = {a:1, d:4, b:2, c:3};
    Object.keys(o).sort();
    // Array(4) [ "a", "b", "c", "d" ]
    Ответ написан
    Комментировать
  • Как все время не писать print_r?

    @grinat
    Ответ написан
    Комментировать
  • Как быстро передать 100 Гб между двумя ПК в разных странах?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Я использую NFS на сервере потому что это удобно и достаточно быстро. Если нужно быстрее и инкрементально, то rsync -z (-z флаг компрессии). Так вы уже упретесь в скорость дисков. Если нужно еще быстрее (например у вас SSD в рейде), то быстрее netcat (nc) с компрессией по моему ничего нет
    На macbook в целевом каталоге
    $ nс -l 4444 | tar xzvf -
    (4444 это порт, может быть любой. Порты меньше 1000, корневые каталоги да и вообще nc могут потребовать sudo)
    На Debian сервере в каталоге источников
    $ tar -czf - * | netcat -N адрес.макбука.доменноеимя.илиIP 4444
    Если уж очень нравится UDP добавьте к nc командам флаг -u
    Зачем в двухточечном соединении bittorrent протокол я не понимаю. По моему опыту даже с традиционным rsync вы раньше упретесь в дисковую подсистему. Но с rsync вы получите массу опций, быстрая инкрементая синхронизация малых изменений например и накопленый опыт туториалов, гайдов и мануалов.
    Ответ написан
    2 комментария
  • SEO-оптимизация с нуля. Ничего не забыл?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    1. Добавил и настроил robots.txt
    2. Добавил и настроил сайтмап
    3. Интегрировал протокол schema
    4. Настроил тайтлы, теги, описания
    5. Настроил ЧПУ
    6. Настроены заголовки H1
    7. Реализованы хлебные крошки
    8. Альты у изображений

    SEO не про это. SEO про то как это сделать правильно, что бы получить лучшие позиции в поисковиках.

    Для некоторых проектов SEO вообще не нужно. Но если Вы делаете первый раз - там точно куча проблем. Так что доделайте, покажите, потом будет конкретика. Пока Вам только инфу "не о чем" накидают.
    Ответ написан
    4 комментария
  • Как правильно написать функцию с произвольным числом аргументов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    function setNestedValue(root, ...args) {
      const val = args.pop();
      const key = (args = args.join('.').split('.')).pop();
      args.reduce((p, c) => p[c] = p[c] || {}, root)[key] = val;
    }
    
    
    const obj = {};
    setNestedValue(obj, 'xxx', 'yyy', 'zzz', 69);
    setNestedValue(obj, 'xxx.a.b.c', 187);
    setNestedValue(obj, '_', 666);
    Ответ написан
    Комментировать
  • Какие технологии используют соц.сети и мессенджеры для реализации мгновенных сообщений?

    @stratosmi
    Каким образом в соц. сетях(например в вк) реализована личная переписка?

    Для веб-сайтов есть ограничения на используемые технологии.
    В то время как приложения могут использовать гораздо более широкий спектр технологий. И если мобильные приложение еще в чем-то ограничены, то десктопные вообще не ограничены.
    Там используются вебсокеты?

    WebSocket - это костыль, обход ограничений технологии HTTP.
    Где нет таких ограничений - незачем и этот костыль использовать.
    Отсюда вывод - websocket - для вебсайтов, прежде всего.

    и, если да, то они используются как в десктопной версии сайта, так и в мобильной(мобильном приложении)? Так же интересует реализация переписки в мессенджерах - тоже вебсокеты или что-то более хитрое?

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

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

    Из особенностей мобилок - уведомления Android/iOS могут быть связаны с сообщениям (Телеграм точно их используют)
    Например, уведомление + REST вполне себе дает оперативность. Без WebSocket.

    Ну а для десктопов вообще можно на голом TCP сделать.
    Ответ написан
    3 комментария
  • Нужно ли объединять SQL запросы в один?

    DevMan
    @DevMan
    в общем:
    - боевой код бывает разным: один обрабатывает 100 запросов в час, другой - 1000 запросов в минуту/секунду.
    - запросы тоже бывают разными, и выполняются по-разному; иногда объединение в один может дать профит, иногда нет.

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

    преждевременная оптимизация - зло. рефакторинг - неизбежный спутник программиста (если он не "херак, херак - и в продакшен").
    Ответ написан
    2 комментария
  • Как прослушать исходящий из приложения трафик через python?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    к счастью, гораздо легче, чем вывод из запоя по фотографии

    смотри сюда
    https://docs.telerik.com/fiddler/Configure-Fiddler...
    https://docs.telerik.com/fiddler/Configure-Fiddler...

    при запуске не забудь произнести "Из Питона"

    если мсье любит извращения, можно и так
    Ответ написан
    2 комментария
  • NoSql vs Реляционные СУБД. Как правильно выбрать СУБД, чтобы потом не было мучительно больно?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Пока у вас нет хайлоада - выбирайте то что знаете лучше. Поверьте, лучше работать с привычным иструментом, чем набивать шишки в новом
    Из моих предпочтений:
    - Если у вас предполагается структуризация данных и связи то SQL без вариантов
    - Если у вас базовые аналитические запросы то SQL, но если данных станет овердофига то посмотрите на NoSQL ColumnBased
    - Для кэшированных данных NoSQL Key-Value
    - Если у вас микросервисная архитектура то я бы советовал смотреть больше на NoSQL DocumentType
    Ответ написан
    Комментировать
  • Будет ли php curl при работе через прокси сервер возвращать заголовки ответа прокси сервера?

    DevMan
    @DevMan
    курл - тупо транспорт: что ему выплюнулось по цепочке, то он и вернул.
    другими словами: ответ прокси вполне нормален. если он вас смущает, отфильтруйте его.
    Ответ написан
    Комментировать
  • Почему псевдоэлементы распространяются на дочерние элементы?

    UnluckySerivelha
    @UnluckySerivelha
    Селектор вида .class tag будет действовать на все элементы tag внутри элемента .class в независимости от вложенности.
    Чтобы действовал только на непосредственно первый дочерний элемент, нужно использовать .class > tag
    .menu-item-has-children > p:after
    {
    	content: ' [>]';
    }
    .sub-menu .menu-item-has-children > p:after
    {
    	content: ' [»]';
    }


    Ответ написан
    1 комментарий
  • PHP+JS Трудности с выбором учебно-боевого проекта?

    kosolapus
    @kosolapus
    Если помогло - отмечайте решением
    Привет! Пара наводящих вопросов:
    1.
    кратчайшее время

    речь идет о часах, неделях или месяцах? За пару часов с гуглом реально собрать простецкое CRUD-приложение, которое будет гордо именоваться "100001'ый TODO-list". За пару недель - внимательно прочитать какой-нибудь учебник/справочник/мануал вроде javascript.ru, который расскажет о базовых вещах, но не расскажет о деталях и нюансах. Опять же, только прочитать. Может, выполнить часть тестовых задачек. Если в распоряжении месяцы, можно параллельно читать справочник мозиллы, проштудировать какие-нибудь онлайн курсы и с пониманием инструмента начать работать над проектом. Ну а если кратчайшее время - это пара лет, то велкоме в мир фреймворков, кроссбраузерной гадости и неточных вычислений. Так что для начала советую определиться с временными рамками, в которые хочется уложить проект.
    2.
    Я в этой теме полный нуб

    В теме php/js или программировании в целом? это, скажем так, довольно важный коэффициент для расчета перспектив любого реализуемого проекта)
    3.
    нет лучшего способа
    для начала - читайте мануалы/справочники/стандарты. Это не даст понимания работы всех механизмов языка, но даст сведения о словах, которые будут встречаться в процессе.
    4.
    затребует полноценного базового освоения

    Так полноценного или базового? Базовый, как уже писал выше, собирается в компании с гуглом за час-два, запускается и удаляется нафиг с сервера, т.к. остается унылым шлаком с тысячами повторов на просторах.
    Исключение - это узкоспециализированная задача, которая должна решаться в пару действий и еще не решена, т.к. это нужно узкому кругу людей. Полноценное изучение может и годы занимать - языки-то растут и развиваются, там что у php, что у js уже давно свои собственные экосистемы в виде наростов из фреймворков и библиотек.
    5.
    включить в портфолио

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

    Ну а чтоб портянка не была совсем кучной и оффтопной, вот пара примеров приложений, которые можно запилить на коленке, постараюсь раскидать по степени сложности (сам ничего из этого не делал, поэтому могу упустить какой-нибудь суперважный нюанс)

    0. Одно время работал в караоке, слышал такую просьбу - "хочу приложение, с которым можно будет по столикам планшеты разложить и с каждого столика песни принимать прямо на месте". Это прям задача целиком из мира клиента - ничем нихрена не обозначены границы реализации, возможности и требования к софтине. Ищешь спецификацию на караоке-машину, составляешь себе ТЗ, отрисовываешь дизайн, продумываешь и прописываешь логику, настраиваешь работу сервиса - и хоть ща иди продавай) Задачка простая, но покопаться можно вполне себе.

    Дальше типовое:
    1. TODO-лист. Дрянь редкостная, коих полно. Время изготовления - пара часов под гуглом.
    2. Тест. Чуть сложнее листа, если в примитивном варианте.
    3. Бложек. По уровню сложности - в районе предыдущих, но тут куда больше нюансов, которые придется продумать. Первый шаг в сторону бизнес-логики)
    4. Чатик. Велкоме в асинхронный мир, легкий перелом мозга гарантирован (но все еще просто и полно мануалов по сабжу)
    5. Чатбот а-ля "живосайт" с завязкой на телегу или другой мессенджер. Добавляем бизнес-логике работу с внешними апи.
    6. Сервис по обработке данных. Собери аналитику, которую никто не собирал, обработай и красиво отдай.
    7. Стартапъ. Гугли тренды и пробуй повторить.
    Ответ написан
    Комментировать