• Как правильно к переменной задать функцию из PySimpleGUI?

    @maximq
    QA Engineer
    Пробовали искать? по запросу pysimplegui open file dialog очень много подходящих результатов
    https://stackoverflow.com/a/67069467
    https://www.pysimplegui.org/en/latest/#popup_get_file

    text = sg.popup_get_file('Please enter a file name')
    sg.popup('Results', 'The value returned from popup_get_file', text)
    Ответ написан
    Комментировать
  • Использование Linux?

    @rPman
    Первая проблема любого linux - это драйвера, пока производители не пошевелятся, доля этой ос будет не выше 3-5% а пользователи будет играть в рулетку - заведется/не заведется.

    Вторая проблема у тебя - это Huawei, китайцы всегда делали софт и поддержку в образцово показательном в худшем виде.

    Ну и по поводу запуска приложений, библиотеки устанавливать надо и на windows. Если разработчик не позаботился чтобы отметить нужные в зависимостях, ставить из вручную. Те что идут в репозитории обычно корректно настроены.
    Ответ написан
    1 комментарий
  • Есть ли смысл учиться в вузе на заочном, платно, на информатике?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Отвечу так.
    НИКТО не знает будет ли какой-то толк через 4-5 лет даже в самой РФ.

    Но корочка не помешает, особенно если все-таки будете каким-то образом учиться и сдавать экзамены, ибо это тоже работа над каким-то задачами, получение кругозора и так далее.

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

    Лично я не сталкивался, но я не меняю работу часто, и меня больше брали по рекомендации со стороны.
    Ответ написан
    Комментировать
  • Можно ли как либо защитить php-проект от "угона" другим наёмным программистом (фрилансером)?

    pindschik
    @pindschik
    ФЫВА ОЛДЖ
    Вот уже и пришло на хабр поколение, не читавшее хабр :)
    https://habr.com/ru/articles/142668/
    Ответ написан
    Комментировать
  • Спалят ли HR резюме?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    есть
    поэтому указываешь свой второй номер
    "я сам себе начальник"

    яндекс мало что можеит впечатлить кроме гигантов -конкурентов, а из них, обычно, глупо переводиться в Яндекс
    Ответ написан
    7 комментариев
  • Можно ли выделить ячейки в столбце цветом, в которых совпадает имя и фамилия? А отчества разные или отчества вообще нет?

    ProgrammerForever
    @ProgrammerForever Куратор тега Google Sheets
    Учитель, автоэлектрик, программист, музыкант
    Разделите ФИО на 3 части через SPLIT, возьмите первые 2, составьте ФИ. Останется только сделать список уникальных значений и посмотреть на длину начального списка и списка уникальных значений.

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

    idShura
    @idShura
    Можно ли сделать чтобы такие ячейки выделялись цветом?

    Можно!

    upd
    1. В столбец вставляешь формулу
    =INDEX(SPLIT(A1; " "; TRUE;TRUE);1)&" "&INDEX(SPLIT(A1; " "; TRUE;TRUE);2)

    2. Делаешь условное форматирование колонки B. Формула =COUNTIF(B:B;B1)>1
    6564970649a60364699672.png
    Ответ написан
    1 комментарий
  • В python начинающий. Не понимаю в чем ошибка именно когда int(input())?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Комментировать
  • Как через Python вставить текст?

    @DenisShahbazyan
    Вот так можно вставить текст в окно блокнота.
    Используется только одна внешняя библиотека "pip install pypiwin32" - для ее установки. (После установки перезапусти IDE)

    import time
    import ctypes
    import win32con
    from ctypes import wintypes as w
    
    
    KEYEVENTF_SCANCODE = 0x8
    KEYEVENTF_UNICODE = 0x4
    KEYEVENTF_KEYUP = 0x2
    SPACE = 0x39
    INPUT_KEYBOARD = 1
    
    # not defined by wintypes
    ULONG_PTR = ctypes.c_ulong if ctypes.sizeof(
        ctypes.c_void_p) == 4 else ctypes.c_ulonglong
    
    
    class KEYBDINPUT(ctypes.Structure):
        _fields_ = [('wVk', w.WORD),
                    ('wScan', w.WORD),
                    ('dwFlags', w.DWORD),
                    ('time', w.DWORD),
                    ('dwExtraInfo', ULONG_PTR)]
    
    
    class MOUSEINPUT(ctypes.Structure):
        _fields_ = [('dx', w.LONG),
                    ('dy', w.LONG),
                    ('mouseData', w.DWORD),
                    ('dwFlags', w.DWORD),
                    ('time', w.DWORD),
                    ('dwExtraInfo', ULONG_PTR)]
    
    
    class HARDWAREINPUT(ctypes.Structure):
        _fields_ = [('uMsg', w.DWORD),
                    ('wParamL', w.WORD),
                    ('wParamH', w.WORD)]
    
    
    class DUMMYUNIONNAME(ctypes.Union):
        _fields_ = [('mi', MOUSEINPUT),
                    ('ki', KEYBDINPUT),
                    ('hi', HARDWAREINPUT)]
    
    
    class INPUT(ctypes.Structure):
        _anonymous_ = ['u']
        _fields_ = [('type', w.DWORD),
                    ('u', DUMMYUNIONNAME)]
    
    
    lib = ctypes.WinDLL('user32')
    lib.SendInput.argtypes = w.UINT, ctypes.POINTER(INPUT), ctypes.c_int
    lib.SendInput.restype = w.UINT
    
    
    def send_scancode(code):
        i = INPUT()
        i.type = INPUT_KEYBOARD
        i.ki = KEYBDINPUT(0, code, KEYEVENTF_SCANCODE, 0, 0)
        lib.SendInput(1, ctypes.byref(i), ctypes.sizeof(INPUT))
        i.ki.dwFlags |= KEYEVENTF_KEYUP
        lib.SendInput(1, ctypes.byref(i), ctypes.sizeof(INPUT))
    
    
    def send_unicode(s):
        i = INPUT()
        i.type = INPUT_KEYBOARD
        for c in s:
            i.ki = KEYBDINPUT(0, ord(c), KEYEVENTF_UNICODE, 0, 0)
            lib.SendInput(1, ctypes.byref(i), ctypes.sizeof(INPUT))
            i.ki.dwFlags |= KEYEVENTF_KEYUP
            lib.SendInput(1, ctypes.byref(i), ctypes.sizeof(INPUT))
    
    
    def find_notepad_window(notepad_title):
        while True:
            notepad_handle = ctypes.windll.user32.FindWindowW(None, notepad_title)
            if notepad_handle != 0:
                return notepad_handle
            time.sleep(1)
    
    
    def insert_text_into_notepad(notepad_handle, text):
        # Развернуть окно, если оно свернуто
        ctypes.windll.user32.ShowWindow(notepad_handle, win32con.SW_RESTORE)
        # Сделать окно активным
        ctypes.windll.user32.SetForegroundWindow(notepad_handle)
        # Изменить заголовок окна
        # ctypes.windll.user32.SendMessageW(notepad_handle, win32con.WM_SETTEXT, 0, text)
    
        # send_scancode(SPACE)
        # Текст в блокнот
        send_unicode(text)
    
    
    if __name__ == "__main__":
        notepad_title = "Безымянный – Блокнот"
        text_to_insert = "Привет, мир!"
    
        notepad_handle = find_notepad_window(notepad_title)
        insert_text_into_notepad(notepad_handle, text_to_insert)


    Чтобы найти все окна в системе (все имена окон) запусти это
    import ctypes
    
    
    def enum_windows_callback(hwnd, lParam):
        window_title = ctypes.create_unicode_buffer(1024)
        ctypes.windll.user32.GetWindowTextW(hwnd, window_title, 1024)
        print(f"Window Handle: {hwnd}, Window Title: {window_title.value}")
        return True
    
    
    ctypes.windll.user32.EnumWindows(ctypes.WINFUNCTYPE(
        ctypes.c_bool, ctypes.c_ulong, ctypes.c_ulong)(enum_windows_callback), 0)
    Ответ написан
    Комментировать
  • Как через Python вставить текст?

    lxstvayne
    @lxstvayne
    Люблю Python
    В Python можно вставлять текст!
    Ответ написан
    Комментировать
  • Location в nginx для алиас, как настроить правильно?

    Lynn
    @Lynn
    nginx, js, css
    Проще всего добавить ещё один location
    location = /test {
        return 302 /test/;
        # или 301
    }


    «Магия» с редиректом /path → /path/ работает только если запрос внутри location обрабатывается одной из *_pass директив.


    nginx.org/ru/docs/http/ngx_http_core_module.html#l...
    [...]
    Если location задан префиксной строкой со слэшом в конце и запросы обрабатываются при помощи proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass или grpc_pass, происходит специальная обработка. В ответ на запрос с URI равным этой строке, но без завершающего слэша, будет возвращено постоянное перенаправление с кодом 301 на URI с добавленным в конец слэшом.
    [...]


    В вашем конфиге обработка запроса происходит не в location /test/, а в location ~ \.php$ (хоть он и вложен в предыдущий) поэтому «магического» редиректа нет и надо сделать его самостоятельно.
    Ответ написан
    7 комментариев
  • Как правильно решить проблему с настройкой nginx?

    smilingcheater
    @smilingcheater
    location /elastic {
                proxy_pass http://127.0.0.1:9200;
            }


    Добавьте слеш
    location /elastic {
                proxy_pass http://127.0.0.1:9200/;
            }

    В документации это написано
    https://nginx.org/ru/docs/http/ngx_http_proxy_modu...
    Ответ написан
    Комментировать
  • Как ускорить работу с большими таблицами данных?

    @Everything_is_bad
    Да, в sql базу, плюс разобраться с индексами
    Ответ написан
    Комментировать
  • К чему готовиться работая преподом в колледже?

    Snakecharmer
    @Snakecharmer
    Широкопрофильный менеджер и аналитик
    Коллега преподает по субботам ит-дисциплину. Просто для души.
    Вам готовиться нужно к тому, что придется выбирать: либо преподавание в колледже (там еще большая бюрократия), либо работа на коммерческих проектах. Дело в том, что все ищут сотрудника на полный день. 4 дня на обычной работе, и 1 день в колледже - так не будет. Нормальная пятидневная рабочая неделя - вот что нужно работодателю.

    Есть и промежуточный вариант - устроиться в частную школу программирования. Там можно подбирать удобные для вас часы после основной работы.

    Есть компании, которые сами проводят обучающие курсы на базе колледжей или вузов. Либо принимают у себя студентов на преддипломную практику. Тут вы сможете пригодиться, если есть тяга к преподаванию :)
    Ответ написан
    Комментировать
  • К чему готовиться работая преподом в колледже?

    Deita
    @Deita
    Для того чтобы быть всегда "в ногу со временем" надо учащимся раздавать свой личный email направо и налево, чтобы они после выпуска, смогли вам всё время писать найдя работу, с просьбой решить ту или иную их задачу на работе. Таким образом, вы будете знать, что сейчас востребовано, и за решение каких задач платят на рынке.

    К чему готовиться работая преподом
    к тому что вас могут закидать прессованными бумажками в спину если с порога не проявите строгость и серьёзность своих намерений
    Ответ написан
    2 комментария
  • К чему готовиться работая преподом в колледже?

    @tyxeo
    дальний знакомый Мурыча
    чтобы учить - надо стать опытным мастером для начала
    вчерашний ученик не может работать учителем

    должна быть дистанция с учениками - не меньше 20 лет
    чтобы они хоть немного проявляли уважение

    но детишек в кружках ты уже можешь учить

    в россии нет более неуважаемой и позорной профессии
    у нас не любят не ценят и не уважают учителей ученных и тд
    Ответ написан
    4 комментария
  • К чему готовиться работая преподом в колледже?

    @AlexSku
    не буду отвечать из-за модератора
    У меня родственник преподавал в вузе, платили мало. Стал писать переводы статей в интернете, потом уволился, занимается рекламой в интернет-магазине, жизнь удалась.
    Ответ написан
    Комментировать
  • К чему готовиться работая преподом в колледже?

    Griboks
    @Griboks
    Вот 10 самых главных фактов о преподавании:

    1. Ваши ученики тупые. Очень тупые. Даже, если это какие-нибудь доценты просто пришли послушать, то они будут задавать максимально глупые вопросы.
    2. Вам будут задавать самые каверзные вопросы. Например, чем отличаются декларация/дефиниция/инициализация/аннотация/запись переменной.
    3. Вам платят меньше чем в макдаке. Вас никто не уважает. При первом разногласии вас уволят. Вас оценивают по kpi.
    4. Вы будете тратить в 3 раза больше времени, чем запланировали.
    5. Придётся повторять буквально всё по 10 раз. И всё равно не запомнят.
    6. 90 % учеников не хотят учиться, им не интересен ваш предмет.
    7. Говорить целую пару очень сложно. Вы можете сорвать голос. Вставьте несколько задач для самостоятельной работы, чтобы у вас были перерывы. Потренируйте диафрагму и ораторское искусство. Не торопите речь.
    8. Вам придётся выставлять балы. Поэтому после занятий у вас всегда будет несколько человек, которые будут кивать головой и ждать зачётов. Даже если занятия закончены, вам всё равно придётся ставить зачёты ещё примерно месяц.
    9. Все материалы - это ваша интеллектуальная собственность. Никто не имеет право требовать от вас что-нибудь свыше речи. Однако, колледж может записывать ваши пары на видео и выкладывать в интернет. А ученики всегда будут требовать от вас построчной инструкции и подробных презентаций, а ещё лучше книгу с ответами на все вопросы.
    10. Вас застят написать программу и прочую бюрократическую пачку документов.
    Ответ написан
    6 комментариев
  • Как считать выражение из переменной?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Если это
    lst = [1, 2, 1-2**64, 2**64]
    то нельзя, так как 1-2**64 вычисляется в момент создания списка.

    Единственный вариант - сразу передавать в строковом виде
    lst = ["1", "2", "1-2**64", "2**64"]
    pairs = [(x, eval(x)) for x in lst]
    min_pair = min(pairs, key=lambda x: x[1])
    print(min_pair[0])
    Ответ написан
    Комментировать
  • Python and json не правильно формирует базу, как починить?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Всё правильно. JSON не умеет работать с режимом append так, как хотите вы.

    1. Читаете файл с флагом "r" допустим в переменную data через data = json.load(f)
    2. В data вставляете/обновляете всё что вам нужно
    3. Записываете файл в режиме "w" через json.dump(obj, fp)
    Ответ написан
    2 комментария