Задать вопрос
  • Returning 'int (*)[(sizetype)(*sizeMas)]' from a function with incompatible return type 'int *' [-Wincompatible-pointer-types] в Си. Что делать?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    mas уже указатель. Массивы в C - указатели. Не надо & использовать где вы его возвращаете. Только в этом случае оно скомпилируется, но работать не будет, потому что mas - локальный массив. По выходу из функции это будет указатель на отчищенную память. Надл выделять массив через malloc.
    Ответ написан
    Комментировать
  • Какой хороший легкий клиент для Wireguard на Windows?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Официальный прекрасен, работает месяцами без проблем. В противном случае - разбирайтесь, что у вас не так.
    Ответ написан
    1 комментарий
  • Для чего нужен lock в python? Как работает данный пример кода?

    Vindicar
    @Vindicar
    RTFM!
    Это объясняется тем, что в базовом питоне потоки не вполне честные - они конкурируют за global interpreter lock, так что код выполняется всё равно поочерёдно. Так что многопоточность в питоне полезна с точки зрения распараллеливания, но не ускорения. ЕМНИП, есть реализации питона, в которых нет этой GIL problem.
    Но нужно иметь ввиду, что этот GIL блокирует только элементарные операции (как в твоём примере), тогда как явное использование lock может накрывать целые блоки кода, состоящие из нескольких операций с защищаемым ресурсом.

    Вот тебе пример:
    import threading
    import time
    
    class Data:
        def __init__(self):
            self.x: int = 0
            self.y: int = 0
    
    
    do_sleep = False
    run = True
    
    
    def reader(d: Data):
        while run:
            x, y = d.x, d.y
            # по идее это условие не должно выполниться никогда
            if (x != 0) != (y != 0):  
                print(f'Got x={x} and y={y}')
            else:
                print(f'OK {x}', end='\x08\x08\x08\x08')
    
    
    def writer(d: Data):
        while run:
            if d.x == 0:
                d.x = 1
                if do_sleep: pass
                d.y = 1
            else:
                d.x = 0
                if do_sleep: pass
                d.y = 0
    
    
    do_sleep = False
    instance = Data()
    reader_thread = threading.Thread(target=reader, args=(instance,), daemon=True)
    writer_thread = threading.Thread(target=writer, args=(instance,), daemon=True)
    reader_thread.start()
    writer_thread.start()
    try:
        input()
    finally:
        run = False
        reader_thread.join()
        writer_thread.join()


    На моей машине, если if do_sleep: pass закомментировать, то в консоли высвечивается только OK - иными словами, присваивание двух полей выполняется достаточно быстро, чтобы поток не успел переключиться в промежутке. Как следствие, reader() всегда видит либо x=0 y=0, либо x=1 y=1.
    Но если if do_sleep: pass оставить, то выполнение тела цикла замедляется достаточно, чтобы поток успел переключиться - и, как следствие, reader() начинает видеть структуру данных Data в неконсистентном состоянии, когда x=0 y=1 или когда x=1 y=0.
    И вот чтобы не гадать "успеет - не успеет", нужно в таких случаях защищать связные серии обращений к структуре с помощью мьютекса, ну или в питоновских терминах - Lock.
    Ответ написан
    Комментировать
  • Какой пет проект можно реализовать на Java?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Я не представляю как можно спрашиваьт у кого-то какой пет проект себе сделать.
    Все равно что спросиьт "каким хобби мне увлечься" и прослушать лекцию что ролики круче прыжков с парашютом, а настолки мастер оф гезеринг и Д&Д вообще разные вселенные.

    Придумайте себе тулзу/сайт/прогу, которая бы лично вам была интересна/полезна и развивайте ее.
    Когда-то таким пет-проектом был собственно линукс
    Ответ написан
    Комментировать
  • Почему пустой tuple занимает больше памяти, чем tuple с None?

    В случае b у тебя не tuple, а просто None.
    Чтобы получился tuple из одного элемента - нужно добавить запятую
    b = (None,)
    b.__sizeof__() # 32
    Ответ написан
    1 комментарий
  • Почему появляется ошибка "sqlite3.OperationalError: near '/': syntax error"?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    1) Уберите эту чушь -
    cur.execute(f'''INSERT OR IGNORE INTO "base" (title, a, b, c, url)
                        VALUES ("{title}", {a}, {b}, {c}, "{url}");''')

    2) Прочитайте офф. доки sqlite3 — DB-API 2.0 interface for SQLite databases
    3) Profit!
    Ответ написан
    Комментировать
  • Почему появляется ошибка "sqlite3.OperationalError: near '/': syntax error"?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Потому что вы используете форматирование сторк для подстановки данных.
    Правильный вариант описан в документации к библиотеке.
    Ответ написан
    Комментировать
  • Как в C# проекте импортировать стороннюю c++ библиотеку?

    Вариант "идеоматичный":
    1. Эта библиотека должна экспортировать функции с сишным abi (extern "C")
    2. В коде на C# ты описываешь эти функции при помощи pinvoke
    3. Добавляешь в проект dll-ку с собранной сторонней либой.
    Профит

    Вариант "ситуативный и будет работать только на винде":
    1. Берёшь C++/CLI
    2. Делаешь на нём .Net библиотеку и делаешь нужное количество классов -обёрток над плюсовым кодом.
    Профит

    В случае с этой библиотекой можно ещё попробовать:
    1. Найти альтернативы
    2. Переписать на C#
    Ответ написан
    2 комментария
  • Как попасть в IT школьнику?

    xez
    @xez
    TL Junior Roo
    1. До 18ти лет, скорее всего, никуда не возьмут.
    2. В вашем возрасте обучение максимально быстрое и эффективное.

    Отсюда план:
    1. Учитесь, читайте книги, набивайте руку на пет-проектах. Читать и учиться придется на протяжении всей карьеры (спойлер, т.к. пенсии у вас не будет - всей жизни).
    2. Заканчивайте 11й класс.
    3. Постарайтесь поступить в ВУЗ (опционально).
    4. После первой сессии начинайте искать работу. К этому времени у вас должно скопиться небольшое портфолио проектов и опыт достаточный для трудоустройства на младшие позиции.
    5. Спокойно доучивайтесь в ВУЗ-е (опционально), паралельно работая.
    Ответ написан
    7 комментариев
  • Как должна выглядеть диаграмма взаимодействия пользователя с ис?

    vabka
    @vabka Куратор тега Веб-разработка
    Начнём с того что то что у тебя - это какие-то непонятные фигуры и стрелочки которые отражают непонятно что и непонятно зачем и для кого.

    А в реальном мире уже всё давно придумано:

    • Sequence diagram, если хочешь показать, в каком порядке и куда пойдут данные
    • Use case diagram, если хочешь показать варианты использования твоей системы разными авторами.
    • Нотация C4, если хочешь деконструировать свою систему.
    • Целая куча других диаграмм в рамках стандарта UML.



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

    Вот пара примеров диаграмм, как бы ты мог всё изобразить:
    Картинки

    Sequence:
    6466fad769376519395834.png
    Ответ написан
    2 комментария
  • Как постоянно получать данные с БД?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Почитать про брокеры, типа kafka/rabbit mq
    Ответ написан
    1 комментарий
  • Уход во время испытательного срока, нормально ли это?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Ты можешь уйти в любое время, включая испытательный срок. Ты не привязан к компании навечно. Но учти, что профессиональный мир мал, и репутация важна. Если часто уходить посреди проектов, это может повредить твою репутацию. Впрочем, если тебе пришло предложение, лучше рассмотри его. Просто делай всё красиво и вежливо.
    Ответ написан
    Комментировать
  • Как подключить mongodb к node?

    Ответ написан
    Комментировать
  • Как подгрузить файл JSON в python?

    JustKappaMan
    @JustKappaMan
    Frontend, backend, desktop. Всего понемногу.
    Попробуй указать опциональный атрибут encoding в open()
    Ответ написан
    2 комментария
  • Где создать бесплатную PostgreSQL с соответствием 152-ФЗ?

    1. 152 ФЗ распространяется только на операторов ПД.

    2. Большинство требований 152 ФЗ идут не от использования какого-то "кошерного" ПО, а от введения различных регламентов и процедур на предприятии. Ведение различных журналов доступа к ПД, ограничение круга лиц, которые имеют к ПД доступ, введение ответственных за сохранность ПД, итд.

    3. Есть куча провайдеров, которые предоставляют IaaS, сертифицированный по 152-ФЗ, но просто перенести свои сервера в него, это:
    3.1. Дорого
    3.2. Не достаточно
    3.3. Не является безальтернативным вариантом - ты точно также можешь, в принципе, расположить в кладовке своего офиса стойку с сервером, и таким образом соблюсти требования ФЗ.

    4. Не всегда нужно покупать за 200к лицензию на сертифицированный постгрес - до определённых уровней защиты это можно компенсировать процедурами и регламентами.
    Ответ написан
    Комментировать
  • Знания компьютерных сетей?

    Да, достаточно, тк это база и после них тебе будет легче искать ответы на непонятки самостоятельно.

    Нет, не достаточно, тк у тебя в любом случае на практике возникнут вопросы, на которые тебе придётся искать ответы.

    Выбирай тот ответ, который тебя больше устроит.

    PS:
    Смотрю по вопросам твоим, что ты за год так и не определился, какую книгу прочтешь, может хватит вопросы задавать и уже пора хоть какую-то книгу открыть?

    Ну или смирись и забрось вообще - возможно это не твоё.
    Ответ написан
    Комментировать
  • Как при запуске сервера, запустить CRON с нужным окружением python?

    Попробуй создать bash скрипт, где ты сначала выбираешь окружение, а потом запускаешь питоновский файл. И уже sh файл в cron или автозагрузку
    Ответ написан
    Комментировать
  • Стоит ли мне знать как работает cmd для Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Если вы хотите водить машну, вы должны понимать хотя бы базовые основы её технического устройства.
    Потом вы прибежите на этот ресурс со своим непониманием почему что-то работает не так, как вы ожидаете.

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

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

    CityCat4
    @CityCat4
    Дома с переломом ноги
    По каким инстанциям они пробивают?

    По разным :)
    И за что допустим, потенциальный кандидат может получить немой отказ?

    За все, что не понравилось директору по безопасности.
    Может ли например человек быть отсеян из-за инвалидности по псих заболеванию

    Может.
    или что у него родственник какой-то криминальный авторитет,

    Может.
    или например неоплаченные налоги?

    Может.
    Ответ написан
    Комментировать