Задать вопрос
  • Пробел, + или %20?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Обычно + находится в запросе (после ?), а %20 где угодно.
    т.е. вот так допустимо
    site.ru/path%20name/?query=hello+world
    и так
    site.ru/path%20name/?query=hello%20world
    но не так
    site.ru/path+name
    Ответ написан
    Комментировать
  • Проблема с переходом на https, как решить?

    opium
    @opium
    Просто люблю качественно работать
    у вас настроен редирект с https на http
    потом вы добавляете редирект с http на https
    а у вас уже настроен редирект с https на http и по кругу вы гоняете пользователя
    думаю решение очевидно
    Ответ написан
    Комментировать
  • Скрипт JS не подгружается при загрузке сайта, но работает при взаимодействии. Как исправить ошибку?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Не хочется лезть в дерби калькулятора (ибо исходники ужасны, без обид). Могу только предложить костыль (как и весь калькулятор), это вызвать триггер изменения на выбранные галки (что должно было делаться еще в коде калькулятора, но не в таком виде).
    Куда нибудь засуньте
    $(document).ready(function() {
       $('.calc_left input:checked').change()
    });
    Ответ написан
    Комментировать
  • Скрипт JS не подгружается при загрузке сайта, но работает при взаимодействии. Как исправить ошибку?

    @Qeemerc
    Frontend developer
    Ну, просто при загрузке страницы добавьте вручную нужным элементам (которые якобы по умолчанию)
    style="display: block"
    В вашем варианте при дефолтных:
    $(document).ready( function() {
    $('#gift_a3').css('display', 'block');
    $('#gift_a4').css('display', 'block');
    })


    Либо, так как просто подключена библиотека jQuery, при загрузке страницы лучше имитировать клик на Элитный/Капитальный. Ну, вот такой костыль, если не хочется искать ошибку.
    Ответ написан
    Комментировать
  • Как дату перевести в unix (moment js)?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Ну так и пишите - unix - вместо format:

    moment().add(1, 'months').date(10).unix()
    Ответ написан
    3 комментария
  • Валидация форм и отправка по ajax?

    @hakkol
    https://jqueryvalidation.org/validate/ submitHandler вам в помощь
    Ответ написан
    Комментировать
  • Как сделать движение елемента от точки х,у к точке х2,у2?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Эта формула называется "Уравнение прямой по двум точкам": bfy.tw/IpD1
    Ответ написан
    1 комментарий
  • Запись в файл данных.?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    А что
    file_put_contents($log_file, $string, FILE_APPEND);

    уже не модно?
    Ответ написан
    2 комментария
  • Запись в файл данных.?

    spbdimka
    @spbdimka
    Эникей
    Открываем мануал
    php.net/manual/ru/function.fopen.php

    смотрим аттрибут и ставим вместо w a
    Ответ написан
    Комментировать
  • Правильно ли так работать с git и phpStorm?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    1. Вести разработку вне системы контроля версий - зло;
    2. Править прод - зло;
    3. Не уметь писать тесты с моками - горе.
    Ответ написан
    Комментировать
  • Как в jquery вывести именно тот data атрибут по которому щелкнули?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Где и что надо получить:

    const containerSelector = '.va-city-list';
    const key = 'city';
    const attr = `data-${key}`;
    const attrSelector = `[${attr}]`;
    const itemSelector = `${containerSelector} ${attrSelector}`;

    Как достать из элемента значение атрибута:

    const getVal = el => $(el).data(key);
    // или
    const getVal = el => $(el).attr(attr);
    // или
    const getVal = el => el.dataset[key];
    // или
    const getVal = el => el.getAttribute(attr);
    // или
    const getVal = el => el.attributes[attr].value;

    Слушать клики можно непосредственно на элементах, содержащих атрибуты:

    $(itemSelector).click(e => console.log(getVal(e.currentTarget)));
    
    // или
    
    document.querySelectorAll(itemSelector).forEach(function(n) {
      n.addEventListener('click', this);
    }, e => console.log(getVal(e.currentTarget)));

    Или можно назначить обработчик клика один раз - общему предку элементов:

    $(containerSelector).on('click', attrSelector, function() {
      console.log(getVal(this));
    });
    
    // или
    
    document.querySelector(containerSelector).addEventListener('click', e => {
      const el = e.target.closest(itemSelector);
      if (el) {
        console.log(getVal(el));
      }
    });
    Ответ написан
    Комментировать
  • Что такое тестирование sql запросов?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    я бы для начала почитал про чудо-команду EXPLAIN
    Ответ написан
    1 комментарий
  • Как правильно тюнить конфиги БД, распределять ресурсы?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Здесь по инструкции только под Postresql выделяется все 100% ОЗУ, такой конфиг подойдет разве что если на сервере будет только постгрес крутится и не более.

    Именно так. Потому что вы читаете про highload. Под СУБД выделяется отдельный физический хост, плюс ещё парочка таких же под реплики. И уж явно не с механическим io. highload СУБД на HDD не бывает уже очень давно.

    Проставьте оба конфига из расчёта 16гб памяти. Всё равно упрётесь в диски. Да и в CPU тоже упрётесь.
    Если вы поставите shared_buffers в 25% ram, и innodb_buffer_pool_size в 80% - то у вас запустится банально только одна из баз. Ну или буфер перманентно в свопе будет, что в общем-то ещё хуже.
    Кстати, надеюсь, вы по крайней мере проверяете смысл изменяемых настроек. Чтобы не было интересных сюрпризов вроде сделали всю базу на myisam, а крутите innodb_buffer_pool_size
    Ответ написан
    Комментировать
  • Какой выбрать таскменеджер для одного человека?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    контролировать время, которое я трачу на те или иные задачи


    С описанием — те, которые опробованы мною.

    • https://Toggl.com — отдельный софт в трее, расширение под хром, приложение на андроид. Интеграция с кучей сервисов (трело, асана и т.д.). Хоткеи тоже есть. Бесплатного тарифа вполне достаточно. автотрекинг
    • https://RescueTime.com - только в автоматическом режиме логирует, в каких приложениях/сайтах проводите время, и выводит подробную статистику. Бесплатного аккаунта хвататет за глаза.
    • https://TimeDoctor.com — платный. Есть отдельный софт в трее, хоткеи. Интеграция с кучей сервисов.
    • https://pomelloapp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее не сидит, простенький бар поверх всех окон
    • https://PomoDoneApp.com — простой помидоро-трекер, интеграция с трелло. Хоткеи есть, в трее показывает таймер с обратным отсчетом времени.
    • https://tmetric.com — простой трекер, интеграция с трелло, есть десктопное приложение, помидорок нет. Хоткеи есть, сидит в трее
    • https://www.timecamp.com — есть куча интеграций, расширение хром, приложение в трее, автотрекинг
    • https://ManicTime.com - мощный стэндалон тайм-трекер. Очень гибкий в настройках, сидит в трее, есть хоткеи, разные типы таймеров. Платный. Статья danila.org.ua/otrabotannyie-chasyi-moy-podhod
    • https://toptal.com/tracker/
    • ○ Grindstone https://www.epiforge.com/grindstone/
    • https://www.primaerp.com
    • https://tahometer.com
    • https://aTimeLogger
    • https://myhours.com
    • https://wakatime.com
    • savemytime.co

    Статьи
    Ответ написан
    1 комментарий
  • Как сделать такой счётчик на js?

    @Mysterion
    Генерируемое случайным образом число на клиенте будет у всех разное, если не совпадет таким же случайным образом.
    Чтобы было одинаковое, нужно на сервере генерировать число, куда то сохранять и отдавать клиенту.
    Ответ написан
    Комментировать
  • Что такое CRUD-приложение, и для чего он нужен?

    oxyberg
    @oxyberg
    Продуктовый дизайнер ВКонтакте
    via wiki:
    CRUD (сокр. от англ. create, read, update, delete — «создать, прочесть, обновить, удалить») — акроним, обозначающий четыре базовые функции, используемые при работе с персистентными хранилищами данных[1]:
    • создание;
    • чтение;
    • редактирование;
    • удаление.


    По всей видимости, приложение должно обеспечивать 4 операции с какой-то сущностью. Очень часто фреймворки могут автоматически генерировать код для таких операций.
    Ответ написан
    1 комментарий
  • Почему вставка в виртуальный dom быстрее вставки в обычный?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вы должны понимать, что когда происходит рендер React компонента происходят следующие вещи:
    1. расчет нового узла Virtual DOM
    2. добавление по полученной Virtual DOM модели элеменов в реальный DOM
    когда же происходит перерендер React компонента, происходит примерно следующие:
    1. расчет новой версии узла Virtual DOM
    2. сверка ее со старой
    3. при необходимости вносятся изменения в реальный DOM

    Поэтому ваш вопрос поставлен некорректно. Если изменить Virtual DOM, не изменив после этого обычный, изменений на Веб-странице вы не увидите. Так как это лишь объект в памяти вашего приложения:
    {
      type: 'ul', props: { 'class': 'list' }, children: [
        { type: 'li', props: {}, children: ['item 1'] },
        { type: 'li', props: {}, children: ['item 2'] }
      ]
    }


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

    Статьи по теме:
    Почему Virtual DOM медленней
    Бенчмарк
    Как работает Virtual DOM
    Как написать ваш собственный виртуальный DOM
    Ответ написан
    Комментировать
  • Каков статус языка Rust в данный момент?

    @freecoder_xx
    Rust развивается стабильно, новые возможности и исправления вводятся с каждым релизом раз в 6 недель. Замеченные баги тоже исправляются оперативно в нерегулярных минорных релизах. Иногда такая динамика развития даже может служить препятствием: многие "живые" библиотеки требуют новой версии компилятора, но не всякая компания способна быстро обновлять его на своих проектах.

    Инфроструктура вокруг Rust хотя и развивается, все равно еще остается сырой. Многие библиотеки, хотя и работают уже достаточно стабильно, все равно в реальном использовании требуют небольших доработок. Если вы готовы форкать на GitHub такие библиотеки и слегка дорабатывать под свои нужды, то я думаю у вас больше никаких особых проблем с использованием Rust в боевых проектах возникнуть не должно.

    Что касается веба - вот тут есть список актуальных компонентов: www.arewewebyet.org

    Какого-то единого сборника лучших практик использования Rust, насколько я знаю, пока нет. Много полезных советов есть в официальной документации (в так называемых Книгах), а также разбросано по разным отдельным статьям. Однако, существуют списки полезных статей, которые помогут найти среди них нужную. Например эти:
    https://github.com/ctjhoa/rust-learning
    https://github.com/brson/rust-anthology/blob/maste...

    В новых проектах Rust используется, и пока тенденция идет на расширение. Вот на этой странице вы можете посмотреть, какие компании используют Rust сейчас и для чего: https://www.rust-lang.org/en-US/friends.html

    Итак, если вы планируете использовать Rust в производстве, готовьтесь вот к чему:
    1. Довольно высокий порог входа в язык. Тут нет особой сложности, просто потребуется практика на языке и поначалу время на следование советам компилятора по устранению постоянно возникающих ошибок компиляции.
    2. Достаточно частые обновления компилятора по добавлению новых возможностей в язык. Это может приводить к тому, что нужная вам библиотека будет требовать свежую версию компилятора.
    3. Сыроватые библиотки. Вероятно, вам придется их слегка дорабатывать под себя.
    4. Rust упрощает сложное, но усложняет простое. Для совсем простых проектов, не требующих высокой производительности и серьезных доработок в будущем, возможно, Rust будет не лучшим выбором.
    Но что вы получите от использования Rust?
    1. Высокую производительность программ, автоматическое управление памятью без сборщика мусора.
    2. Высокую надежность и защищенность программ, устранение большого количества потенциальных проблем на этапе компиляции.
    3. Достаточно легкий и безопасный процесс рефакторинга и доработки программ, благодаря развитой системе типов.
    4. Развитую систему управления зависимостями проекта.
    5. Действительно хороший универсальный инструмент: Rust подойдет и для прототипирования, и для разработки, причем для любого типа программ (утилиты, настольные приложения, веб-приложения, мобильные приложения, встраиваемые системы). Хорошая поддержка пока еще есть не для всего, но на перспективу - это большой плюс.
    Ответ написан
    7 комментариев
  • Как находить и участвовать в проектах на гитхаб?

    sim3x
    @sim3x
    Делаете работу
    В процессе находите ошибку в стороннем коде
    Находите ее источник
    Пишите багрепорт и тесткей
    Так как всем пофиг
    Сами фиксите баг
    Неделю стучитесь мейнтейнеру, чтоб он принял ваш пушреквест
    Он вас посылает, тк ето не баг
    Ответ написан
    10 комментариев