Задать вопрос
  • Можно ли автоматически выбирать принтер в зависимости от размера печати?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    1. Создаем виртуальный принтер
    2. Настраиваем печать из софта на виртуальный принтер
    3. Виртуальный принтер настраиваем на выполнение скрипта/приложения, которое проверит размер печати и отправит результат далее на нужный принтер

    Я, правда делал иную задачу - использовал виртуальный принтер для конвертации чего угодно в пдф для загрузки в облако. Перенаправление печати тоже достаточно легко делается через виртуальный принтер. Виртуальный принтер использовал вот этот: https://www.pdfforge.org/pdfcreator - это приложение уже имеет в составе виртуальный принтер, само его ставит и настраивает, результат печати перегоняет в ПДФ, и умеет вызывать нужное приложение по окончанию конвертации. Лучшее решение, что я нашел для создания виртуального принтера сразу и без смс. Пример детектирования размера страницы в ПДФ: https://stackoverflow.com/questions/15565740/deter...
    Ну и альтернативный вариант: сменить три принтера на один с несколькими лотками и умением автоматически выбирать источник для печати.
    Ответ написан
    1 комментарий
  • Какие инструменты нужны для разработки игр?

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

    Первый способ популяризирует публичные универсальные инструменты разработки.
    Второй способ эксплуатирует проприетарные инструменты.

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

    DirectX, Vulkan и OpenGL, равно как Metal и ряд проприетарных GAPI некоторых закрытых платформ, не являются графическими библиотеками. Это все - Graphics Application Programming Interface - GAPI.
    Это - низкоуровневые интерфейсы драйвера GPU, позволяющие эксплуатировать ресурсы видеокарты в своих целях. Не только для рисования чего-то, а для ИИ, ML, сложных статистических вычислений, предсказаний и прочих расчетов на больших объемах данных.
    Под капотом любого инструмента, будь-то проприетарный или публичный, в его графическом слое используется один или несколько GAPI. Без этого никак.
    OpenGL, как и DirectX 11, нисколько не устарели, поскольку предоставляют упрощенный интерфейс управления ресурсами GPU. Они используются тогда, когда разработчикам не нужны самые тонкие механизмы управления ресурсами GPU, которые предоставляют DirectX 12 или Vulkan. Потому что последние, помимо прочего, требуют от разработчиков более глубокой экспертизы и больше ресурсов на разработку всего того же, что на OpenGL и DirectX 11 реализуется меньшими силами и за меньшее время.

    И нет, одним только инструментом, на базе которого ведется разработка игрового проекта, не обойтись. Все ресурсы разрабатываются в других инструментах: графических редакторах, звуковых редакторах, редакторах анимаций, редакторах баз данных. Пайплайны производства ресурсов являются очень сложными, могут насчитывать десятки инструментов для производства одного только типа ресурсов и требуют от артистов экспертизы в использовании этих инструментов. И часть таких инструментов обязательно будет проприетарными, созданными или под конкретный проект, или внутри конкретной компании. И иногда такие инструменты удобнее создавать с применением других, более мелких или лучше заточенных под задачу, движков. Игровой движок не всегда используется для создания игр.
    Отдельно стоит в этом вопросе код игровой логики и шейдеров. Для этого тоже нужны специалисты и инструменты.

    Информации по каждой отдельной области разработки игр хоть отбавляй. Ее настолько много, что одному человеку за жизнь не усвоить. Поэтому от современного специалиста сегодня требуется спрофилироваться, т.е. определиться со своим профилем работы и стать экспертом.
    Я больше 15 лет занимаюсь разработкой игровых движков и медиаферймворков. Более 10 лет занимаюсь коммерческой разработкой кросслпатформенных инструментов. Я начинал свое обучение по книгам и документации для всех интересующих меня областей еще 20 лет назад. Я самостоятельно освоил множество API, включая графические, сетевые, звуковые и API целевых платформ, используя книги и документацию. Экспертные знания C++ и прочих языков я получил тоже через изучение документации, стандартов и книг.
    Я могу сказать что обучаться по книгам и документации можно и самостоятельно. Еще можно заплатить деньги и получить более точечные знания через их интерпретацию на распространенных сегодня онлайн-курсах. Такие знания не всегда бывают лучше полученных самостоятельно, но времени на освоение того же объема знаний на курсах уйдет меньше чем при самостоятельном изучении. Иными словами, занятия на онлайн-курсах не отменяют важности самостоятельного изучения основных источников информации.
    По открытым видеоурокам на ютубе и прочих видеохостингах обучаться нечему. Цель этих видео - чтобы зритель посмотрел рекламу и этим принес доход автору.
    Ответ написан
    2 комментария
  • В чем преимущества Python?

    @kazmiruk
    1. Для системных тулов, мат. вычисления, веб
    2. Множество готовых батареек, качественные веб-фреймворки, живое и дружелюбное сообщество
    3. Если мнение авторов питона - на сайте, мое - замечательный синтаксис, соотношение "скорость разработки - качество кода - скорость выполнения" одна из самых высоких
    4. Сегодня - питон (много работы, высокие зарплаты). Завтра - скорее всего java (очень активно идет развитие стека typesafe и, мне кажется, что в будущем он займет свою довольно внушительную нишу в веб разработке. Но это завтра может настать очень не скоро, если вообще настанет. Ну и это все таки не для веб студий и не для сайтов-визиток вариант. Проекты сложности выше средней с долгосрочной поддержкой). RoR - работы меньше, оплата еще выше. Пхп - работы горы, зарплаты намного меньше. Но вообще трудно сказать. Есть еще nodejs (развивается гигантскими скачками), но не могу про него ничего сказать толкового. Работы под него довольно много, но как изнутри не знаю.
    А вообще сейчас набегут Рубисты, Явисты, Пхпшники и начнется холивар, поэтому надо текать ) Изучив любой из php\python\ruby на достаточном уровне и выдавая качественный код Вы будете востребованы как специалист еще довольно долго.
    Ответ написан
    Комментировать
  • Что действительно пишут на Python как правило в бизнесе?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    • Нейронные сети
    • Инструменты для работы с BIG DATA
    • Скрипты для автоматизации
    • Серверные части веб-сайтов (то, что вы описали - клиентская часть).
    • Боты для соц.сетей.
    Ответ написан
  • Оптимальный формат хранения изображения в текстовом виде?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Вместо base64 можно использовать условный base65.
    Он тоже "избыточен", но в любом случае всё упирается в ограничения тех текстовых систем, через которые должно проходить изображение в виде текста.
    Например, если все системы поддерживают ASCII, то можно расшириться до условного base127, например. Можно ли использовать спец. символы, какие именно - вам виднее, это будет конкретное ограничение конкретной проблемы, которую вы решаете.

    Всё, что некратно степени двойки, будет вызывать повышенную нагрузку на процессор при переконвертировании, но такова цена максимальной упаковки произвольной информации на конкретных системах работы с текстом.

    Однако у вас ведь информация не совсем произвольная. Поэтому зачем вам универсальное решение? Пусть решение решает конкретно вашу узкую проблему по пересылке именно изображений, а не любой информации. Можно попытаться сжать само изображение.

    Если это PNG, то можно перейти на палитру, 256 цветов достаточно для многих случаев, но можно взять ещё меньше. Если это фото, то JPG в низком качестве. Также есть векторный формат, который конечно не любую картинку заменит, но в некоторых случаях сильно выигрывает у других форматов, не говоря уж о побочном эффекте в виде неограниченной масштабируемости.

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

    SayMAN83
    @SayMAN83
    Работаю в IT
    Опыт подсказывает, что таблицы проще перепечатать с нуля. Чем заниматься онанизмом с распознаванием, а затем редактированием.
    Ответ написан
    4 комментария
  • Активная блокировка VPN провайдером, решения нет?

    Vindicar
    @Vindicar
    RTFM!
    chisel позволяет поднять туннель поверх HTTPS.
    HTTPS вроде не режут по скорости как обычный SSH, но в то же время узнаваемых сигнатур VPN-протоколов нет.
    Минус - нужна своя VPS за бугром и желательно с доменом. Сертификат для использования с chisel можно взять у letsencrypt.
    В общем, решение не для "уверенного пользователя".
    Ответ написан
    3 комментария
  • Где применяют python помимо веба и data science?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Почти везде, это язык общего назначения. Понятно, что на нём не пишут операционные системы, драйвера и прошивки, так как он интерпретируемый.
    Ответ написан
    3 комментария
  • Как определить что нагружает CPU в определённое время?

    paran0id
    @paran0id
    Умный, но ленивый
    Можно поставить atop и настроить сохранение снапшотов информации о процессах.
    Ответ написан
    1 комментарий
  • Как установить последнюю версию nodejs с помощью apt?

    С помощью nodesource: https://github.com/nodesource/distributions#deb
    Ответ написан
    Комментировать
  • Как сжать видео так, чтобы надписи были в идеальном качестве, а остальная картинка в нормальном?

    @alex1478
    Есть пример энкодера, который позволяет кодировать в h264 с разным уровнем квантования для всего видео и определенной области https://github.com/ChaoticEnigma/h264-roi. Если к этому добавить поиск области с номер через openalpr для каждого кадра, то получится то что вам нужно.
    Ответ написан
    4 комментария
  • Как изучать администрирование линукс самостоятельно?

    ma4akk
    @ma4akk
    Для начала стоит поставить себе Linux.
    Почитать книгу, например.

    Самое главное - практиковаться
    Ответ написан
    2 комментария
  • Как изучать администрирование линукс самостоятельно?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Я научился, когда снес Windows на своем рабочем компьютере, и установил Linux.
    Ответ написан
    2 комментария
  • Как изучать администрирование линукс самостоятельно?

    Morpheus_God
    @Morpheus_God
    Я ставлю себе виртуалку, придумываю или нахожу нужную мне задачу и по статьям в интернете делаю.
    Что то в голове откладывается, что то приходится иногда подсматривать.
    Ответ написан
    Комментировать
  • Могут ли силовики читать сообщения с мессенджеров с использованием СОРМ?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Если пользователь задаёт такой вопрос, то он, скорее всего, не включил двухфакторную авторизацию и не использует секретные чаты, а Телеграм у него зареган на свой собственный российский номер на своё собственное имя. Силовики просто сделают сброс пароля, получат у оператора содержимое смс и залогинятся тобой, затем автоматизированно скачают всю твою переписку для анализа. На всё про всё потребуются считанные минуты, и если это сделать посреди ночи, ты даже ничего не успеешь заметить. И никакое шифрование не спасёт.

    Ну а если тебя поймают с телефоном в руках, то можно будет просто открыть твой Телеграм и прям на нём проверить твои переписки.
    Ответ написан
    2 комментария
  • Почему PHP используется в не HighLoad приложениях?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    есть поптыки и в хайлоад
    успешные
    тратят на железо, и х с ним... перепсывать - муторно, новый коллектив, хз какой %% успеха и ваще
    конечно, не все php, на беке в том числе джжава и чуток го да и питона, но морда - php 100% неравифнрованный

    тебе нужно понимать следующее - говорю за Питон, в пихе ситуация +- такая же, но думаю ХУЖЕ

    одна питон переменная , в силу отсутствия типизации, занимает 56 байт (могу врать, 52 там, 62... короче такой порядок), одна го - 2 байта (тоже понятно +- 2-4-8), и это мы еще указателей не касались

    все

    возьми 56 грамм и 2 грамма, умножь ан 10 и на 100, и потаскай, узнаешь как процессор и память ими грузятся, и почему может и не может хайлоад
    Ответ написан
    1 комментарий
  • Как управлять яндекс-лампочкой в обход апи яндекса?

    @justslipknot Автор вопроса
    Как выяснилось, яндекс лампочки - это ребрендированная Tuya лампочка. У Tuya есть локальный протокол и модуль для Home Assistant. Но я решил вопрос немного иначе:
    1. Устанавливаем приложение Smart Life или Tuya Home (оба совместимы с яндекс лампами)
    2. Сбрасываем настройки лампочек и добавляем их в приложении Smart Life / Tuya Home
    3. Регистрируем приложение на платформе Tuya. Инструкция есть в этом репозитории.
      Пояснение
      Этот шаг нам нужно проделать, чтобы получить Local Key, который требуется для шифрования и расшифровки запросов (Local Key, как я понял, обновляется после сброса настроек). Инструкция, как быстро добавить устройства в приложение платформы Tuya так же представлено в репозитории

    4. Выбираем библиотеку для работы с Tuya local api. Я выбрал вот эту библиотеку для C#. На GitHub странице этой библиотеки есть инструкция по работе с Tuya local api.
    5. Реализуем нужный нам функционал


    Небольшой топорный пример из моего тестового проекта:
    Поиск устройств Tuya в сети

    // Эти данные можно получить на странице вашего приложения на платформе Tuya.
    var accessId = "<access id>";
    var apiSecret = "<api secret>";
    
    // Сканируем сеть на наличие доступных устройств Tuya. 
    // Хранение найденных устройств реализуется как душе угодно
    
    var scanner = new TuyaScanner();
    scanner.OnNewDeviceInfoReceived += (sender, info) =>
    {
       // логика сохранения найденных устройств 
    };


    Получение Local Key


    Самый важный этап.
    Пример взят из репозитория библиотеки
    var api = new TuyaApi(region: TuyaApi.Region.CentralEurope, accessId: ACCESS_ID, apiSecret: API_SECRET);
    var devices = await api.GetAllDevicesInfoAsync(anyDeviceId: DEVICE_ID);
    foreach(var device in devices)
    {
        Console.WriteLine($"Device: {device.Name}, device ID: {device.Id}, local key: {device.LocalKey}");
    }


    Отправка команд устройству

    var device = new TuyaDevice("<IP адрес>", "<local key>", "<device id>");
    
    // Пример команды включения лампочки
    // Метод FillJson автоматически подставляет нужные параметры, поэтому сразу пишем запрос.
    // Про методы DPS можно почитать в официальной документации Tuya
    var onCommand = device.FillJson("{\"dps\":{\"20\":true}}");
    
    var request = device.EncodeRequest(TuyaCommand.CONTROL, onCommand );
    
    // Посылаем сигнал. Если устройство не ответит, то падает исключение 
    var encodedResponse = await device.SendAsync(request);
    var response = device.DecodeResponse(encodedResponse);



    Далее остаётся разобраться с кодами команд и можете контролировать лампы как вам угодно.
    Ответ написан
    3 комментария
  • Как распространять приложение под linux?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Я не знаю, почему все так активно советуют собирать пакеты. Надо начать с того, что в Linux никогда не было принято использовать pyinstaller... почему? Потому что в Linux python идёт из коробки. В Windows сложно вынуждать пользователей устанавливать интерпретатор языка и все зависимости, тут же с этим проще гораздо.

    Так что можно просто распространять архив с приложением и инструкцией по запуску вида:

    virtualenv -p python3 env
    . env/bin/activate
    pip install -r requirements.txt
    ./app.py
    Ответ написан
    2 комментария
  • Как подписать дату и время на оси абсцисс в Matplotlib?

    @dmshar
    Ну, например, вот так:
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib.ticker import MultipleLocator
    ds=[
      ['14.06.2022 00:00', 1],
      ['14.06.2022 06:00', 2],
      ['14.06.2022 12:00', 3],
      ['14.06.2022 18:00', 4],
      ['15.06.2022 00:00', 1],
      ['15.06.2022 06:00', 2],
      ['15.06.2022 12:00', 3],
      ['15.06.2022 18:00', 4],
      ['16.06.2022 00:00', 1],
      ['16.06.2022 06:00', 2],
      ['16.06.2022 12:00', 3],
      ['16.06.2022 18:00', 4]
    ]
    
    df=pd.DataFrame(ds,columns=['D','A'])
    df['D']=pd.to_datetime(df['D'])
    df.set_index('D',inplace=True)
    ax=df.plot()
    ax.xaxis.set_minor_locator(MultipleLocator(6))


    62a8787e919cc437718429.png
    Ответ написан
    Комментировать
  • Импорт из XML в HTML локально?

    @rPman
    одно слово - xslt (первый же результат запроса в гугл)
    нативно поддерживается всеми браузерами (это очень старая технология), позволяет строить красивые страницы на основе данных xml, формально не требует javascript (это отдельная технология, так как она формирует html дальше можно использовать javascript но не обязательно)

    работает локально, даже из файла file://
    Ответ написан
    1 комментарий