• Стоит ли закрывать поддомены для индексации в robots.txt?

    vabka
    @vabka
    Токсичный шарпист
    Если они не должны индексироваться, то закрывай
    Ответ написан
    Комментировать
  • Возможно ли заниматься 3д моделированием на моем пк?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Вот это было сделано в 2000 году, по моему на целеронах
    https://www.youtube.com/watch?v=G58gFchy-QM&t=47s
    И меня останавливала только девушка которая была в конторе.
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    Adamos
    @Adamos
    от выбора библиотек

    Да, это сложно.
    Надо, во-первых, понять, что тебе вообще надо.
    Потом поискать, как это вообще решается. Сейчас, когда есть гугль и форумы, этот этап стал значительно легче.
    И вот когда перед тобой распахнется все богатство выбора решений и возможностей - не искать самое оптимальное и правильное, а взять первое попавшееся, описание которого тебе в общем понятно. И по этому понятному руководству нарукоблудить кучу говнокода, добиваясь единственной цели - чтобы оно заработало.
    После того, как полученный продукт все-таки запустится и будет удален, кругозор немного изменится, и дальше пойдет легче...
    Ответ написан
    Комментировать
  • Как поставить ограниченное число булетов в swiper-slider?

    @mikhailivanko
    https://swiperjs.com/swiper-api
    Параметр dynamicMainBullets

    var swiper = new Swiper(".mySwiper", {
            pagination: {
              el: ".swiper-pagination",
              dynamicBullets: true,
              dynamicMainBullets: 4
            }
          });
    Ответ написан
    3 комментария
  • Доход от мобильных приложений для одиночки?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    и человек заработал миллионы, в интернете не так уж много информации именно о обычных разработчиках, не топ счастливчиках

    Такие счастливчики не пишут о своих успехах и своих доходах. Деньги любят тишину.
    Ответ написан
    Комментировать
  • Какой можно применить алгоритм для хранение индекса для 50 миллиардов записей в golang?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Немного бухгалтерии. Если взять по максимуму.

    Размер одной записи должен быть порядка 60 + 32 +8 = 100 символов (байт для простоты)

    При 50 млрд записей объем хранимых данных должен быть порядка

    50 000 000 000 * 100 = 5 000 000 000 000 = 5 триллионов байт.

    В дисковом хранении это будет примерно 4.5 терабайта. Задачка для in-memory неподъемная. Нужен диск + мемори.

    Если я там где-то ошибся в расчетах - то только в средних значениях. Если подставить не максимумы а среднее - то цифры будут поскромнее. Но в любом случае - многовастенько для покупки памяти.

    Вобщем нужна дисковая БД которая встраивается в приложение. На требование менеджеров которые запретили использовать БД забейте. Они ничего не понимают. Делайте БД встраиваемую в приложение. В качестве таких (встраиваемых систем можно поробовать) LevelDb, BerkeleyDb, RocksDb. Они поддерживают индекс класса B+Tree и это даст возможность искать группы записей по одному ID. Для этого класса систем любую запись можно найти за 4-5 дисковых IOPS. Если какдый IOPS стоит 15 мс (это я так мерял свой собственный магнитный HDD) то любой поиск группы ключей для TTFB будет порядка 15 * 5 = 75 милисекунд. Ну если вы поставите SSD - то быстрее.

    По поводу предложений хранить в файлах. До того как обсуждать это - надо уяснить требования по времени отклика. Сколько секунд вы согласны ждать - насколько можно и партицировать (или шардировать ваш файл).
    В простейшем случае мы делим большой CSV файл на 512 partitions по хешу от ID и получаем соотв время фулл-скана всего файла поделенное на 512. Дальше - играйтесь с этим параметром партишенинга выводя его на доступный уровень отклика. Из недостатков - будет россыпь файлов. Надо почиать документацию на вашу файловую систему (ext4?) и тюнить ее так чтоб она не сдохла от такого числа inodes.

    Я поддержу оба сценария. И с встраиваемой БД и с файлами. Но с БД надежнее т.к. есть транзакции а файлы у вас могут быть в крешнутом состоянии долго. И вы об этом ничего знать не будете.

    По поводу Parquet. Не взлетит. Скорее всего индекс по данному типу файла - это совсем не то что вкладывают туда релационные системы. Обычно Parquet/Orc/Delta вкладывают в индекс смысл - отбрасывания тех полосок данных (stripes) которые бесполезны при чтении всего файла. Такой индес - обычно просто либо range-признак либо карта Блума. И в случае с range - дает эффект на сортированных данных. Для прочих - будет бесполезно т.к. фулл-скан все равно обеспечен. А если фулл-скан то зачем тогда вообще индекс.

    Вобщем для дизайна архитектуры нам нужны цифры. Средние длины по колонкам. И я-бы еще запросил кардинальность по полю ID.
    Ответ написан
    7 комментариев
  • Что важно в процессоре больше для программирования, тактовая частота или количество ядер?

    @rPman
    Последние 10 -15лет частота не является определяющим параметром (ее потолок уже достигнут). Важными параметрами являются размер кеша процессора и количество ядер (последнее не сильно актуально для разработчика, за исключением c++ разработчиков, которым приходится пересобирать такие крупные проекты как например chromium). К сожалению, так как обычно кеши процессора делятся на ядра, чем больше этих ядер тем меньшее значение имеет очередное увеличение его размера. Так для современных процессоров кеш меньше 16мб..32мб - уже маленький.

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

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

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

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Можно начальный индекс вырезания подстроки менять, и часы забирать только когда длиннее часа:
    -    console.log(new Date(media.duration * 1000).toISOString().slice(11, 19));
    +    console.log(new Date(media.duration * 1000).toISOString().slice(media.duration > 3600 ? 11 : 14, 19));
    Ответ написан
    1 комментарий
  • Почему в FormData попадает не весь список form?

    Alexandroppolus
    @Alexandroppolus
    кодир
    У четвертого поля формы нет аттрибута name, потому он не в игре.
    Ответ написан
    Комментировать
  • Как выбрать все элементы, кроме последнего и предпоследнего?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Еще, как вариант, можно делать "-n+k" и выбирать все, кроме последних k элементов:
    .item:not(:nth-last-child(-n+2)) {
        /* ... */
    }
    Ответ написан
    Комментировать
  • Как сделать такие линии по всему экрану (в ширину) в css не прописывая миллионы или?

    hahenty
    @hahenty
    ('•')
    Легко ищется поисковиком.
    Ответ написан
    Комментировать
  • Как сделать изменение цвета текста при скролле?

    RAX7
    @RAX7
    Ответ написан
    Комментировать
  • Стоит ли адаптировать сайт под IE 10 в 2022-м году?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Под такие верстать, которые клиент заказывает.
    Ответ написан
    Комментировать
  • Стоит ли адаптировать сайт под IE 10 в 2022-м году?

    vabka
    @vabka
    Токсичный шарпист
    Верстать под те, которые нужны заказчику.
    Если заказчик не знает и вроде не должно, то под IE можно не верстать.
    Кому-то может даже IE6 всё ещё нужен
    Ответ написан
    Комментировать
  • Стоит ли адаптировать сайт под IE 10 в 2022-м году?

    bingo347
    @bingo347
    Crazy on performance...
    С 15 июня IE в принципе больше не работает, можно не поддерживать.
    Safari как был болью похлеще IE, так ей и остается.
    А так подавляющее большинство браузеров сегодня основаны на Chromium, ну и Firefox еще есть немного.
    Ответ написан
    Комментировать
  • Какую книгу прочитать по JavaScript со средним уровнем знания js?

    black1277
    @black1277
    Вольный стрелок
    Прочитайте серию книг "Вы пока еще не знаете JS" Кайла Симпсона, есть издания 2022г.
    Ответ написан
    Комментировать
  • Как исправить разметку?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    :first-child почему не подходит?

    Возможно это:

    https://codepen.io/delphinpro/pen/ZExbQdV?editors=1100
    Ответ написан
    5 комментариев
  • Существует ли способ узнать об изменении состояния анимации?

    RAX7
    @RAX7
    Через Animations API можно посмотреть на свойство playState в какой-то конкретный момент времени, но какого-то события для этого нет.
    Можно состряпать собственный костыль на основе Animations API и requestAnimationFrame.

    Но проще и лучше будет запускать анимацию не по css hover, а из js - этот способ избавит от ненужных костылей.
    Ответ написан
    Комментировать
  • Как он узнает, что (3, 5) - это arguments?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    arguments - это массив массиво-подобный объект аргументов, всегда присутствующий в функции (кроме стрелочных).
    Тут используется декоратор – функция-обёртка над другой функцией.
    Изначальная функция worker.slow()оборачивается в новую функцию-декоратор. Декоратор выполняет некую работу, вызывает оригинальную функцию, с ее результатом может выполнить еще какую-то работу, и возвращает итоговый результат.

    После выполнения этой строчки
    worker.slow = cachingDecorator(worker.slow, hash);
    в worker.slow у вас уже не оригинал, а декоратор. Т.е. эта функция
    function() {
        let key = hash(arguments); // (*)
        if (cache.has(key)) {
          return cache.get(key);
        }
    
        let result = func.call(this, ...arguments); // (**)
    
        cache.set(key, result);
        return result;
      };


    Именно она выполняется в последней строчке. Сюда передаются аргументы 3 и 5, которые и попадают в зарезервированный массив arguments.

    Можно переписать так, чтобы лучше понять, что происходит:

    function cachingDecorator(func, hash) {
      let cache = new Map();
      return function(arg1, arg2) { // явно указать аргументы
        let key = hash(arg1, arg2); // (*)
        if (cache.has(key)) {
          return cache.get(key);
        }
    
        let result = func.call(this, arg1, arg2); // (**)
    
        cache.set(key, result);
        return result;
      };
    }
    Ответ написан
  • Какие есть хорошие JS библиотеки для отображения оргструктуры?

    black1277
    @black1277
    Вольный стрелок
    Я думаю https://reactflow.dev/ подойдет
    Ответ написан
    Комментировать