Задать вопрос
  • Как установить Ubuntu без флешки?

    @pfg21
    ex-турист
    прикладывай ссылку на статью штоль :)
    а то "сделал раздел с фат32 и скопировал на него содержимое исо образа" это как то неправильно совсем получается :)
    Ответ написан
    Комментировать
  • Как установить Ubuntu без флешки?

    @rPman
    Установить linux - это значит установить загрузчик (который запускает linux после bios) и собственно скопировать файлы.

    В современных реалиях на x86 машинах есть 3 способа загрузки:

    1. legacy dos (еще называют compatibility support mode или csm и т.п.)
    загрузчик прописывается на физическом диске в первом секторе раздела плюс рядом (для таблицы разделов mbr это первые сектора, для gpt специальный 1мб раздел bios boot)
    Соответственно для загрузки необходимо в биосе выбрать диск, с которого производить загрузку (или указать порядок).
    grub автоматически прописывает этот способ, если uefi не доступен

    2. UEFI
    Специальный раздел efi boot (формат fat32) примерно 100мб должен содержать файл xxx.efi который уже запускает систему соответственно своей логике.
    'Благодаря' майкрософту, информация о том, с какого диска нужно продолжать загрузку, прописывается в самом биосе, т.е. при изменении конфигурации (например замена диска), установки ОС и т.п. нужно прописать специальной программой в биосе загрузочную запись (и кстати на некоторых материнках производитель гвоздями прибил совместимость только к майкрософтовскому bcdboot.exe из режима восстановления, а остальные способы могут не работать, даже из windows), обычно grub при установке делает это автоматически
    Но главное, в режиме secure boot (который часто вообще нельзя отключить) файлы .efi должны быть подписаны майкрософтом (на дорогих моделях материнок можно свою подпись добавлять), т.е. linux вы запускаете так же с разрешения майкрософта.
    Единственный случай, когда запись о загрузчике в биосе может отсутствовать, это removable drives.
    На засыпку, никакие утилиты не имеют доступ к UEFI, если система не запущена в режиме UEFI, т.е. использовать флешку придется как минимум один раз.

    3. загрузка по сети, ее еще называют по технологии PXE
    p.s. ее есть что то у серверных ipmi ну и разные альтернативы removable drives

    Если достаточно использования legacy dos режима, то есть лайфхак, как установить систему из другой системы - использовать виртуальную машину (в новых windows 10 и старше не получится поставить загрузчик на системный диск, даже на другой раздел, типа защита, но можно на другой физический диск), просто пробросив физический диск в виртуалку и провести установку с виртульного cdrom а затем перезагрузить хост машину, указав в биосе этот диск как загрузочный.

    upd. оказывается в материнках может быть режим UEFI Network Stack (или аналогичный), это режим загрузки UEFI PXE, получается достаточно в локальной сети настроить соответствующий сервер, загрузиться в linux и прописать загрузочную запись UEFI, т.е. флешка не потребуется.
    Ответ написан
    Комментировать
  • Как сделать если чекбоксы были пустые выводились все записи?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Вместо массива можно воспользоваться множеством для хранения выбранных значений, так будет проще:

    const state = {
      checked: new Set([
        // если какие-то категории должны быть выбраны изначально, то их следует перечислить здесь
      ]),
      ...

    По событию change добавляем или удаляем значение в/из множества, в зависимости от состояния чекбокса:

    document.querySelectorAll('.sockets').forEach(n => {
      n.checked = state.checked.has(+n.value);
      n.addEventListener('change', onChange);
    });
    
    function onChange({ target: t }) {
      state.checked[t.checked ? 'add' : 'delete'](+t.value);
      render();
    }

    Если множество пустое - выводим всё, что есть; не пустое - предварительно выполняем фильтрацию:

    function render() {
      const { data, checked } = state;
      const toRender = checked.size
        ? data.filter(n => checked.has(n.category))
        : data;
    
      document.querySelector('#root').innerHTML = toRender
        .map(n => `<h6>${n.name}</h6>`)
        .join('');
    }
    
    render();
    Ответ написан
    Комментировать
  • Это норм TjMax превышает температуры ядер cpu в простое?

    @historydev
    Mistkerl, drück den Knopf.
    tjMax - показывает сколько до максимальной температуры осталось.
    Ответ написан
    Комментировать
  • Как изменить набор ключей в массиве?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Кого на что меняем, объект вида { 'старый ключ': 'новый ключ' }:

    const keys = {
      x: 'a',
      y: 'b',
      z: 'c',
    };

    Собираем новый массив:

    const renameKeys = (obj, keys) =>
      Object.fromEntries(Object
        .entries(obj)
        .map(([ k, v ]) => [ Object.hasOwn(keys, k) ? keys[k] : k, v ])
      );
    
    // или
    
    const renameKeys = (obj, keys) =>
      Object.keys(obj).reduce((acc, k) => (
        acc[keys[k] ?? k] = obj[k],
        acc
      ), {});
    
    
    const newArr = arr.map(n => renameKeys(n, keys));

    Обновляем существующий:

    function renameKeys(keys, obj) {
      for (const k in keys) {
        if (obj.hasOwnProperty(k)) {
          obj[keys[k]] = obj[k];
          delete obj[k];
        }
      }
    }
    
    
    arr.forEach(renameKeys.bind(null, keys));
    Ответ написан
    Комментировать
  • Как изменить набор ключей в массиве?

    @historydev Куратор тега JavaScript
    Mistkerl, drück den Knopf.
    Да тут решать нечего, но раз уш пентиум напрячь хочется, вот тебе ребус:

    map
    forEach
    Object
    Object.keys
    delete

    решение

    const data3 = [
      { x: 1, y: 2, z: 3 },
      { x: 4, y: 5, z: 6 },
      { x: 7, y: 8, z: 9 },
    ];
    
    const changeKeyses = (arr, new_keyses) => arr.map(obj => {
    	Object.keys(obj).forEach((key, i) => {
                let new_key = new_keyses[i];
      	    if (new_key !== undefined) {
        	        let val = obj[key];
                    delete obj[key];
                    obj[new_key] = val;
                }
            });
      
           return obj;
    });
    
    console.log(changeKeyses(data3, ["a", "b", "c"]));
    console.log(changeKeyses(data3, ["a", "b"]));
    console.log(changeKeyses(data3, ["a"]));

    Ответ написан
    Комментировать
  • Как заменить ключи во вложенных объектах?

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

    const replaceKeys = (value, replacer) =>
      value instanceof Object
        ? value instanceof Array
          ? value.map(n => replaceKeys(n, replacer))
          : Object.fromEntries(Object
              .entries(value)
              .map(n => [ replacer(n[0]), replaceKeys(n[1], replacer) ])
            )
        : value;
    
    
    const newObj = replaceKeys(obj, k => `${k}_upd`);

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

    function replaceKeys(value, replacer) {
      const stack = [];
      const clones = new Map;
      const getClone = val => val instanceof Object
        ? (clones.has(val) || stack.push([ val, clones.set(val, val.constructor()).get(val) ]),
           clones.get(val))
        : val;
    
      for (getClone(value); stack.length;) {
        const [ source, target ] = stack.pop();
        const isArray = Array.isArray(source);
        for (const k in source) if (Object.hasOwn(source, k)) {
          target[isArray ? k : replacer(k)] = getClone(source[k]);
        }
      }
    
      return getClone(value);
    }
    Ответ написан
    Комментировать
  • Где попрактиковаться с табличными данными, как Pandas, в JS?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    А что вам мешает взять задачи для питоновской Pandas'ы? google.com
    Поиск выдает репы с задачками и решения к ним. Код на python вам не нужен, но output посмотреть можно.
    Решайте задачи - сверяйте output:
    https://github.com/aakankshaws/Pandas-exercises
    https://github.com/guipsamora/pandas_exercises
    https://github.com/tommyod/awesome-pandas
    https://medium.com/%40foklacu/the-ultimate-collect...

    ps на крайний случай можно конвертировать код из python в js, если совсем какие-то проблемы появились с задачей
    Ответ написан
    1 комментарий