• Насколько ноутбук HONOR MagicBook X 15 совместим с Linux системами?

    Zoominger
    @Zoominger Куратор тега Ноутбуки
    System Integrator
    Есть информация про 14-ый: https://www.linux.org.ru/forum/linux-hardware/15490752
    Артефакты из-за кривого свободного драйвера, такое решается установкой проприетарного драйвера.
    Иногда не просыпается после открытия крышки - это норма в Linux, заведите привычку сохранять все данные перед закрытием крышки.
    Про сканер отпечатков забудьте сразу.
    Тачпад должен работать и даже жесты кое-какие будет поддерживать.
    Могут быть проблемы с WiFi и BlueTooth, погуглите поддержку модуля.
    Ответ написан
    5 комментариев
  • Как создать новый раздел на весь диск?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    echo -e "label:mbr\nstart=1M" | sfdisk /dev/sdb
    создаст таблицу разделов mbr на диске /dev/sdb с одним разделом на весь диск у которого начальное смещение составляет 1M

    другой пример
    echo -e "label:gpt\nsize=100M\nsize=+" | sfdisk /dev/sdb

    здесь мы создаём таблицу разделов gpt и два раздела, один на 100M а второй на всё оставшееся место.

    если нужно ресайзить уже готовые разделы то глянь здесь где всё доходчиво написанно
    но а вообще смотри ман
    и кстати у sfdisk, fdisk и cfdisk общая поддержка создания сценария что иногда бывает довольно удобно, смотри (s)fdisk scripts

    п.с.
    sfdisk довольно недооценённая утилита в которую если вникнуть позволяет творить чудеса

    Диск должен быть разбит на 4 раздела. 3 я создаю из дампа sfdisk. Нужно создать еще один. Последний. На все оставшееся место.

    всё очень просто:
    echo -e "size=+" | sfdisk -N 4 /dev/sdb

    вот небольшой пример
    $ truncate -s 1G disk.img
    $ echo -e "label:mbr\nsize=100M\nsize=200M\nsize=300M" | sfdisk disk.img
    $ sfdisk --dump disk.img
    label: dos
    label-id: 0x58b01c8a
    device: disk.img
    unit: sectors
    sector-size: 512
    
    disk.img1 : start=        2048, size=      204800, type=83
    disk.img2 : start=      206848, size=      409600, type=83
    disk.img3 : start=      616448, size=      614400, type=83
    
    $ echo -e "size=+" | sfdisk -N 4 disk.img
    $ sfdisk --dump disk.img
    label: dos
    label-id: 0x58b01c8a
    device: disk.img
    unit: sectors
    sector-size: 512
    
    disk.img1 : start=        2048, size=      204800, type=83
    disk.img2 : start=      206848, size=      409600, type=83
    disk.img3 : start=      616448, size=      614400, type=83
    disk.img4 : start=     1230848, size=      866304, type=83
    Ответ написан
    3 комментария
  • Как стать пентестером (bug bounty)?

    @d-sem
    Книга, например, вот эта https://habr.com/ru/company/piter/blog/515594/
    Ответ написан
    Комментировать
  • Как узнать количество уникальных результатов random.shuffle?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Число перестановок списка длины n - это n! (факториал: n!=1*2*3*...*n). Это основы комбинаторики.

    Так что если надо просто число различных вариантов, то:

    math.factorial(len(our_list))
    Ответ написан
    Комментировать
  • Стакаются ли sqlite и тг бот?

    Vindicar
    @Vindicar
    RTFM!
    1. Что значит "одновременного вноса"? sqlite не потокобезопасна, но если ты используешь асинхронную библиотеку для телеги с дефолтной реализацией event loop, то у тебя никогда не будут выполняться 2 обработчика одновременно. Дефолтная реализация строго однопоточна, и проблем с sqlite не будет.
    2. 500 человек - это не мера нагрузки. Самая примитивная мера нагрузки - обращений к базе в единицу времени.
    А вообще более точно было бы проводить измерение времени выполнения разных частей обработчика события. Если бот потребляет значительную долю ресурсов своего хостинга и при этом проводит много времени обращаясь к БД - вот тогда стоит задуматься о смене БД. И даже тогда можно сначала посмотреть в сторону aiosqlite, чтобы не тормозить всего бота, пока запрос к БД выполняется.
    Ответ написан
    Комментировать
  • Разница между L2 и L3 vpn разница?

    martin74ua
    @martin74ua Куратор тега Компьютерные сети
    Linux administrator
    l2 канал требует прямой связности. Вы должны пробросить влан из точки А в точку Б. Через других провайдеров, полстраны, на другой континент... Как вам угодно )

    l3 требует связности между двумя ip адресами, т.е. наличия маршрутизации.

    Если речь идет о нескольких провайдерах - например вам надо пробросить влан в пределах города - то вариант, что вы сможете договориться со всеми провайдерами по пути о пробросе влан по Л2 - маловероятен. А вот Л3 впн вы сможете в такой ситуации построить вообще не обращаясь к провайдерам.
    Ответ написан
    3 комментария
  • Каким инструментом лучше организовать работу с IP-камерами на Qt?

    alxndrlsn
    @alxndrlsn Автор вопроса
    Инженер
    Все встало на свои места неожиданно: слегка разочаровавшись в QCamera, а также обнаружив, что ffserver больше не поддерживается с июля 2016 года,..

    July 10th, 2016, ffserver program being dropped(с)ffmpeg.орг/индекс.html#ffserver

    ..смотрел похожие классы и через QVideoWidget вышел на QMediaPlayer, который, начиная с версии Qt 5.12.2, позволяет использовать gst-pipeline при установленном GStreamer. Иными словами, в методе QMediaPlayer::setMedia(QMediaContent) можно вставить строку QUrl, содержащую обычную команду для gstreamer:
    что-то вроде этого (просто для примера):
    player->setMedia(QUrl(gst-pipeline: rtspsrc location=rtsp://user:passwrd@StaticCameraIP:port/path ! rtph264depay !  h264parse ! omxh264dec ! nvvidconv ! video/x-raw, width=1920, height=1080, format=BGRx ! videoconvert !  ximagesink sync=false));

    Работает хорошо, однако проверял в условиях цейтнота, поэтому столкнувшись с некоторым непонятным моментом, не нашел пока: как бороться с тем, что поток открывается в совершенно новом окне, игнорируя вызванный ранее QMediaPlayer::setVideoOutput(QVideoWidget). Возможно это потому, что у меня экземпляр QMediaPlayer не является дочерним по отношению к QVideoWidget. Но главное - работает!
    Ответ написан
    Комментировать
  • Каким инструментом лучше организовать работу с IP-камерами на Qt?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Мы лет шесть назад писали похожую штуку, тогда взяли libvlc, для неё есть Qt обвязка. Работало достаточно хорошо, насколько я помню. Но вот прям стандартных средств, чтобы управлять камерами — я тогда не нашел.
    Ответ написан
    Комментировать
  • Нужно нагрузить сеть?

    Anna_Repina
    @Anna_Repina
    Хочу все знать
    Можете использовать iperf3, он будет кидать пакеты в обе стороны (если введете -bidir)
    https://habr.com/ru/post/590775/?ysclid=l7pugldmud...
    https://translated.turbopages.org/proxy_u/en-ru.ru...
    Ответ написан
    Комментировать
  • Что такое KDE Wallet?

    Комментировать
  • Написание сайтов на разных платформах?

    Sanes
    @Sanes
    Использовать относительные пути.
    Ответ написан
    Комментировать
  • Как быстро скопировать 40 млн файлов на другой сервер?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Как-то так:
    dd if=/dev/sda bs=65536 | ssh target-ip 'dd of=/dev/sda bs=65536'.

    На агрегированном канале 2x1Gbit выдает 100 мегабайт в секунду. Если подшаманить размеры блока bs= и mtu, и еще шифрование у ssh выключить, можно, я думаю, и все 200 мегабайт выжать.

    Проводить, на отмонтированном! (или смонтированном в readOnly) диске!
    Не зря dd расшифровывается как DestroyData.
    Варианты настройки шифрования (-c) и скорость (лучше - больше):
    ssh-cipher-speed-chart.png?w=630
    Ответ написан
    8 комментариев
  • Как начальник может контролировать фрилансера по часам удалённо?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Решение называется "адекватный начальник". Оставайтесь на окладе, продолжайте работать по 8 часов день с перерывом. Важно не количество отсиженного за работой времени, а качество сделанного.

    Если вы будете работать по 16 часов, а на выходе будет фигня из-под коня - какой от этого прок? А оплату будете требовать в двойном размере. Не годится такое, не правильно это.
    Ответ написан
    5 комментариев
  • С чего начать в 30 лет?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Фундаментальная проблема - в игрострой стоит очередь фанатов с горящими глазами. Людей, которые пишут игры, играют в игры, моддят игры, хакают игры..., начиная с возраста, когда они смогли дотянуться до клавиатуры (как ваш покорный слуга). При этом, у них столько мотивации, что они могут сами поставить себе задачу, сами нагуглить все, что нужно (Спасибо дяде Немнюгину за его учебник. Это все что нужно знать о DOS, чтобы закодить dOOm) и сами все напишут и нарисуют (работая над этим сутками. Не потому что над душей стоит босс с воплями о лишении премии, а потому что им это интересно).

    И вот теперь, Андрей, который уже устал хочет встать в очередь высоко мотивированных конкурентов и попросить себе оффер. Каковы его шансы на успех?

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

    Для универсального развития, нужно начинать с простых фиговин вроде тетриса, арканоида, бильярда и прочего (в которых однако есть все столпы игростроя - графика + логика + системный движок, можно и добавить сеть, если подумать) и потом наращивать сложность - делать платформер или RTS.
    Ответ написан
    4 комментария
  • Как происходит доступ к эл. массива на уровне ядра? Malloc выделяет непрерывную физическую память?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как происходит доступ к эл. массива на уровне ядра?

    Так же как и на уровне приложения -- через трансляцию виртуального адреса в физический.

    Например массив Int* arr = new int[1024*1024*1024] он как храниться?

    Если мы для определённости возьмём linux, то у ядра есть несколько разных способов выделения памяти, в зависимости от того, для чего эта память выделяется. Есть наиболее простой и стандартный kmalloc который выделяет память непрерывную как виртуально так и физически. Обычно этим механизмом нельзя выделить большой непрерывный кусок. Есть vmalloc, который выделяет непрерывную виртуально, но возможно прерывную физически память. Есть get_free_pages который выделяет непрерывные страницы физической памяти, возможно, не отображаемые ни в какие виртуальные адреса. Есть Contiguous Memory Allocator который при старте системы резервирует кусок непрерывной физической памяти и может аллоцировать оттуда куски по запросу.
    Важный момент состоит в том, что аллокации делаемые ядром linux через упомянутые интерфейсы всегда обеспечиваются физической памятью, у памяти ядра нет пейджинга.

    А физическая, для массива то же? Ведь, так будет доступ намного быстрее?

    Почему быстрее? С точки зрения процессора всё равно будет трансляция виртуального адреса в физический, если повезёт -- попадание в TLB, если не повезёт -- ходить по каталогам и таблицам страниц в памяти.

    получается эмулятор каждый адрес вычислять что ли?

    Простой эмулятор -- да, наверно. Умный эмулятор может кешировать эту информацию, например именно это свойство даёт QEMU большую часть его Q.
    Ответ написан
    Комментировать
  • Есть ли на php библиотека для Telegram, подобная Telethon на Python?

    @Redeve
    Веб-макаке не хватит и 640гБ
    Ответ написан
    Комментировать
  • Чем ошибки отличаться от исключений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно ошибки - это некое детерминированное поведение когда например в С++ функция fopen возрващает файловый хендл. И если проверка этого указателя на NULL - положительна значит была ошибка. И программист сам вручную принимает решение что делать.

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

    Если не обрабатываем - то считается что делегируем обработку исключения той функции которая нас вызвала. По сути передаем управление "наверх". Тоесть кто вызвал - тот и обязан разруливать ситуацию. Очень похожий подход принят в акторной технологии.

    Обычно механика исключений хорошо приживается в языках с Garbage Collectors.

    Поэтому, подытоживая - да. Ошибки не равны исключениям. Исключения - это более высокоуровневый мехнизм.
    Ответ написан
  • Нужно открыть youtube в плеере VLC, в чём ошибка?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    погляжу народ обожает трудности
    x=($(youtube-dl -g https://www.youtube.com/watch?v=yfHQCNPTios)) && vlc ${x[0]} --input-slave ${x[1]}


    Чтобы открыть youtube 1080p в плеере VLC

    для этого нужно выставить нужные параметры в ключе --format
    x=($(youtube-dl -g --format="bestvideo[height<=?1080]+bestaudio" https://www.youtube.com/watch?v=yfHQCNPTios)) && vlc ${x[0]} --input-slave ${x[1]}

    подробнее об этом написал тебе в твоём предыдущем вопросе

    для mpv будет проще:
    mpv --ytdl-format="bestvideo[height<=?1080]+bestaudio" https://www.youtube.com/watch?v=yfHQCNPTios
    Ответ написан
    23 комментария
  • Как имитировать ЦОД?

    @pfg21
    ex-турист
    добавить задержки и нарушения работы сети netem tc ??
    Ответ написан
    1 комментарий