• Возможно ли взломать IOS через USB кабель?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Стало интересно, возможно ли таким образом взломать телефон

    Я бы не исключал, что да.

    Но есть нюанс: если бы те молодые люди знали, как это сделать, они бы не зарабатывали фотографированием прохожих у метро.
    Ответ написан
    3 комментария
  • Возможно ли взломать IOS через USB кабель?

    @Refguser
    Делаю ИМ и другие решения
    В данной ситуации я бы больше беспокоился не за "взлом через USB кабель", а за те "фотки" (возможно что не только фотки), что попали в тело таким образом. Вот где может быть опасность.
    Ответ написан
    1 комментарий
  • Почему один и тот же код даёт разные результаты компиляции?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Что этот код должен, по вашему делать? Я отлично вижу, как он может в этих случаях вернуть false. Если ваш цикл в вашем UNORDERED мапе сначала возьмет самый последний символ сторки part1, то он присвоит переменной order максимально возможное значение и больше ни одино условие в цикле не выполнется - ни один символ больше не удалится.

    Разница в поведении компиляторов обусловлена тем, что они по разному мешают этот самый НЕУПОРЯДОЧЕННЫЙ мап. Возможно, там разные хеш функции используются.

    И, кстати, ваши multimap-ы тут вообще бесполезны. Во-первых, зачем вам MULTImap, ведь у вас все ключи - это индексы симовлов - уже разные. Во-вторых, зачем вам вообще map, если вы там по каждому индексу храние символ, что итак уже делает строка! У вас там part1map[i] == part1[i] всегда. Вместо цикла по мапу, можно пройтись циклом от 0 до длины строки.
    Ответ написан
    Комментировать
  • Про асинхронность & многопоточность & мультипроцессинг в программировании?

    IvanU7n
    @IvanU7n
    nothing interesting here
    без понятия что такое celery, но оно вроде как и не сильно релевантно
    про мультпроцессинг и многопоточность всё вроде правильно

    а вот асинхронность это странная штука, т.к. в известных мне реализациях это скорее обработка задач на основе событий, т.е. этакий event-driven подход к решению задач

    например в JavaScript с его event-loop задачи (считай события, что есть работа) становятся в "очередь" и ждут там своего часа, однако если какая-та задача сильно задумалась, все остальные задачи ничего с этим сделать не могут, т.е. это однопоточная асинхронная обработка (всяких Worker-ов оставим за скобками)

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

    всё остальное ИМХО графоманство
    Ответ написан
    Комментировать
  • Про асинхронность & многопоточность & мультипроцессинг в программировании?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Многопоточность
    Седой и строгий
    С терминологией в этой области у многих путаница. Ситуацию усложняет то, что одни и те же термины могут по-разному использоваться в разных контекстах и разных средах. Например самый общий термин "асинхронность" в общем смысле синоним многозадачности, то есть одновременного выполнения произвольного количества задач. Но часто под "асинхронностью" подразумевают мультиплексирование неблокирующихся сокетов в цикле событий. Конкурентность в контексте выполняемой работы - это одновременное выполнение разных задач. Параллельность в том же контексте - это одновременное выполнение одной задачи на разных данных. В контексте же того, как задачи выполняются, первое может означать, что асинхронность выполнения задач лимитировано конкурентным доступом к некому общему ресурсу, например процессору, а второе - возможность задач выполняться независимо друг от друга, например на разных ядрах. Запускать асинхронные задачи можно различными способами:
    1. В отдельных процессах, что обычно называют мультипроцессингом, и это как раз то, что делает Celery;
    2. В отдельных потоках, что называются многопоточностью;
    3. В сопрограммах или легковесных потоках, управляемых циклом событий, что часто называют асинхронностью, как я уже писал.
    4. На GPU;
    5. На разных машинах, что обычно происходит в распределённых системах.

    Первый вопрос мой состоит вот в чем: в асинхронном коде задачи как бы не выполняются абсолютно параллельно. Они выполняются по очереди, просто не приостанавливая главный поток, как в синхронном коде. А вот многопоточные и мультипроцессорные программы действительно выполняются параллельно (? или не совсем ?).

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

    @Zailox
    Не нужно компилировать все в ехе, достаточно скомпилировать сам скрипт, а все эти файлы положить в одну папку.

    Если имеется ввиду сделать из всего этого один файл (как обязательное условие) - никак, только сохранять содержимое файлов в переменные, например
    Ответ написан
    Комментировать
  • Как сделать exe файл в python?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Стандартным способом упаковать питоновский скрипт в exe (например) и далее использовать Enigma Virtual Box для упаковки приложения и дополнительных файлов в один исполняемый файл.
    Ответ написан
    Комментировать
  • Как сделать exe файл в python?

    Vindicar
    @Vindicar
    RTFM!
    Для начала можешь переименовать питоновский файл в pyw - это означает запуск без окна консоли.
    А далее, разбираешься с pyinstaller, а лучше сразу с его обёрткой auto-yp-to-exe, там есть опция для оконных приложений.
    Файлы данных внутрь exe я бы не вносил, они всё равно будут распакованы во временный каталог при запуске, так что только запуск замедлишь. Но если очень хочется, такая опция тоже есть, читай доки на вышеупомянутое.
    Ответ написан
    Комментировать