Задать вопрос
  • Способ получения ФИО через номер телефона или соц сети?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку это сбор сведений на людей то легального способа скорее всего нет. А если он появляется
    его быстро закрывают. Государство и правозащитники здесь вобщем-то едины. Такие базы не должны
    быть открытыми никогда.

    Базы для "пробива" предположительно лежат во всяких Даркнетах но я ХЗ... не видел никогда.
    Ответ написан
    Комментировать
  • Есть ли копирайт (авторское право) на названия игр?

    Имя является торговой маркой, так что просто так взять название ты никак не можешь.

    Но сам наблюдаю такое постоянно

    То что нарушителя никто не карает - ещё не значит, что он не нарушитель.
    Тем более, что в случае с River Raid прошло уже 40 с хреном лет. - скорее всего регистрация давно закончилась и продлевать её никто не будет (собственно погуглил - и правда не существует торговой марки "River Raid" в сфере компьютерных программ или видеоигр)
    Да и компании Activision уже формально не существует после слияния с Blizzard и Microsoft - им видимо пофигу что кто-то использует название какой-то древней игры.

    Или может там срок давности какой-то есть?

    Ага. Любая торговая марка регистрируется на ограниченное время

    Как понять вообще, что можно что нет с названиями...

    Можно попытаться загуглить какой-нибудь реестр торговых марок типа https://ru.unibrander.com/
    Ещё можно узнать непосредственно у владельца торговой марки, до какого времени она действует и можно ли тебе её использовать )
    Ответ написан
    3 комментария
  • Перенос системы на SSD для использования на другом ноутбуке?

    @klekovkinandrey
    Можно
    делал это программой MiniTool Partition Wizard
    там все просто как 2 пальца
    Ответ написан
    4 комментария
  • Как найти сайты по наличию страницы?

    вот это надо поизучать https://www.freecodecamp.org/news/how-to-google-li...
    особые операторы поиска для гугла называются дорки - Google dorks
    а строка поиска такая inurl:name.php
    Ответ написан
    1 комментарий
  • Как сделать движение за курсором?

    twobomb
    @twobomb
    Чё сложного то, про rotate не слышали?

    p.s. вторую координату нужно брать центр картинки а у меня от края, поэтому чуть криво, ну сами прибавите + width/2 и +height/2...
    Ответ написан
    Комментировать
  • Можно ли тег title использовать в разметке, а не только в head?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    https://html.spec.whatwg.org/multipage/semantics.h...
    Contexts in which this element can be used:
    In a head element containing no other title elements.
    Ответ написан
    1 комментарий
  • Зачем в языке Go приняты отступы в 8 символов?

    Там не 8 символов, там tab. Вы можете настроить в вашем текстовом редакторе размер табуляции в нужное вам количество символов.
    Ответ написан
    Комментировать
  • Как сделать сертификаты для поддоменов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Если портятся сертификаты - лечить нужно причину порчи сертификатов, а не вот это вот все!
    Ответ написан
    Комментировать
  • Как сделать сертификаты для поддоменов?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Let`s Encrypt сто лет как выдаёт wildcard-сертификаты.
    Ответ написан
    Комментировать
  • Как сделать следующий эффект для background?

    Aetae
    @Aetae
    Тлен
    Чуть более сложно чем нужно тебе:



    Упростишь сам, если надо.)
    Ответ написан
    Комментировать
  • Как создать плоский объект из вложенного?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Рекурсия есть:

    const nestedToPlain = (obj, path = '') =>
      Object.entries(obj).reduce((acc, [ k, v ]) => {
        const newPath = `${path}${path ? '.' : ''}${k}`;
        return Object.assign(acc, v instanceof Object
          ? nestedToPlain(v, newPath)
          : { [newPath]: v }
        );
      }, {});
    
    
    const plain = nestedToPlain(example, 'example');

    или

    const nestedToPlain = (obj, keys = []) =>
      Object.entries(obj).reduce((acc, [ k, v ]) => (
        keys.push(k),
        Object.assign(acc, v instanceof Object
          ? nestedToPlain(v, keys)
          : { [keys.join('.')]: v }
        ),
        keys.pop(),
        acc
      ), {});
    
    
    const plain = nestedToPlain(example, [ 'example' ]);

    Рекурсии нет:

    const nestedToPlain = function(obj, keys = []) {
      const result = {};
      const [ push, pop ] = this;
    
      for (const stack = [ obj ]; stack.length;) {
        const n = stack.pop();
        if (n instanceof Object) {
          Object.entries(n).reverse().forEach(([ k, v ]) => stack.push(pop, v, k, push));
        } else if (n === push) {
          keys.push(stack.pop());
        } else if (n === pop) {
          keys.pop();
        } else {
          result[keys.join('.')] = n;
        }
      }
    
      return result;
    }.bind([ Symbol(), Symbol() ]);
    
    
    const plain = nestedToPlain(example, [ 'example' ]);
    Ответ написан
    1 комментарий
  • Ubuntu. Как обновить npm?

    В этом случае выходит ошибка

    Там вам прямым текстом говорится, что у вас не хватает прав на запись в директории. То есть нужно делать через sudo.

    Ubuntu. Как обновить npm?

    sudo npm cache clean -f
    sudo npm install -g n
    sudo n stable

    Почитайте здесь: https://askubuntu.com/questions/426750/how-can-i-u...

    P.S. если для разных проектов нужна разная нода, то можно использовать nvm. Про неё почитать здесь: https://nodejs.org/en/download/package-manager
    Ответ написан
    3 комментария
  • Как получить кол-во просмотров на посте в тг, с помощью тг бота (node js)?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Никак. Боты работают на событиях: пришло сообщение, человек вступил в группу... Получать историческую информацию по сообщениям невозможно.

    Достать такую информацию можно только с помощью клиентского API (MTProto).
    Ответ написан
    2 комментария
  • Какую key-value БД использовать с данными в 10 млрд строк записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) У меня устойчивое дежа-вю. Периодически в топик заходят люди с именно этим вопросом. Разница только в количестве. Кому 1 млрд. Кому 10. Можно также поискать и слинковать эти вопросы в один большой вопрос.

    2) MySQL который указан в тегах - нормально справляется с этой задачей. Он и не такое число строк
    умеет хранить. И если взять MariaDb - там есть куча новых engines которые можно крутить для тюнинга
    именно скорости чтения. Разумеется жертвуя чем-то другим. Транзакциями и записью например.

    3) Непонятно что такое минимальное время? Если использовать дисковую БД типа MySQL то деградация времени
    поиска будет примерно зависеть от логарифма количества строк. Тоесть деградация будет но очень медленно.
    Для 10 млрд индекс по key будет содержать порядка 4-5 уровней BTree дерева. Тоесть дисковой системе
    нужно будет сделать до 5 или до 6 рандомных чтений (если нужные данные лежат в таблице). Это достаточно
    быстро для того чтобы моргнуть глазом за это время. Рандомное чтение любого блока из магнитного диска
    класса SATA-3 занимает порядка 20 милисекунд. Тоесть для 5 уровней - это 100 милисекунд. Для дисков
    класса SSD и это время можно уже считать меньше милисекунды. Точно я не знаю надо мерять.

    Испортить это время может сетевой лаг который в данной задаче мы просто не учитываем. Считаем что сеть идеальна.

    4) Непонятно зачем здесь указан Redis. Его задача не хранить 10 млрд а хранить только горячие
    ключи по котороым идет очень частый доступ. Если автор хочет In-memory хранение - то время можно
    еще сильнее улучшить. Его можно свести практически до нуля (я вангую несколько микро-секунд)
    но придется прикупить планок памяти побольше и посчитать сколько памяти
    надо для 10 млрд key/values неизвестной длины. Вообще крутить регулятор в направлении
    микро-секунд нет особого смысла т.к. другие звенья вашего стека (приложение и сеть) могут
    быть на порядки медленнее а это вообще нивелирует всю пользу от такой оптимизации.
    Ответ написан
    41 комментарий
  • Какую способ написания стилей выбрать для новостного сайта на nextjs?

    i229194964
    @i229194964
    Веб разработчик
    Tailwind CSS
    Ответ написан
    Комментировать
  • Какие преимущества у docker?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Основное, что дает докер - это изоляцию частей вашей системы друг от друга. За счет этого гораздо проще всё настраивать.
    - БД настраивается в отдельном докер-контейнере. В большинстве случаев вы используете стандартный образ и подаете ему только настройки.
    - nginx настраивается в отдельном контейнере вместе с certbot'ом, который будет обновлять вам сертификат ssl.
    - бэкенд поднимаетя в отдельном контейнере на стандартном порту (и порт не будет конфликтовать с другими бэкендами в других контейнерах на том же порту.
    - другие какие-то бэкенды и админки будут рядом сидеть в отдельны контейнерах и не будут конфликтовать друг с другом версиями библиотек. интерпретаторов и чего угодно
    - компиляция и сборка тоже делаются в контейнере, который не запускается в прод, но обеспечивает иоляцию этого процесса так, что другие разработчики легко приступят к работе без долгой и уникальной настройки своего рабочего места.

    Весь набор нужных контейнеров для проекта конфигурируется docker-compose файлом и в большинстве случаев при правильной настойке чтобы поднять дев-стенд или продакшн вам достаточно будет склонировать репу на комп и скомандывать docker-compose up.

    Про слои и переиспольование почитайте в документации к докеру. Докер-образы наследуются накладывая свои изменения слоями. Это экономит место на диске и упрощает всю систему минимизируя число возможных состояний.
    Вся файловая система контейнера не примонтированная извне будет стёрта и забыта при перезапуске контейнера. Так можно быть уверенным, что ваш бэкенд не оставляет лишних неучтенных побочных эффектив. Это упрошает отладку и поиск проблем.
    Ответ написан
    2 комментария
  • Как можно использовать Foreign Key?

    TMProject
    @TMProject
    Frontend developer React/Redux
    Foreign key (внешний ключ) - это механизм, который позволяет связывать данные из двух таблиц в базе данных, где одна таблица ссылается на другую посредством поля, которое является первичным ключом в таблице, на которую она ссылается.

    Использование foreign key имеет несколько преимуществ. Одно из них - обеспечение целостности данных, то есть предотвращение появления некорректных значений в таблице. Когда вы устанавливаете foreign key, вы создаете ограничение, которое не позволит вставить запись в таблицу, если нет соответствующего значения в связанной таблице.

    Чтобы создать foreign key, вы должны выполнить следующие шаги:
    1. Создайте таблицу, которая будет ссылаться на другую таблицу:
      CREATE TABLE table1 (
          id INT PRIMARY KEY,
          name VARCHAR(50),
          table2_id INT,
          FOREIGN KEY (table2_id) REFERENCES table2(id)
      );


    2. Создайте таблицу, на которую будет ссылаться первая таблица:
      CREATE TABLE table2 (
          id INT PRIMARY KEY,
          name VARCHAR(50)
      );


    3. Установите связь между таблицами с помощью ключевого слова REFERENCES:
      FOREIGN KEY (table2_id) REFERENCES table2(id)


    В этом примере, мы создаем таблицу table1, которая имеет поле table2_id, которое ссылается на поле id в таблице table2. С помощью ключевого слова FOREIGN KEY мы говорим базе данных, что это поле должно быть связано с полем id в таблице table2.

    Также мы можем добавить ограничение ON DELETE, чтобы определить, что происходит с записями в таблице, которые связаны с удаленными записями из другой таблицы. Например:
    FOREIGN KEY (table2_id) REFERENCES table2(id) ON DELETE CASCADE

    В этом примере, мы указываем, что при удалении записи из таблицы table2, все связанные записи в таблице table1 также должны быть удалены (CASCADE).

    Таким образом, использование foreign key может значительно улучшить целостность данных в вашей базе данных, облегчить ее обслуживание и предотвратить появление ошибок в будущем.
    Ответ написан
    Комментировать
  • Как можно использовать Foreign Key?

    Очевидный пример:
    Допустим у тебя есть таблица с домашними животными и таблица с хозяевами домашних животных.

    Чтобы указать у животного, кто его владелец - ты заводишь колонку "идентификатор владельца".

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

    В случае попытки удалить запись о владельце, на которого кто-то ещё ссылается, или при попытке указать несуществующий ИД - СУБД выдаст ошибку, что было нарушено ограничение.
    Ответ написан
    4 комментария
  • Почему в input number в safari можно вводить всё?

    modelair
    @modelair
    unsocial
    ответить на этот вопрос могут разработчики safari
    а решить можно так:
    <input type="text" oninput="this.value=this.value.replace(/[^0-9]/g,'');" id="mytext"/>
    Ответ написан
    3 комментария
  • А в чем минусы node.js?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В том же в чем его и плюсы.

    Асинхронность... ее там нет. Там есть event loop что позволяет писать крайне эффективные программы в плане работы с I/O (что для web очень неплохо) и не париться о таких вещях как потокобезопасность, блокировки и т.д. А если еще и несколько инстансов приложения запусть - по одному на ядро скажем, то утилизация вычислительных мощностей выйдет неплохой. Но распаралелить что-то в рамках одного процесса воркера мы уже не можем. Мы не можем посчитать что-то, проанализировать, заняться обработкой жирной картинки прямо при обработке запроса потому что наш процесс воркер так же обрабатываете еще пару десятков запросов, и пока мы будем удовлетворять нужды одного простаивать будут все. Нода хороша когда у нас все состоит из элементарных операций которые не занимают много времени, все жирное надо выносить из основного процесса и разруливать очередями и т.д. Эта проблема имеет массу решений на самом деле, но все уже усложняется и нода теряет свою красоту. Лучше взять Java/c#/Python для этого (и не надо тут вспоминать про шутки с многопоточностью в CPython).

    callback-hell. Собственно наличие event loop диктует так же правила о том, как должна писаться программа. Кучи колбэков, невозможность дебажить нормально и получить четкий стэктрейс из ошибки. Да, есть промисы которые решают первую проблему, да есть либы вроде zone.js которые решают вторую и частично первую проблему... но все это не тривиальное дело.

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