• Как удалить все субдомены сайта из выдачи Яндекс и google, и запретить индексировать субдомены в дальнейшем?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    https://support.google.com/webmasters/answer/93710...

    вылетает моментально, да так что назад устанешь возвращать
    Ответ написан
    Комментировать
  • Где взять готовую базу автомобилей (марки/модели/годы выпуска)?

    svistiboshka
    @svistiboshka
    живые веб интерфейсы
    Ответ написан
    Комментировать
  • Почему в логах nginx мне пишет (13: Permission denied) при выполнение php-скриптов?

    @Mexof
    Посмотрите в /etc/nginx/nginx.conf (может в CentOS другой путь, не знаю) строку "user nginx;", должна так называться. Её стоит изменить на user www-data; И дать права группе www-data на Ваш сайт:
    chown -R user:www-data /path/site - где user - имя вашего пользователя, /path/site - путь к сайту.
    Ответ написан
    2 комментария
  • Почему в логах nginx мне пишет (13: Permission denied) при выполнение php-скриптов?

    @Blumfontein
    Пусть my_user - тот, юзер, в директории которого работает сайт.

    1) В nginx.conf ставьте

    user my_user; # вместо user nginx;

    2) В php5/fpm/pool.d/www.conf

    # Найдите и исправьте на
    user = my_user
    group = my_user
    listen.owner = my_user
    listen.group = my_user


    3) Перезапуск nginx и fpm. Далее на папку /var/lib/nginx/tmp руками ставьте права 0700 на пользователя my_user

    chown -R my_user:my_user 0700 /var/lib/nginx/tmp

    4) PROFIT
    Ответ написан
    Комментировать
  • Когда использовать useCallback, useMemo и useEffect?

    @LEXA_JA
    useEffect - это хук, который позволяет использовать сайд эффект. В классах его аналогом было использование componentDidMount, componentDidUpdate и componentWillUnmount. В нем можно делать подписки, отправлять запросы управлять анимацией и т. д.
    const [data, setData] = useState(null);
    
    useEffect(() => {
      const controller = new AbortController()
      fetchData(controller.signal).then(setData)
    
      return () => controller.abort()
    }, [fetchData, setData])


    useCallback и useMemo предназначены для оптимизации. useCallback получает на функцию и массив аргументов, и возвращает одну и туже функцию, до тех пор, пока аргументы не изменились. useMemo отличается тем, что он возвращает не саму функцию, а результат её выполнения. По большому счету они являются взаимозаменямыми.
    Таким образом, useMemo используется для сохранения результатов тяжёлых вычислений, например обработка массива.
    const data = useMemo(() => array.map(mapper).filter(predicate).reduce(reducer), [array])

    А useCallback используется, когда важна постоянность ссылок на функцию. Например, когда мы передаём ссылку в компонент, который использует React.PureComponent или React.memo, или, когда функция используется в качестве аргумента в других хуках
    const handler = useCallback(() => {
      // что-то сделать 
    }, [])
    
    useEffect(() => {
      handler(value)
      // если не использовать useCallback, эффект будет срабатывать постоянно 
    }, [handler, value])
    Ответ написан
    1 комментарий
  • Похожие товары - какая логика реализации?

    shogunkub
    @shogunkub
    Программист+Инженер-электронщик
    Помимо перечисленного - можно прикрутить тегирование, и выдавать товары с совпадающими тегами (больше одного совпадения, сортировать в порядке уменьшения количества совпадений). Но нужно, ествественно, тогда ещё удобный инструмент для редактирования списка тегов изобретать.
    Ответ написан
    Комментировать
  • Похожие товары - какая логика реализации?

    kawabanga
    @kawabanga
    - Самый простой вариант
    Предлагать товары из той же категории. Просто, Жирно, Функционально.

    - Посложнее
    Из той же категории, но с учетом цены.

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

    - Изврат
    Для каждого товара назначать похожие вручную. Видел в CMS как то такую реализацию.

    Способов много, только вам выбирать, что именно вам хочется.
    Ответ написан
    Комментировать
  • Похожие товары - какая логика реализации?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    В 3 этапа.
    1. Ближайшие цифровые характеристики у имеющихся товаров относительно отсутствующему: каждая по-отдельности вверх и вниз, формирование списка с весами релевантности.
    2. Подстановка текстовых переменных и поиск по списку (из п.1) с использованием алгоритма расстояния Левенштейна с формированием СВОЕГО списка весов релевантности.
    3. Объединение этих двух списков с суммированием весовых показателей и последующей сортировкой по весовым значениям: самый максимальный вес - будет самым похожим товарозаменителем.
    PS: если у Вас в БД: "желтый", "yellow", "песочный", "sand", "светло-жёлтый", "светлый песок" - то тут Вы должны использовать синонимайзер, написанный вручную для использования до п.2.
    Ответ написан
    Комментировать
  • Какие ограничения накладывает Apache License, Version 2.0 для шрифта при печати?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Из области рассуждений и анализа западных источников:

    - The Apache License is a free software license that does not require the same license of derivative work. This means that code under the license can be used in open, free and proprietary software (like the MIT and BSD licenses).

    Перевожу в общих чертах:
    - Данная лицензия не требует использование этой же лицензии для деривативов. Это означает, что можно использовать как в бесплатных / open source продуктах, так и в коммерческих.

    Уже хорошо.

    - It imposes the conditions that in any licensed file, all original copyright, attribution and trademark notices must be preserved. Additionally, with any modified work, a notice of change must be included. Any existing notices of change must also be kept. All of these notices must be distributed in a text file and in the source code or documentation.

    Краткий перевод последнего предложения:
    - Все эти уведомления должны быть в прилагаемом текстовом файле, открытом коде или документации.

    Вот это уже интересно.

    Из этого следует:
    - сам шрифт мы не модифицируем и не редистрибьютим (мы же вместе с буклетом шрифт на флешке не раздаем).
    - соответственно, мы его только ИСПОЛЬЗУЕМ для производства продукции (то есть, для изготовления макета на конкретном компьютере), что лицензией позволено. Если будем передавать макет в печать - передадим полиграфистам и сам шрифт вместе с лицензией. Все законно.
    - Для полного спокойствия где-нибудь можно добавить упоминание. Например, если на печатном материале (буклете, книге и т.д.) есть место где-то там где копирайты, добавить упоминание, что шрифт такой-то + лицензия такая-то. Думаю, не обязательно даже ставить ссылку на лицензию. В книгах, например, так делают. Если же это макет визитки, то нафиг жти упоминания. Также, если есть сайт-портфолио, в котором будет размещена данная работа, там же в описании можна добавить упоминание шрифта и лицензии + поставить гиперссылку на саму лицензию.

    По мотивам:
    www.smashingmagazine.com/2011/06/14/understanding-...
    typophile.com/node/99972
    Опять же, из многолетнего опыта работы арт-директором в РА - использовали в работах как коммерческие (легально купленные), так и бесплатные шрифты (с разными лицензиями, в том числе Apache). Не заморачивались. Вопросов и тем более проблем не возникало :)
    Ответ написан
    3 комментария
  • Как использовать useStore, useSelector, useDispatch hook?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    1. useDispatch - получение функции store.dispatch в компоненте. Раньше для вызова action функциональный компонент приходилось оборачивать в вызов connect:
    const Foo = ({ dispatch }) => {
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default connect()(Foo);


    Сейчас:
    const Foo = () => {
      const dispatch = useDispatch();
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} />
      );
    };
    
    export default Foo;


    2. useSelector - маппинг значения из store.
    Раньше:
    const Foo = ({ value }) => {
      return (
        <Bar value={value} />
      );
    };
    
    const mapStateToProps = state => ({
      value: state.value,
    });
    
    export default connect(mapStateToProps)(Foo);


    const Foo = () => {
      const value = useSelector(state => state.value);
    
      return (
        <Bar value={value} />
      );
    };
    
    export default Foo;


    3. useStore - получение store целиком:
    const valueSelector = state => state.value;
    
    const Foo = () => {
      const { dispatch, getState, subscribe } = useStore();
      const value = valueSelector(getState());
      
      useEffect(() => subscribe(console.log), []);
    
      const handler = useCallback(() => {
        dispatch(action());
      }, []);
    
      return (
        <Bar onClick={handler} value={value} />
      );
    };
    
    export default Foo;

    Вряд ли useStore вам, действительно, понадобится на практике.
    Ответ написан
    Комментировать
  • Полноценный пример SSR для react/redux?

    Да состояние собирается на сервере для каждого клиента (request'a), скажем на уровне мидлвара мы собираем состояние (текущего авторизованного пользователя, какие-то другие глобальные данные), далее отрабатывает обработчик маршрута, мы получили данные какой-то страницы из бд и передали их как контекст, примерно так:
    import React from 'react';
    import { StaticRouter } from 'react-router'
    import { Provider } from 'react-redux'
    import ReactDOMServer from 'react-dom/server';
    
    import App from './client/components/App.jsx'
    
    ReactDOMServer.renderToString(
    	<Provider store={ReduxStore}>
    		<StaticRouter
    			location={Url}
    			context={Context}>
    			<App/>
    		</StaticRouter>
    	</Provider>
    );

    Где, ReduxStore сгенерированное нами глобальное состояние (redux) запроса, Url запрошенный урл, Context контекст (будет передано как this.props.staticContext в компонент). Реакт вытянет нужный контейнер роута (по вашим маршрутам в App) и передаст ему контекст, компонент рендерится исходя из полученных данных. Результатом работы метода renderToString будет html строка (размеченная реактом), которую мы шаблонизатором или как угодно впиливаем в блок моунта компонента (в верстке), дополнительно в шаблонизатор передаем сгенерированное состояние, в документации выглядит вот так:
    window.__PRELOADED_STATE__ = JSON.stringify(preloadedState || {}).replace(/</g, '\\u003c')

    Теперь что происходит после того как страница загрузилась и подхватились клиент-скрипты? Все просто мы подхватываем состояние из window.__PRELOADED_STATE__ и вообщем-то все, глобальное состояние передано, компонент уже отрендерен, стоит учитывать что результаты при клиент-рендере и при сервер-рендере должны быть всегда одинаковыми, так же не использовать методы доступные браузеру, но не доступные серверу (на уровне моунта и первого рендера) и хорошенько следить за своим кодом в плане памяти, иначе при какой-либо утечке, память на сервере не будет вычищаться после каждого рендера.
    ---
    Как-то так, надеюсь помог, хотя там еще довольно много заковык
    Ответ написан
    20 комментариев
  • Почему не работает новая phpmyadmin на русском языке после обновления на денвере?

    @romalu Автор вопроса
    Наконец нашел решение. Надо переименовать папку phpmyadmin\locale\ru в ru_RU, после этого в списке языков появится ru_RU, выбрать его, и все заработает. Решение нашел тут https://github.com/crazy-max/neard/issues/241
    Ответ написан
    3 комментария
  • Существует ли аналог "пиэчпишного" PDO для Node.js?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Обычно берут knex вместо PDO. Для Монги берут mongoose.
    Для фильтрации можно поискать какой-нибудь причиндал вроде Swagger. Можно добавить Joi или Hapi для пущей остроты ощущений.
    Ответ написан
    Комментировать
  • Должен ли фронтенд разработчик уметь верстать (css)?

    @ParaBellum577
    Как фронтэндер может обойтись без верстки?... Да я тоже сидел в какой-то момент ничего не верстал около полугода, просто педалил реакт, а потом как-то пришлось опять же пол года тупо верстать. В общем это необходимый навык, я думаю. Без этого от фронта мало толку.
    Ответ написан
    Комментировать
  • Должен ли фронтенд разработчик уметь верстать (css)?

    @abbrakadabbra
    Фронт-энд разработчик не умеющий верстать, это как сантехник, не умеющий починить кран. CSS - это наверное самое легкое, что есть во фронт-энд, так что учите его, иначе вы не можете претендовать на его звание. Тем более на full-stack.
    Ответ написан
    Комментировать
  • Как используется React.js в плане разработки веб-сайта? (Какова его роль)?

    joeberetta
    @joeberetta Куратор тега JavaScript
    Читай: https://epdf.pub/google-for-dummies.html
    Ответ очень грубый и для новичков (опытные разрабы меня оклюют за это но все же)

    Реакт это фреймворк и соответственно задает некие правила разработки фронт части сайта.
    Но если про то как он работает, то вкратце:
    Вы создаете некий компонент в реакте, а он в свою очередь переводит этот самый компонент в тот же самый html код со стилями, и добавляет ему всякие js - интерактивности.
    Сделан для удобства разработки сайтов (чтобы вы не писали сотни строк html, а потом потели и стилизовали это с помощью css, а + ко всему этому, еще и нужно с помощью js задавать какие-нибудь свойства вашему блоку(компоненту), к примеру чтобы при клике на кнопку у вас скрывался блок.

    Что касательно компонентов в реакте, то напоминает классы в ООП. Т.е вы создаете класс(компонент) у него есть свойства и методы. В свойства класса(компонента) вы записываете значения, которые необходимы для построения из этого класса(компонента) уже обычного тега html и его стилизования, а методы класса(компонента) нужны чтобы отрисовать этот компонент и следить за его состоянием

    Чтобы понять (если недоступно описал) то, что я описал ГРУБЫМ языком:
    Статья на Хабре
    Ответ написан
    3 комментария
  • Как используется React.js в плане разработки веб-сайта? (Какова его роль)?

    @kova1ev
    react дает возможность описывать элементы страницы смесью javascript и html. Названа эта технология jsx. И к файлам jsx можно подключать css. То есть, проще говоря, мы в одном файле описываем элемент страницы (называемый компонент) в котором пишем и js и html и еще и css этого элемента туда подключаем. И это не основная возможность реакта, там еще много всего, например обновление компонентов при изменении в данных.

    так что верстка все равно нужна.
    Ответ написан
    Комментировать
  • Кнопка - переключатель на jQuery?

    Вот идея кастомного чекбокса на CSS без всякого JS.
    https://codepen.io/vitiok78/pen/pmbyzE
    Ответ написан
    Комментировать
  • Как взять переменную js?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    var iconN, iconU; //опа!
    $( ".djeym__balloon__content-body .djeym_add_placemark" )
            .on( "click", function( event ) {
              event.stopPropagation();
              var $this = $( this );
              iconU = $this.data('icon_url'); //хоп
              iconN = $this.data('icon_name'); //хоп
              djeymContextMenuPlacemark( mapEvent, true, coords );
            } );
    
    let iconName = ( mode ) ? iconN :
          objEvent.properties.get( "iconName" );
    
    let imgSrc = ( mode ) ? iconU :
          objEvent.options.get( "iconImageHref" );
    Ответ написан
    6 комментариев
  • Как оформить такой input?

    LenovoId
    @LenovoId
    svg, css,js
    Так?
    Ответ написан
    Комментировать