Задать вопрос
  • UPS автоматическое переключение на аккумуляторе через реле?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Зачем 24 вольта?
    Почему не использовать диоды?
    Их нужно два. Один в цепь БП на плюс анодом к БП, а другой на плюс аккума, анодом к аккуму, катоды диодов соединены с плюсом входа вашего конвертера.
    Конвертер у вас опускает напряжение и падение напряжения на диодах ему не помешают. Там будет полтора-два вольта на них падать. Если диоды шоттки взять, то итого меньше. И никаких реле. У реле есть дребезг при переключении, от этого может случиться сбой по питанию. Такую паузу можно компенсировать большим электролитическим конденсатором по выходу преобразователя. Чем больше ёмкость, тем лучше.
    Ответ написан
    7 комментариев
  • Как задать цвет выпадающего списка в Tkinter Python?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    В ttk.Combobox параметры background и foreground не работают напрямую. Необходимо использовать стили для настройки цветов. Вот как это можно сделать:

    import tkinter as tk
    from tkinter import ttk
    
    root = tk.Tk()
    
    style = ttk.Style()
    style.theme_use('default')
    
    style.configure("TCombobox",
                    fieldbackground="red",  # Цвет фона выпадающего списка
                    background="red",  # Цвет фона поля
                    foreground="#375010",  # Цвет шрифта
                    selectbackground="red",  # Цвет фона при выборе
                    selectforeground="#375010"  # Цвет шрифта при выборе
                    )
    
    frame_1 = ttk.Frame(root)
    frame_1.pack(padx=10, pady=10)
    
    combo = ttk.Combobox(frame_1,
                         values=["Option 1", "Option 2", "Option 3"],
                         height=1,
                         width=24,
                         font=("Windows", 12),
                         style="TCombobox"
                         )
    combo.pack()
    
    root.mainloop()

    Этот код настраивает цвет фона и шрифта для выпадающего списка. Обратите внимание на использование style.configure для настройки внешнего вида.
    Ответ написан
    5 комментариев
  • Как начать путь backend-разработчика?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Забавно вы как-то подменяете местами причины и следствия.
    Вам надо научиться бэкенду, чтобы написать проектов и забить ими гитхаб профиль, чтобы вас взяли на работу?
    Надо понимать. что освоить придётся дохрена информации, повысить свою эрудицию и непрерывно учиться. Единого исчерпывающего источника всей необходимой информации не бывает, а бэкенд (даже питонячий) - это большая и широкая область, в которую в глубину можно копать тоже в любом направлении.

    Есть ряд простых и действенных советов.
    1) Блокнот терминов.
    Вы слушаете много всяких лекций по теме, читаете статьи, изучаете код других проектов и при этом встречаете много незнакомых слов, терминов, названий библиотек и технологий. Нужно выписывать эти слова в блокнотик. Не важно будет ли он бумажный или цифровой. Важно регулярно выделять время на сортировку его содержимого и изучение (хотя бы поверхностное) всего, что там написано. Это сформирует эрудицию.
    2) Читать чужой код. Искать инетресные вам проекты библиотек и вообще софта на гитхабе и разбираться как там внутри и что. Это пополнит ваш блокнот из п.1 и повысит насмотренность кода. Если что-то не понятно почему оно так как есть, то стоит лбо поразбираться в этом, либо отложить до лучших времен.
    3) Писать свой код. Если вам не интересно, то вы не достигнете никакого успеха. А если интересно, то вы будете этим заниматься, если не позволите себе прокрастенировать.
    Выберите интересны вам проекты и направления и пишите помаленьку код. Начните с простого, с MVP, потом развивайте. Если уже на этом шаге трудности, то впору задуматься надо ли оно вам. Если надо, то трудности можно преодолевать. Я не буду сейчас тут сочинять и придумывать за вас ваши трудности. Приходите с конкретными вопросами. Этот пункт про написание кода, которым за одно и заполнится ваш гитхаб. Выберите задачу, которая вам интересна, и делайте. Если на знаете с чего начать - сформулируйте в маркдауне бизнес-требования, выделите MVP, сформулируйте ТЗ, разбейте на крупные задачи, декомпозируйте их до выполнимых подзадачек. Если не писать код, то вы не научитесь это делать и у вас не будет кода. Если писать его, то всё будет.
    4) Идите в джуны и на стажировки. От вас там особо никто не будет требовать каких-то особых знаний, но может попасться хороший ментор, и, если вывезите, то будет хороший старт. Да, мало кто рискует и выделяет ресурсы чтобы учить джунов, но ищущие обрящут. см. п.6
    5) Читайте классику (книги по алгоритмам, технологиям, фреймворкам и т.д. Спорный пункт. но если читать такие книги как художественную литературу, то вы можете начать мыслить в контексте изучаемых технологий и нужными терминами.
    6) Ходите на собесы, решайте задачи публикуемые с собесов. Это позволит найти местечко для стажировки. перестать бояться собеседований и неудач, понять что нужно рынку и индустрии, пополнить блокнотик словами, которые следует изучить.
    7) Не путайте цели и средства. Пишут код. чтобы научиться, а не чтобы забить гихаб и благодаря этому устроиться. Работодателю пофиг на гитхаб, ему важно, чтобы вы делали его задачи из трекера и собеседвоание призвано вы]вить вашу способность к этому. Если какой-то конкретный работодатель предложил вам пойти сперва заполнить свой гитхаб, то это значит что он так вежливо вам намекнул, что ваша квалификация и опыт его не устраивают. Гитхаб - это предлог. Однако и индикатор, кстати, тоже.
    Ответ написан
    1 комментарий
  • Как улучшить выводимый граф?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Готовых инструментов не предложу, но для "поиграться" можно попробовать сделать релаксационную модель с отжигом.
    Набрасываете узлы рандомно, потом эмпирически подбираете функции сил отталкивания между узлами и узлами и рёбрами. Узлы сами будут стремиться занять распределенные положения в стороне от рёбер и других узлов. дальше можно искать новые положения для отдельных узлов, чтобы понизить число пересечений ребер.
    Ещё можно использовать роевые или генетические алгоритмы для поиска расстановки узлов с минимальным самопересечением в графе. Не удивлюсь, если кто-то такими вещами уже озадачивался и можно поискать готовые решения.
    Ответ написан
    Комментировать
  • Как составить список уникальных комплексных решений для уравнения? Как понять что число 0.999999 то же что 1.0000001?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Сравнение нужно делать с некоторой точностью. Получите разность между сравниваемыми значениями и сравнивайте модули с пороговым.
    In [8]: a=0.00001-0.99999j; b=-0.00001-1.000001j
    
    In [9]: abs(a-b)
    Out[9]: 2.2825424420965077e-05

    Вот этот модуль можете сравнить с 1e-4, если меньше, то считаем что числа равны.
    Ответ написан
    3 комментария
  • Как реализовать идеальный метод indexOf?

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

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

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Идея? Есть отличная оригинальная идея - немножко подучиться программировать на выбранном вами языке. Не искать карьеру разработчика ботов беззнания программирования, а именно подучить язык и основы алгоритмизации.
    А задача ваша решается просто. Начать надо с декомпозиции.
    При запуске бота вам нужно открыть этот текстовый файл и загрузить его контент в структуру, и, если не получилось, то создать пустую структуру.
    Если пользователь, нажавший у бота кнопку старт не найден в этой структуре, то бот должен запустить сценарий регистрации. Что вы под этим понимаете? Вопросы какие-то задать пользователю и сохранить ответы?
    При окончании регистрации нужно сохранить структуру в файл.

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

    После этого у вас вот эти вот вопросы отпадут все.
    Ответ написан
    Комментировать
  • Как встроить геопривязку в телеграмм бот?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Что-то вы не очень понимаете, похоже, как это всё работает. Яндекс-карты тут ни при чем. Пользователь включает трансляцию своей геолокации для бота, а бот принимает обновленные координаты периодически от пользователя и делает с ними что хочет.
    Как вы хотите выводить карту? Прямо в чате с ботом? Так она выводится самим интерфейсом клиента в вашем чате при старте трансляции, но это не яндекс-карта.
    Да, бот может при попадании пользователя в заданную точку как-то среагировать.
    В чем у вас, собственно в опрос? АПИ для написания бота читали? Там всё необходимое есть
    Ответ написан
    Комментировать
  • Почему возникает проблема с асинхронной функцией?

    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 требует только синхронную функцию, то так не прокатит.
    Ответ написан
    Комментировать
  • Есть ли возможность чтобы в группе автоматически отмечался человек в сообщениях в Телеграмме?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    нет
    Ответ написан
    Комментировать
  • Как автоматически скачивать файл с сайта регулярно?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Чтобы это сделать вам нужно освоить selenium.
    С помощью него можно делать скрипты автоматизации имитирующие действия пользователя в браузере.
    Ответ написан
    Комментировать
  • Как получать нужную мне информацию в боте по расписанию?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    https://dzen.ru/list/gadgets/python-aiogram-schedule
    Вторая ссылка по счету в выдаче гугла.
    Вы сперва приводите варианты, которые рассматривали, и, если сами не смогли определить какой из них лучше, то свои соображения и эти варианты выкладывайте в вопрос. А так это не вопрос а задание на поиск информации в сети.
    Заданиям тут не место. Ищите сами и конкретные вопросы и непонятки задавайте.
    Ответ написан
    1 комментарий
  • Что я делаю не так Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    знатоки, которые подскажут, что я забыл

    Вы забыли изучить особенности работы вашей операционной системы с типами файлов.
    Вам нужно прописать ассоциацию *.py файлов с python.
    Однако в любом случае это странный способ запускать питоновские скрипты. Обычно это делают в консоли через venv.
    Но так как вы хотите тоже можно, конечно. Для очень специфических нужд...
    Гуглите, короче, как прописывать ассоциации файлов в вашей системе.
    Я в винде ничего не делал уже лет 10, не помню где там оно.
    Ответ написан
    Комментировать
  • Linux на SSD рядом с Win10, на внешний HDD или виртуализация?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Я бы посоветовал линукс в виртуальной машине по ряду причин.
    Оговорюсь, что к моей рекомендации нужно отнестись осторожно, поскольку я вообще не пользуюсь виндой уже больше 10 лет, могу плохо представлять ваши юзкейсы.
    Итак, причины.
    - Две операционки нативно поставленные на комп - это лаг при переходе и сниженная мотивация к тому, чтобы что-то лишний раз сделать в менее привычной среде. Вам просто лень будет перезагружаться и терять контекст каждый раз.
    - Приседания с Grub и разными файловыми системами с их спецификой, плохой доступностью объёмов из другой операционки - это лишняя когнитивная нагрузка, которая вас будет путать на ранних этапах освоения новой системы.
    - С другой стороны линукс в виртуальной машине - это практически чистая изолированная система почти без оглядки на виндового "соседа".
    - Мгновенное переключение (если памяти хватает).
    - К минусам можно отнести неудобства, связанные со спец-клавишей для работы в GUI гостевой системы.

    Если вы осваиваете линукс - просто прыгайте как в омут с головой и обвешайтесь кучей проектов, чтоб некогда было играть. А зачем еще в винду? ну может CAD-системы какие, фотошоп...
    Второй вариант - не рассматривайте линукс как ось, где можно жить в гуях, как вы это делаете в винде. Пусть линукс будет местом для бэкенда ваших проектов. Поднимите там облачный офис, файлопомойку с веб-интерфейсом, торрентокачалку, гитлаб с пайплайнами и прочее. Но в таком случае лучше иметь, всё же, отдельный комп, пусть и слабенький. Поставьте его на балкон или антресоль, переключите кулеры на 5 вольт чтобы не шумел, убедитесь, что не перегревается и пользуйтесь почаще, иначе забьёте.
    Ответ написан
    2 комментария
  • Как создать offline карту на python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Судя по постановке вопроса и ошибкам в его тексте вам ещё не скоро хватит знаний и опыта для реализации задуманного.
    Нет смысла отвечать подробно на него. Но в общих чертах сделать такой оффлайн навигатор несложно.
    Правда писать его с нуля на чистом питоне тоже никакого смысла нет. Обычно поднимают в докер-контейнерах готовые:
    - постгрес с постгисом
    - osrm
    - тайл-сервар
    - ну и само приложение, которое может быть как бэкенд веб-приложения или написано на том же ткинтере.

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

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    А в чем проблема? Сгенерите случайное число от 0 до 99. Если число меньше, чем требуемый процент срабатывания, то считаем "сработало", если больше или равно, то нет.
    Ответ написан
    2 комментария
  • Какой бюджетный набор для пайки плат можно собрать?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Нужно наращивать свои знания и опыт постепенно. Сразу не получится, да и вложения на профессиональные сложные инструменты преждевременны при нулевых знаниях и отсутствии опыта.
    Начните с малого. Вот есть видеоблогер (https://alexgyver.ru/), который занимается популяризацией на эту тему. У него на сайте есть наборы для начинающих и полезные статьи по теме.
    Стоит начинать с маленьких простых проектов, а реболлинг и восстановление дорожек на многослойных платах - это довольно сложные темы. Они не для новичков. Двигайтесь к ним постепенно. В ютубе полно обучающих видео, не ограничивайтесь только короткими. Есть видеоуроки пайки, там много полезных приёмов и хитростей открывается.
    Ответ написан
    Комментировать
  • Как пофиксить telebot не отправляет сообщение?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Потому что current_time нигде не меняется в цикле, например. Но тут не весь код, причин ещё может быть даже кроме этой миллион. А эта причина точно делает этот код бесполезным полностью.
    Ответ написан
    3 комментария
  • Как правильно зарядить параллельно 2 AGM аккумулятора?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Первый вариант норм.
    По закону Кирхгофа ток разделяется на оба ваших аккума согласно их сопротивлению, а оно будет пропорционально заряду.
    В общем не парьтесь, удваивайте ток и заряжайте параллельно. Можете, кстати, не удваивать ток, меньшим током будетие заряжать вдвое дольше, но это положительно скажется на ресурсе. Если не критично удвоение времени заряда, то заряжайте меньшим током. То есть второй вариант тоже норм. Третий не рекомендовал бы без балансировки. Зачем вам этот гермор?
    Ответ написан
    Комментировать
  • Существует ли максимально простой и универсальный способ сборки проектов с GitHub в готовый exe?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Репозиторий проекта - это не что-то стандартное. Авторы вольны применять любые процессы и скрипты для сборки. Может когда-то какой-нибудь ЧатЖПТ и сможет "прочитать" ридми ЛЮБОГО проекта и проделать всё необходимое для его сборки, но пока что такой инструмент мало реалистичен. Если разработчик сам не настроил CI/CD в проекте, то никак без него это сейчас не сделать.
    Ответ написан
    Комментировать