Задать вопрос
  • Какой язык программирования изучать в свободное время?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Какой-то конкретной цели, объясняющей для чего мне это надо, пока что нет.

    - Скажите пожалуйста, куда мне отсюда идти?
    - А куда ты хочешь попасть? - ответил Кот.
    - Мне все равно... - сказала Алиса.
    - Тогда все равно куда и идти, - заметил Кот.
    - ...только бы попасть куда-нибудь, - пояснила Алиса.
    - Куда-нибудь ты обязательно попадешь, - сказал Кот. - Нужно только достаточно долго идти.

    Льюис Кэрролл
    Ответ написан
    1 комментарий
  • Имитация веб-камеры - как автоматизировать на python (linux)?

    Vindicar
    @Vindicar
    RTFM!
    Извини, а у тебя ничего не ёкнуло вот тут?
    sudo apt install v4l2loopback
    pip install v4l2loopback
    Ты понимаешь разницу между этими двумя командами?
    Первая - задействует системный менеджер пакетов для дистрибутивов на базе debian (deb-пакетов).
    Вторая - задействует встроенный менеджер пакетов питона.
    Это совершенно разные вещи, и они работают с совершенно разными репозиториями.
    Установить deb-пакет в систему, на которой будешь тестить, достаточно будет один раз.
    Прописать мод можно в /etc/modules, но можно и тупо делать modprobe при загрузке системы.
    И то и то, я полагаю, можно сделать хоть на живой системе, хоть внутри докера.

    После этого в автотесте запускаешь ffmpeg, можно даже тупо через subprocess вместо питоновских модулей. Сюрприз, сюрприз! Они все, насколько я знаю, именно так и делают под капотом. Я не видел модуля, который бы имел интегрированный ffmpeg.
    Ответ написан
    3 комментария
  • Простое решение для десктопа?

    @alexalexes
    Из моего опыта без глубокого погружения легко накидать формочку с парой textbox/combobox и кнопочкой, а потом вывести какую-то графику в Chart - это в C#. Из сохранений данных нужно научиться сериализовать объект и писать его в файл. Если нужна простенькая база данных, то можно прикрутить SQLite.
    Из неудобств при запуске на другом компе - нужно ставить пакет .NET той версии или выше, в которой скомпилирован проект.
    Для Chart и ходовой штуки как LINQ (очень упрощает жизнь, если перебирать массивы/множества/коллекции), нужно ставить .NET минимальной версии 3.5 и выше.
    Ответ написан
    2 комментария
  • Банят аккаунты в телеграмме при использовании библиотеки telethon. Кто-то находил решение?

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

    Если тебе нужно что-то типа аккаунта для бизнеса, то тогда посмотри в сторону ботов для бизнеса
    Ответ написан
    Комментировать
  • Какой ресурс более качественный, для изучения языка c#?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Если мы говорим, про C#, то грубая кривая такая:
    1. Проходишь метанит - поверхностное понимание C#
    2. Проходишь ULearn - уже более менее норм владеешь (все 2 курса)

    Нас в вузе по юлерну учили, он нам полностью заменял и пары и дз (отметки по нему ставили)

    Но ты указал еще Unity. Я не unity разраб, но:
    1. Приступай к нему ПОСЛЕ освоения C# (всех шагов выше)
    2. Можешь видео у Романа Сакутина посмотреть (+ он книгу выпустил, но не знаю можно ли советовать)

    PS: C и C# - это совершенно разные языки
    PPS: столько красных флагов в одном вопросе - simplecode и itvdn как основа, странное преподношение материала на ulearn, unity сразу после основ C#. Как по мне это все надо инвертировать и получится более менее полезные советы
    Ответ написан
    3 комментария
  • Где я могу найти "точно" описанную документацию Python?

    @Everything_is_bad
    https://docs.python.org/3/

    Почему документация написана таким неточным языком?
    это твое субъективное мнение, не понятно где ты там увидел "неточным языком". Ну возьми тогда учебники по языку и выбери более тебе понятно написанный.

    Можно ли где-то найти точное описание?
    "более точное" это уже исходники https://github.com/python/cpython
    Ответ написан
    9 комментариев
  • Знаю только Python и SQL. Нужно ли наращивать стек знаний перед попыткой смены работы?

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

    или мне в настоящее время стоит относить себя к т. н. «Разработчикам приложений» (по классификации «Хабр Карьеры»)

    То что ты описываешь - похоже на бэкендера.

    Нужны ли на рынке труда специалисты с таким стеком за такую зарплату

    Вопрос не имеет смысла, ибо он не отвечает на главный вопрос - найдёт ли конкретный соискатель себе рабочее место.
    надо заняться самообразованием, изучая, скажем связку FastAPI + Kafka + Kubernetes?

    Самообразование никогда лишним не будет.
    Ответ написан
    Комментировать
  • Какие есть реализации фейковой оплаты через внешний сервис?

    condor-bird
    @condor-bird
    В любом из существующих есть тестовые режимы, например, в том же Stripe или PayPal.
    Ответ написан
    Комментировать
  • Как реализовать идеальный метод indexOf?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вы неверно понимаете суть О-нотации. Почитайте книги Дональда Кнута про это.
    O(3) - это то же самое, что O(1). Нет разницы. O(N), O(N+1000), O(10*N) - это тоже одно и то же.
    В таких случаях речь всегда идёт не про конкретный кейс, а про обобщенный. Вы не знаете в каком порядке элементы вашего массива, где находится искомый, сколько всего элементов будет в конкретных кейсах, поэтому определяется ряд случаев: средний (по вероятности, если входные данные рандомные), худший (чтобы понимать границы и сколько может "висеть" алгоритм теоретически). Лучшие варианты обычно никого не интересуют, потому что и вероятность их мала, и смысла никакого нет в столь малых величинах.

    У вас типичный случай компромисса в реализации структуры данных. Вы всегда балансируете между памятью и скоростью. Больших семь шапок из овцы не выкроить никак.
    То есть, вы можете сделать такую структуру данных, которая "под капотом" будет держать древовидный индекс с данными или отсортированную по ключу карту значений для бинарного поиска. Хотя эти варианты - суть одно и то же.
    Если не рассматривается вариант размена производительности на память, то в этой задаче у вас будет только O(N) без вариантов.
    Если усложнить структуру данных, то можно добиться и O(logN) при поиске, и даже O(1). Почитайте как устроен словарь в питоне.

    Да, помимо сложности поиска у вас будет сложность вставки в структуру новых элементов. И тут опять трейд-офф. Ну а что вы хотели?
    Ответ написан
    3 комментария
  • Как правильно тестировать базу данных в .NET?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Решение простое - создаешь мок БД для тестов.
    1. Тест начинается - запускаешь БД и заполняешь данными необходимыми (как сказал Василий Банников можно сделать дамп с удаленными чувствительными данными)
    2. После каждого теста необходимо выполнить откат - если какие-то данные были добавлены/удалены/изменены
    3. При завершении тестирования удаляешь БД

    На мой взгляд, здесь просто много инфраструктурной работы. Полезные инструменты:
    1. Testcontainers - запускаешь БД в контейнере. Сам ей пользовался, есть много шаблонов для разных БД, чтобы с нуля не писать все. Можно также скрипт инициализации (схема, дамп) добавить - вот тебе и настройка
    2. В зависимости от фреймворка есть разные механизмы запуска кода после каждого тест-кейса. Если про xUnit, то:
      1. Тестовый класс реализует IDisposable - выполняется после каждого тест-кейса. Можно тут реализовать логику отката БД
      2. Для инициализации самого контейнера (чтобы каждый раз не запускать заново) - IClassFixture



    Также никто не отменял внешний инстанс БД использовать - просишь дба создать отдельную БД специально для тестов, просто запускать теперь параллельно не получится
    Ответ написан
    Комментировать
  • Почему компьютер хуже работает, пока не отключу блок питания?

    @tukreb
    Блок питания, вряд-ли, скорее всего у вас вздулись кондёры на материнке. Проверить это можно самому, отключите всё питание, и посмотрите есть ли на материнке такие цилиндрические контейнеры (бывают маленькие и большие) у которых не плоская крышка, а вздутая, либо ещё бывает снизу под ними что-то вытекло. Если такое есть со вздутием, или вытекшие, то вам в СЦ для починке, либо покупать новую материнку.

    кондёры должны иметь ИДЕАЛЬНО ровную поверхность и под ними тоже всё должно быть чисто, за исключением когда там под ними клей.
    Ответ написан
    6 комментариев
  • Как преобразовать JSON файл в другой JSON файл?

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

    Как видите, всё довольно просто.
    Ответ написан
    Комментировать
  • Почему компьютеры не используют двоично-десятичный формат для вычислений?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Потому что на самом низком уровне ячейки памяти могут иметь только два состояния - 0 и 1, есть сигнал и нет сигнала. Это самая простая реализация. Остальные системы счисления и все остальное, что сверху - это абстракции для людей. Вот поэтому и используются двоичная система счисления. Да, можно написать эмулятор системы с любой битностью - но это стоит ресурсов. С точностью тоже проблем никаких нет: кроме чисел с плавающей точкой есть еще и целые числа - любая нужная точность достигается без проблем. Просто для этого нужны дополнительные ресурсы в виде вычислений/памяти. Есть куча математических библиотек и прочее. Так же, ничего не мешает делать вычислительные системы с основой на любой битности. Это лишь вопрос трудозатрат/финансов и совместимости со всем остальным современным ПО. В СССР был успешный проект трехбитной ЭВМ Сетунь - она успешно решала поставленные задачи. Очень интересный и перспективный проект - жаль, что не получил развития.
    Ответ написан
    2 комментария
  • Почему компьютеры не используют двоично-десятичный формат для вычислений?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Во-первых, что значит "без приближений"? Совсем не понял о чем речь.
    Во-вторых, процессор работает только с числами - про цифры он ничего не знает (точнее для него есть только 2 цифры - 0 и 1). очень редко надо оперировать именно цифрами
    В-третьих, аргумент "в 2,5 раза меньше памяти" - сомнителен. Где меньше?

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

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    У Worksheet - нет неймспейса. В свойстве Namespace атрибута XmlRoot для соответствующего класса поставь пустую строку (null не работает)

    [XmlRoot(ElementName = "Worksheet", Namespace = "")] /* Вот тут */
    public class Worksheet
    {
        [XmlAttribute(AttributeName = "Name", Namespace = "urn:schemas-microsoft-com:office:spreadsheet")]
        public string Name { get; set; }
    }
    Ответ написан
    1 комментарий
  • Как правильно удалить эти коммиты?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    git revert

    1. Получаешь изменения
    2. Выполняешь git revert последовательно для каждого коммита в обратном порядке (т.е. с конца к началу), либо git revert --no-commit HEAD~10..
    3. Коммитишь это
    4. Пушишь


    т.е. примерно так

    git pull
    git revert HEAD~10..
    git commit -m "revert: newbie master push"
    git push


    Вот тут есть подробнее
    Ответ написан
    Комментировать
  • Почему возникает проблема с асинхронной функцией?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    c.on_click = lambda event: await self.btn_clicked(event)

    Здесь создаётся лямбда-функция (не асинхронная), из которой вызывается асинхронная функция.
    В этом и проблема.
    Если у вас апи позволяет сюда (c.on_click) подавать асинхронную функцию, то сделайте её замыканием:
    async for r in self.element.content.controls:
        async for c in r.controls:
            async def on_click(event):
                return await self.btn_clicked(event)
            c.on_click = on_click

    Но это всё не нужно, можно просто подавать в вашем конрктеном случае напрямую нужную функцию:
    async for r in self.element.content.controls:
        async for c in r.controls:
            c.on_click = self.btn_clicked

    А если on_click требует только синхронную функцию, то так не прокатит.
    Ответ написан
    Комментировать
  • Почему не инициализируется экземпляр класса?

    Maksim_64
    @Maksim_64
    Data Analyst
    def __int__(self): Внимательно надо быть. __init__
    Ответ написан
    1 комментарий
  • Как заставить паралельно работать две разные вкладки google chrome?

    @rPman
    Как их можно заставить работать одновременно
    это фича браузера chromium, блокирует работу javascript фоновых окон либо замедляет их стократно. Чтобы заставить их работать в фоне, разработчик веб приложения должен использовать специальную технологии web workers.

    У firefox такой проблемы я не наблюдал, скрипты продолжали работать в свернутом браузере как ожидается.

    Единственный способ решить эту проблему универсально - это обмануть браузер чтобы он считало активным сразу несколько окон. Сделать это можно:
    - с помощью сервера терминалов, т.е. версия windows должна быть серверной либо на старых ревизиях win10 и до старых win7 - утилита rdpwrap).
    Можно запустить терминал под своим пользователем windows, и в каждом запускать браузер или любое другое приложение, которое ожидает быть в фокусе. Для работы приложения нужно будет держать открытыми сессии терминалов.
    Соответственно они будут продолжать работать, даже если их открыть в другой сессии терминалов (каскадно) и затем эту первую закрыть
    - использовать ibik aster для рабочих ревизий windows (включая самые свежие 11), позволяет создавать несколько рабочих терминалов (настоящих, не виртуальных как терминалы rdp) но для каждого потребуется свой монитор (можно обмануть с помощью заглушек в разъемы видеокарты и подключаться к терминалу с помощью локально запущенного vnc в каждом)
    Ответ написан
    4 комментария