Задать вопрос
  • Знаю только 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 комментария
  • Как собрать такое количество интернет-магазинов в каталог?

    @Kirill-Gorelov
    С ума с IT
    Бро, все достаточно тревиально(если могешь)....
    Есть каталог всех доменов, которые только существуют.
    Анализируешь их CMS и контент сайта.
    Контент можно собрать с помощью краулера + немного магии и готово) Это если очень коротко.
    Не надо нанимать 400К программистов. К тому же у большинства магазинов есть sitemap и он открыт на чтение всем.
    Ответ написан
    5 комментариев
  • Как собрать такое количество интернет-магазинов в каталог?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Почему так много.
    Это агрегатор. Агрегаторы как правило используют готовый API, либо находят хаки как получить доступ к приложениям. Вот так и парсят/находят. Самих магазинов много - это не Российский рынок, а интернациональный. Грубо говоря, возьми все магазины мира и вот получишь этот рынок.

    Как собрать так много - искать и исследовать.

    Терпение и труд все перетрут, как говорится
    Ответ написан
    Комментировать
  • Можно ли отключить подсветку мыши Aceline GS Rage 100 White?

    15432
    @15432
    Системный программист ^_^
    - разобрать крестовой отвёрткой
    - выдрать светодиоды к чертям
    Ответ написан
    2 комментария
  • Как удалить элемент из массива в local storage по его индексу?

    AlexanderK-A
    @AlexanderK-A
    UTC+10
    Извлечь из localstorage значение -> преобразовать из строки в массив JSON.parse() -> сделать что надо с массивом -> сохранить в localstorage JSON.stringify()
    Ответ написан
    Комментировать
  • Как сделать графический интерфейс для своей ОС на rust?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Начать можешь с этого туториала - https://os.phil-opp.com/vga-text-mode/
    В нем реализуется простой текстовый интерфейс, но как пример этого достаточно: объясняются основные концепции как буфер видео памяти, представление букв и т.д.
    Ответ написан
    Комментировать
  • Как оптимизировать сервер с большим количеством запросом?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Как понял схема данных следующая:
    - Есть замер времени - отедльный объект со своим ID
    - У каждого замера времени есть список штампов - конкретного времени
    - Эти штампы создают пользователи - отправляют запросы

    Для данного кейса мне видится такое решение:
    - Используем Redis в качестве БД
    - Для ID замеров используем snowflake
    - Тип данных Redis для замеров - list (список)
    - В каждом списке храним эти штампы - строка или unix timestamp (неважно)

    Таким образом, на каждый запрос просто добавляем новый элемент в этот список.

    Redis хорошо выдерживает высокую нагрузку + его можно масштабировать.
    Благодаря snowflake можно горизонтально мастшабировать свои сервисы.
    Также, ты указал websocket - здесь как хочешь. Но в .NET есть реализация Redis которая использует мультиплексирование - здесь он будет уместен.
    Ответ написан
    2 комментария
  • Какие есть оптимальные способы хранения и передачи изображений из MongoDB?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, есть: хранить сами изображения не БД, а в отдельном файловом хранилище с внешним доступом по ссылке-идентификатору. В самой же БД хранить только идентификаторы изображений в хранилище. Это стандартная практика работы с файлами и БД.
    Ответ написан
    Комментировать