• Скомпилированный в GCC exe файл вылетает досрочно?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Звучит в точности как симптомы Undefined Behavior. На самом деле программа вылетает из-за, например, доступа к неправильным указателям. Но во время отладки звезды выстраиваются так, что это некорректное действие не приводит к падению программы.

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

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

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

    fenrir1121
    @fenrir1121
    Начни с документации
    INSERT ... ON CONFLICT DO NOTHING
    Ответ написан
    Комментировать
  • Как получить первую дату в этом году в гугл таблицах?

    @ivan-kis86
    =date(year(today());1;1) покажет 01.01.2023
    вот такую формулу можно использовать. только если наступить 2024 год т уже дата будет 01.01.2024
    Ответ написан
    1 комментарий
  • Какую систему биллинга для сервисов на Python или NODE использовать?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    все что касается денег - только с нуля, опираяся на API платежки
    подсматривать в готовое можно, но использовать не советую
    это, конечно, если потом [жопой] за код отвечать, если наваял и отдал - можно и django payments какой нибудь
    Ответ написан
    Комментировать
  • Почему aiohttp web сервер перестает отвечать на запросы?

    @Everything_is_bad
    По логам больше похоже на сетевые проблемы, а так, винда не лучшая ОС для aiohttp
    Ответ написан
    6 комментариев
  • Как удалить много строк (порядка 500.000) из csv файла в Python?

    @deliro
    Просто перепиши в соседний csv файл только те строки, которые должны остаться

    И можно ли это сделать не используя библиотеку csv?

    Так и быть, разрешаю
    Ответ написан
    Комментировать
  • Что вы делали для облагораживания разработки на php?

    p4s8x
    @p4s8x
    1) Тестовый сервер
    Очень часто бывают ситуации, когда разработчик(в частности фрилансер) находится не за своим любимым рабочим местом, а где-то в гостях, в отъезде и т.д.
    Когда появляется необходимость исправить баг или внести какие-либо изменения — разворачивать за чьим-то ноутбуком/стационарником все инструменты, ставить денвер, качать все целиком, разворачивать базу. Значительно проще поставить winscp¬epad++ и внести правки на продакшн. С увеличением частоты таких «правок» код превращается в то, что описано выше.
    Для решения таких проблем в первую очередь введен регламент — запрета вносить правки на продакшн, но! одновременно с этим допускается работа на тестовом сервере! Все правки, мелкие большие с сервера коммитятся в свн(изучить консольные команды svn для разработчика не составляет проблемы… их нужно 2-3 в такой ситуации) и уже только после этого апдейт на продакшене. Для апдейта на продакшене даже сделан www-скрипт, который позволяет делать апдейт без подключения к ssh и т.д.
    Изменения в БД все только через миграции!
    Так что делайте тестовый сервер обязательно! ИМХО необходимая вещь любому проекту.

    2) Трекер! Писать и общаться через трекер воспитывает и клиента и заказчика.
    Мы на томже тестовом развернули редмайн. Позже добавили к нему tikiwiki, в которую пишутся полезные няшечки для других разработчиков и клиента. Трекер также отображает активность разработчиков для клиента. Клиенту приятно посмотреть, что вот была такая ошибка и по её исправлению был сделан такой-то коммит и вон чето поменяли.

    3) Проведение рефакторинга. Очень сложно клиенту объяснить, что это такое и зачем он нужен. Почему он должен платить за «переписывание» кода? Пишите сразу правильно, скажет он. Практика показывает, что всетаки можно доказать клиенту необходимость этого действия.

    4) Автоматические тесты.
    На тестовом сервере далеко не всегда можно увидеть все проблемы- не поломался ли чужой код.
    Использование фреймворков позволяют не разводить тотальную быдлятину и обложить код тестами.
    Ответ написан
    3 комментария
  • Как правильно к переменной задать функцию из 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...
    Ответ написан
    Комментировать