Задать вопрос
  • Надо ли закрывать соединение psycopg2 когда программа заканчивается кодом Process finished with exit code -1?

    deepblack
    @deepblack Куратор тега Python
    Используйте менеджер контекста:

    from contextlib import closing
    with closing(psycopg2.connect(...)) as conn:
        with conn.cursor() as cursor:
            cursor.execute('SELECT * FROM users LIMIT 5')
            for row in cursor:
                print(row)


    UPD:

    Могу порекомендовать ознакомиться с этим

    Пример использования (выдернул из проекта)
    from psycopg2.pool import ThreadedConnectionPool
    from psycopg2.extras import RealDictCursor
    from contextlib import contextmanager
    from urllib.parse import urlparse
    
    DATABASE_URL = 'postgresql://postgres:postgres@localhost/postgres'
    url = urlparse(DATABASE_URL)
    
    pool = ThreadedConnectionPool(1, 50,
                                  database=url.path[1:],
                                  user=url.username,
                                  password=url.password,
                                  host=url.hostname,
                                  port=url.port)
    
    
    @contextmanager
    def get_db_connection():
        try:
            connection = pool.getconn()
            yield connection
        finally:
            pool.putconn(connection)
    
    
    @contextmanager
    def get_db_cursor(commit=False):
        with get_db_connection() as connection:
            cursor = connection.cursor(cursor_factory=RealDictCursor)
            try:
                yield cursor
                if commit:
                    connection.commit()
            finally:
                cursor.close()
    
    
    # Пример использования
    with get_db_cursor() as cursor: 
        cursor.execute("SELECT city, temp_lo, temp_hi, date FROM weather;") 
        data = cursor.fetchone()
        
    with get_db_cursor(commit=True) as cursor:
        cursor.callproc("SOME_PROC_NAME")
    Ответ написан
    3 комментария
  • Как начать зарабатывать начинающему web-разработчику в 17 лет?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Блин, а я-то думал - что же так прорвало-то? А это ж отгремели "ночи пьяных бантиков" :)

    ТС и все бывшие уже школьники - во-первых, внимательно, по буквам перечитайте ответ Рональд Макдональд - это сбережет вам всем множество нервов, времени, самооценки и здоровья.

    В-вторых:
    Никто и никогда не берет джунов на удаленку

    На удаленку берут только матерого спеца, у которого есть свой портфолио и который сам может диктовать условия найма. Джуна могут взять только в офис, потому что никому не надо отвечать за то, что он сорвал очередной дедлайн - и спросить-то с него нечего! Если джун устроился в офис - за любые деньги (здесь любые - это в совершенно буквальном смысле!) - он должен корпоративный гимн распевать от счастья :) И жужжать электровеником, работать, набираться опыта, помня что он никто и звать его никак.

    Да, на фрилансе люди зарабатывают. И иногда даже прилично так, что не стыдно сказать :)

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

    Быстро и много в ИТ во фрилансе джуну заработать невозможно

    Особенно сейчас, когда после "ночи пьяных бантиков" туда кинутся голодноглазые школьники, мечтающие о чудо-заработках - и скинут (ну, те, кто реально займется) и без того низкие цены и усилят и без того высокую конкуренцию...

    Хотите за лето заработать денег, а не считать копейки на проезд - оставьте мечты о том, чтобы работать дома. Дома работать не получается и у людей с в стопицот раз большим уровнем самоорганизации, чем у вчерашнего школьника. Идите в Макдональдс - только не балдеть, а работать, на стройку, в промоутеры, листовки разносить, собак чужих выгуливать...

    Добро пожаловать в жесткий и безжалостный мир взрослых. Вы все, кажется, в него так торопились - бухать и девок щупать? You are welcome. Но не обижайтесь на жесткость реакции - миру на вас на самом деле плевать...
    Ответ написан
    2 комментария
  • Где сейчас тусуются серьезные PHP программисты?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Завсит от цели, для чего это спрашивается.

    Если чтобы поприставать с нубскими вопросами - то нигде.
    Если чтобы почитать умных мыслей - РНР дайджест на Хабре прекрасно суммирует все, что было написано за две недели. У меня например никогда не хватает времени, чтобы прочесть всё. Куда больше-то - я уж и не знаю.
    Если чтобы поучаствовать в серьезном прокете - на гитхабе, выбирай любой.
    Если чтобы послушать интересные доклады и пообщаться вживую - то конференции.
    Если интересует внутренне устройство языка - то php internals.
    Если интересует, что пишут пхп селебрити про что угодно, кроме программирования - то твиттер (Расмус показывает картинки из аэропортов и роботов, которых собирает его сын, Сара постит котиков - и так далее).

    Где точно не тусуются:
    Тостер и всякие подобные ресурсы типа стаковерфлоя.
    Ну то есть специалиста можно найти, если поискать, но концентрация будет гомеопатическая, если учитывать количество восторженных щеночков, которые увидели язык вчера, и спешат срочно поделиться уже накопленным багажом знаний.
    Чаты. Телеграм, дискорд - вот это вот все.
    Самая адовая трата времени, которая в принципе бывает в жизни.
    Опять же, люди пишут о чем угодно, кроме программирования, и ради пары полезных строчек надо убить весь день.
    Ответ написан
    4 комментария
  • Где получить высшее в IT для трактора?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Для рабочей визы нужно вообще много чего, и корочки может не хватить.
    Отказать в визе могут просто так, даже если есть рекомендательные письма.
    Вам понадобится не просто корочка, а вероятно уровень отличного мидла, а скорее всего сеньора или даже тимлида, поскольку Трамп сильно прикрутил гайки.

    работаю программистом в Москве

    Так перейдите аутсорс, там часто есть программы релокации, где вам помогут с оформлением.
    Опять таки - сейчас без рекомендаций уехать сложно. А рекомендации - это вам нужно быть специалистом, а не выпускником.
    Ответ написан
    2 комментария
  • Программистами рождаются или становятся?

    Moskus
    @Moskus
    Ответ довольно прост по сути, но не очень короток в объяснении.

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

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

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

    Есть редкие случаи, которые не укладываются в общую схему, но на то они и редкие, что их стоит рассматривать только как исключение.

    Добавлю, что такое деление на три группы нужно понимать, как деление на три интервала, между которыми нет четкой границы. Скажем, где-то в нижней области второго интервала существуют люди, которые слишком много времени вынуждены тратить на борьбу со своей природной неорганизованностью, потому именно "хорошими" программистами им быть сложно - условный error rate слишком высок, даже если они, в конце концов, могут исправить всё, что накосячили, пока те, у кого этот error rate - ниже, двигаются вперед быстрее в решении задачи. Также и наоборот - усердный и терпеливый посредственный программист может систематически работать лучше ленивого гения, хотя гений иногда и способен придумать за час решение, которое будет эффективнее решений, на которые другие потратили дни.
    Ответ написан
    2 комментария
  • Web или 1с изучать на перспективу?

    sim3x
    @sim3x
    Что посоветуете изучать на перспективу, 1с или веб?
    C/C++/Java

    Что еще долго будет востребовано
    что легче освоить
    где ниже порог входа,
    что лучше по деньгам?
    Выберите два пункта из четырех
    Ответ написан
    1 комментарий
  • Почему первое присвоение не работает в if?

    GavriKos
    @GavriKos
    А вы ошибку внимательно почитайте - в ней все написано.

    Ну или просто подумайте что в таком случае должен вывести println, если ни один из if-ов не сработал.
    Ответ написан
    Комментировать
  • Высшее IT образование для миграции "прикладная информатика" - заочно?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Начал задумываться о переезде в Германию, но из образования у меня только СПО

    Типично для wannabe-мигранта.

    Задайтесь вопросом: "Я могу чего-то добиться в России?". Если нет, то попытайтесь это сделать хотя бы тут, иначе потом будет мучительно больно.
    Ответ написан
    22 комментария
  • Ошибка при запуске сервера Django. Что делать?

    deepblack
    @deepblack Куратор тега Django
    Имя хоста написано кириллицей и Python 3.4 или старее?
    Windows: socket.gethostbyaddr(name) fails for non-ASCII hostname
    bugs.python.org/issue26227

    • Обновить Python
    • Переименовать хост
    • Либо запускать Django передав ему ip адрес вместо имени хоста python manage.py runserver 127.0.0.1:8000
    UPD:

    я попробовал воспроизвести подобную ошибку в среде Win 10 (в VirtualBox) и у меня получилось только в случае
    если в файле hosts присутствует алиас с кириллицей и локаль Windows русская.
    spoiler
    5cfb3a55d8bd0793644215.png5cfb39ec9a939231168766.png

    Если удалить русский, оставив только английский (на русском только интерфейс системы), то всё ок.

    Так-же не удалось воспроизвести ошибку если при запуске указывать ip хоста как 127.0.0.2
    python manage.py runserver 127.0.0.2:8080
    При условии, что в hosts нет алиаса с кириллицей для него.

    На чистой системе (установлены только Python 3.7.2 и Pycharm Community, русская локаль) подобной ошибки нет.

    Заглянул в исходники socket.py и socketmodule.c
    Скорее всего данная особенность связаны с этой частью исходного кода Python на C, а именно PyUnicode_DecodeFSDefault
    #ifdef MS_WINDOWS
        /* Issue #26227: gethostbyaddr() returns a string encoded
         * to the ANSI code page */
        return PyUnicode_DecodeFSDefault(name);
    #else
        /* Decode from UTF-8 */
        return PyUnicode_FromString(name);
    #endif


    Далее, если имя хоста не написано кириллицей и в hosts нет кириллицы следует вывод, что с высокой долей вероятности дело в стороннем софте(антивирус, кривой кряк и т.д.).
    Ответ написан
  • Можно ли гарантированно записать информацию в две базы данных?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    отключение света или kill процесса,

    Отдельно обращаю пристальное внимание на настройки редиса. Он не запишет данные с настройкой fsync по-умолчанию. Дефолтный fsync для AOF режима лога записи у него - раз в секунду. То есть все данные до секунды работы длительности вы можете потерять при крахе ОС.

    Redis не поддерживает протокол двухфазного коммита. И вы не можете сделать durable fsync в два места атомарно.
    Поэтому просто это никак не сделать.
    Что сделать можно - переделать логику, чтобы одна из баз могла при аварии привести данные в консистентный вид используя данные ведущей базы.
    Ответ написан
    Комментировать
  • Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Zoominger
    @Zoominger
    System Integrator
    Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Макдональдс, стройка, кошение травы.

    зарабатывать на вебе

    Пхаха.

    Хочу устроиться джуном в веб-студию удаленно

    Никто. Никогда. Не берёт. Джунов. На удалёнку. Точка.

    Может устроиться к кому-нибудь на фриланс

    Нет.

    Как начать зарабатывать на фрилансе?

    Никак.

    Каждую, чёрт бы её побрал, неделю такие посты. Ну погуглите хоть по Тостеру-то.

    Коротко: это очень плохой план, дикая конкуренция людей со знаниями и опытом выше вашего не дадут вам никаких шансов. Выбирайте другую область.
    Ответ написан
    29 комментариев
  • Что если читать и переводить код как ин яз?

    sim3x
    @sim3x
    Чтение кода один навык
    Написание - другой

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

    Чтение с дебагом в голове появляется после того как сам напишешь такой же код много раз
    Очень много раз
    Но даже после того, без концентрации внимания можно пропустить ньюансы
    Ответ написан
    Комментировать
  • Реальные задачи по программированию?

    FreeWolfAlex
    @FreeWolfAlex
    Зайди на фриланс биржу, и посмотри какие есть задания, попробуй что то сделать для себя.
    Как пишут выше, а зачем учился, если не видишь применения?
    Ответ написан
    2 комментария
  • Как преобразовать строку php?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Надо из строки удалить все символы кроме цифр и сравнивать очищенные номера.
    Можно через replace, а можно через регулярки.
    Очевидно же.
    Ответ написан
    5 комментариев
  • Как правильно зарегистрировать глобальную горячую клавишу в Java под Windows?

    @antonwx Автор вопроса
    сам спросил - сам и отвечаю, а суть в том, что регистрировать надо клавишу в том же потоке, который слушает сообщения. User32.RegisterHotKey(null, 1, 0x000, KeyEvent.VK_F); идёт в run() и всё начинает работать.
    Ответ написан
    Комментировать
  • Могу ли я отказаться от авторства и отдать свой проект в общественное достояние?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    От права на исходники мы можете легко как уже сказал Рональд Макдональд - исходники в открытый GitHub и GPL/MIT лицензия. А вот от вашего запущенного приложения без его удаления не получится. Исходный код и готовый продукт - разные вещи
    Ответ написан
    Комментировать
  • Как работают компиляторы?

    GavriKos
    @GavriKos
    Так вам про компилятор, транслятор, или все таки ASM рассказывать?

    А на самом деле неважно - для всего этого не хватит лимита ответа. Есть много умных книжек, например у Таненбаума. Вот их и читайте.
    Ответ написан
    Комментировать
  • Как добыть информацию этого тега?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Кому-то двойной цикл не помогает, а кому-то и одной строки может хватить:
    print(soup.find('span', {'class': 'searchBar__mediaTabTextValue searchBar__mediaTabTotal'}).get_text())

    >>> 75

    А вообще, с таким вот:
    Нужно рабочее решение !!!!

    На соседний ресурс иди.

    А с такими вот предъявами:
    не принимаю и даю жалобу.

    Иди к маме, а не сюда. Тут ты в первую очередь просишь.
    Ответ написан
    Комментировать
  • Какой путь Front-end-а?

    yudinikita
    @yudinikita
    Инженер-программист из России
    2 комментария