• В чём отличие библиотеки от модуля в python?

    vabka
    @vabka
    Токсичный шарпист
    Внутри библиотеки может быть несколько модулей.
    Ответ написан
  • Вывод в переменную прогресса архивации папки?

    модуль py7zr
    https://pypi.org/project/py7zr/ архивирует шифруя заголовки и позволяет узнать прогресс
    Ответ написан
    Комментировать
  • Установка новых компиляторов на CentOS6?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Построить нужный компилятор с помощью crosstool-NG?
    Ответ написан
    Комментировать
  • Почему некоторые люди утврерждают что плохо использовать jQuery?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, jQuery родилась во времена, когда каждый браузер реализовывал JS и DOM API по-своему, её основным назначением было сглаживать эти различия. В наше время это преимущество библиотеки уже утеряно. Во-вторых, jQuery не соответствует основному вызову современности - сложной кодовой базе. В развитом фронте код, использующий jQuery, быстро превращается в трудно сопровождаемую лапшу. Поэтому для простого фронта чаще стали использовать ванильный JS, а для сложного фреймворки типа React, Angular и Vue.
    Ответ написан
    23 комментария
  • Зачем существует registry в lua?

    @zedxxx
    Об этом подробно написано в документации: https://www.lua.org/manual/5.3/manual.html#4.5

    Lua предоставляет реестр, предопределенную таблицу, которая доступна C коду для хранения любых Lua значений. Таблица рееста всегда расположена по псевдоидексу LUA_REGISTRYINDEX. Любая C библиотека может хранить данные в этой таблице, но она должна заботиться о выборе уникальных ключей, чтобы избежать коллизий с другими библиотеками. Обычно, вы должны использовать в качестве ключа строку содержащую имя библиотеки, или легкие пользовательские данные (light userdata) с адресом C объекта в вашем коде, или любой Lua объект созданный вашим кодом. Как и имена переменных, ключи, начинающиеся с подчеркивания со следующими за ним прописными буквами, зарезервированы для Lua.

    Целочисленные ключи в реестре используются механизмом ссылок (см. luaL_ref) и некоторыми предопределенными значениями. Следовательно, целочисленные ключи не должны использоваться для других целей.

    Когда вы создаете новый Lua контекст, его реестр содержит некоторые предопределенные значения. Эти предопределенные значения индексируются целочисленными ключами, определенными как константы в lua.h. Определены следующие константы:

    • LUA_RIDX_MAINTHREAD: По этому индексу в реестре расположен главный поток контекста. (Главный поток создается при создании контекста.)
    • LUA_RIDX_GLOBALS: По этому индексу в реестре расположено глобальное окружение.


    Так же, есть небольшой пример использования в Programming in Lua: https://www.lua.org/pil/27.3.1.html
    Ответ написан
    4 комментария
  • Зачем существует registry в lua?

    @q27off
    Некоторые абстракции данных невозможно хранить в C-коде в чистом виде. - Их реализации "скрыты" за луашным API. К таким данным относятся, наприер, lua-таблицы.

    В типичном случае таблица по индексу LUA_REGISTRYINDEX используется для хранения метатаблиц пользовательских библиотек. Например, во время инициализации библиотеки создается метатаблица:

    luaL_newmetatable(L, LIBNAME); // создаем метатаблицу на стэке
    // ... - какой-то код, наполняющий созданную таблицу
    lua_rawsetp(L, LUA_REGISTRYINDEX, (void*)METAKEY); // устанавливаем метатаблицу по уникальному ключу


    Затем, при генерации нового библиотечного объекта, ему устанавливается ранее созданная метатаблица:

    int object_new(lua_State *L)
    {
        char *ud = lua_newuserdata(L, UDSIZE); // создаем новый объект
        lua_rawgetp(L, LUA_REGISTRYINDEX, (void *)METAKEY); // извлекаем ранее созданную метатаблицу
        lua_setmetatable(L, -2); // устанавливаем метатаблицу для созданного объекта
        return 1;
    }
    Ответ написан
    Комментировать
  • Парсер сайта с прокси?

    @Lobanov
    Если знакомы с Python'ом, можете заюзать связку Python + Scrapy + Splash + Proxy - получится весьма мощная система, которая умеет все что вам нужно, от парсинга простых сайтиков, до сайтов, которые работают с front-end фреймворками.
    Ответ написан
    5 комментариев
  • Как тестировать flutter-приложение на ios, если нет Mac?

    @andrew8712
    Никак. Для сборки под iOS нужен `xcodebuild`, а он работает только под macOS.
    Как вариант - использовать fastlane и сервис вроде CircleCI: там можно поднять машину с macOS, собрать приложение с помощью fastlane и отправить сборку в TestFlight, чтобы протестировать на iPhone.

    Continuous delivery сервисы вроде CircleCI платные. Забесплатно машину с macOS не предоставляют
    Ответ написан
    Комментировать
  • Чем отрубать напругу?

    @Newbie2
    Ну пускатель можно поставить. Катушку питать от "потребителя", внутри поставить шунтируемую кнопку.

    p.s. если нагрузка небольшая, можно просто автомат на 1 ампер поставить в шкафу и всё. При попытке подключить нагрузку больше 220 Ватт он отрубится. Можно поставить реле тока, которое будет отрубать нагрузку при превышении тока (если у вас подключена нагрузка большая, то решение не имеет смысла).

    Пускатель ещё можно вот так подключить:
    5db3033345ae8805895047.png
    Ответ написан
    2 комментария
  • Существует ли способ сохранить значение переменной перманентно в php?

    Stalker_RED
    @Stalker_RED
    Что мешает записать токен в сессию, в файл, в мемкеш или в базу данных, например?
    Ответ написан
    2 комментария
  • Существует ли способ сохранить значение переменной перманентно в php?

    @rPman
    var_export выдаст строку в формате PHP, добавляйте впереди что то типа $x=, сохраняйте в файл с расширением .PHP и подключайте прямо в код include.

    Это самый быстрый способ инициализации больших структур и массивов которые редко меняются, с оговорками и объектов.

    p.s. ещё есть serialize/unserialize и json_encode/json_decode, они чуть медленней но для своих случаев удобнее.
    Ответ написан
    Комментировать
  • Как вы проектируете классы в ООП и их взаимодействие?

    @xfg
    В PHP сообществе вообще не развиты вопросы проектирования и архитектуры. Большинство лепит, что придумает. PHP изначально родился для примитивных homepage, вобрал в себя всю несерьезность, низкий порог входа и как следствие довольно слабое комьюнити, что часто становится объектом для шуток.

    Искать ответы на вопросы проектирования и архитектуры нужно в Java. Например там почти каждый с самых азов слышал о де факто ставшей стандартом слоистой архитектуре, она же layered architecture, она же n-tier architecture и видел изображение похожее на это
    main-qimg-91d7188a63a833488f92239028d0ae
    Из которой нужно понять, что всю программу можно разделить на несколько слоев и зависимость между слоями должна быть направлена сверху вниз, но не наоборот. Таким образом, например фреймворк может быть инкапсулирован в presentation слой и в любой момент безболезненно заменен на другой, так как другие слои ничего о нем не знают. Вся бизнес-логика инкапсулирована в domain слой в виде plain old java object, который не зависит вообще не от чего, а также предоставляет интерфейсы (репозиториев например) для инфраструктурного слоя и только в этом слое фактически и будет тот самый настоящий ООП, который все так упорно пытаются найти. Никакого стороннего кода в бизнес-логике нет, а соответственно весь сторонний код можно в любой момент поменять, не трогая бизнес-логику вообще.

    Для этого нужно открыть какую-нибудь книгу, где за руку проведут с нуля до конкретного приложения построенного с использованием этой архитектуры. Например Implementing domain-driven design, хоть эта книга и о DDD, но я уже говорил, что слоистая архитектура это де факто. С опытом, будет понятно, что в более простых приложениях количество слоев можно уменьшить, понимая на какой компромисс придется пойти, что иногда можно объединить domain и часть infrastructure и получить всем известный шаблон Active Record или вообще выбросить эти слои и получить шаблон transaction script, когда для решения просто не требуется что-то более сложное. Придет понимание, как можно начать с transaction script и в итоге постепенно катиться в сторону domain layer, через active record или не через active record если это когда-нибудь понадобится и тому подобное. Cтанет понятно, зачем, как и когда использовать патерны о которых написал Мартин Фаулер в своей книге Patterns of Enterprise Application Architecture.

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

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Все зависит от объема проекта. Чем больше и сложнее проект тем больше проектирования. UML прекрасен тем что из него отлично можно сразу генерировать код. Из минусов - не всегда это работает именно так как тебе требуется в проекте. Ну и вообще, я бы предпочел в основном проектировать интерфейсы компонент по тому как внутреннее устройство это уже второй шаг и не влияет на общую картину мира
    Ответ написан
    1 комментарий
  • Установка 32 битных библиотек boost в ubuntu?

    Radjah
    @Radjah
    Добавить архитектуру i386.
    sudo dpkg --add-architecture i386
    Поставить пакет libboost-all-dev:i386 или только нужные dev с указанием архитектуры.
    Скорее всего понадобится еще пакет gcc-multilib.

    Добавь в параметры запуска компилятора флаг -m32

    Раз https://www.geeksforgeeks.org/compile-32-bit-progr...
    Два https://stackoverflow.com/questions/1272357/how-to...
    Ответ написан
    Комментировать
  • В чем может быть проблема?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    система начала дико тормозить, после перезагрузки hdd диск перестал определяться системой
    Судя по описанию просто диск вышел из строя. Проверьте на другом компьютере, если не определяется меняйте на исправный.
    Ответ написан
    Комментировать
  • Технологичный Unreal или удобный и приятный Unity?

    @spaceatmoon
    А мне вот с первого взгляда больше понравился UE4. С документацией не могу оспорить, но и подтвердить тоже не могу. Quick Guide's очень даже неплохи и написаны доступным языком. Человек со знанием Pre-intermediate сможет спокойно читать гайды по UE4.

    Так же, мне нравится, то что используется C++, а вот C# мне не нужен. C++ я могу использовать потом в более крупных компаниям по разработке веб сервисов, если я захочу в веб, так же он ближе к OpenCV. В общем лично для меня C++ кажется более выгодной сделкой чем C#.

    Я видел разные интерфейсы: Cinema 4D, Archicad, 3D Max, Adobe LR/PR/Animate и я бы поспорил насчет UI/UX в Unity.

    Так же мне не понравилась скорость загрузки редактора кода в Unity. У меня раньше был 3-х ядерный AMD на 2.1 GHZ и это ППЦ ТОВАРИЩИ! Таких тормозов я давно не видел.

    В общем лично я рекомендую ознакомиться с Unreal Engine 4 и GODOT. Godot недавно вышла 3 версия и движок является довольно перспективным. Внутри можно использовать GDScript, который на 98% по синтаксису Python, также поддерживает C++ и C#.
    Ответ написан
    Комментировать
  • Разделить число на разряды c++?

    @res2001
    Developer, ex-admin
    Откройте для себя операцию взятия остатка от деления - % (в вашем случае на 10), с ее помощью ваша задача решается тривиально.
    Ответ написан
    Комментировать
  • Выполняю python скрипт из php функцией shell_exec, выдает ошибку 'ascii' codec can't encode?

    isagadji
    @isagadji Автор вопроса
    Вопрос решился. Нашел ответ в одном из комментариев на stackoverflow.com/questions/35437870/selenium-unic...

    Перед командой добавляем установку локали: LANG=en_US.UTF-8 ;

    shell_exec("LANG=en_US.UTF-8 ;  in2csv import/21066634-44.7.8.xlsx > /tmp/21066634-44.7.8.xlsx.csv");
    Ответ написан
    Комментировать
  • Возможно ли проверить, правильно ли расшифрованы данные RSA?

    Smithson
    @Smithson
    20+ лет админю
    Если вы не знаете, на что должен быть похож расшифрованный результат, то нет. В самом алгоритме нет такой возможности.
    Ответ написан
    3 комментария