Задать вопрос
  • Компилируемый ЯП в стилистике JS есть?

    2ord
    @2ord
    чтобы скомпилировалось в 10кб
    Такое было во времена Windows 3.11 и требование уже неактуально.
    10кб сегодня почти нигде не встретишь.
    Хотя на Free Pascal вполне возможно получить недалеко от этого размера.

    Но если нужно что-то модное, тогда Go. Или если нужно простое по синтаксису, то что-то типа Ruby: Crystal.
    Но в обоих рантайм уже пожирнее и размерчик будет на порядок-два больше.
    Ответ написан
  • Какие существуют средства автодокументации кода Python для недокументированного кода?

    2ord
    @2ord Автор вопроса
    В итоге я написал своей инструмент для автодокументации.
    Как это работает:
    Код парсится в AST при помощи модуля ast. Ходим по узлам я проверяем не является ли функцией, проверяя, нет ли существующей документации функции ast.get_docstring(node).
    Если отсутствует, то получаем тело функции ast.unparse(node) и отправляем запрос LLM с промптом (использовал Codestral), прося подготовить краткое описание назначения функции согласно PEP 257. Полученный ответ вставляется обратно в тело функции в ее узле.

    Из минусов следует отметить, что модуль "ast" отбрасывает комментарии в коде при его парсинге, что потенциально могло добавить некоторые нюансы при генерации docstring.

    В итоге, модифицированное дерево AST дампится в новый файл.
    Затем этот файл заменяет исходный файл в коде проекта и мне необходимо было сделать вручную откат на код с комментариями и тем места, где была разница с кавычками и форматированием (благо, их было немного).

    В качестве оптимизации, чтобы сберечь запросы при дебагинге, воспользовался хранилищем K/V.
    Ответ написан
    Комментировать
  • Какой софтиной можно определить в каком аудио формате RAW данные?

    2ord
    @2ord
    Попробуй определить тип в Magika
    Если не определит, нужно искать более специализированный софт.
    Ответ написан
    Комментировать
  • Python не выходит из цикла while, что делать?

    2ord
    @2ord
    после открытия файла данные считываются лишь одинажды и затем код проверяет в цикле одно и то же:
    while file_data:
    что логично. Ведь данные не изменились.

    Чтобы исправить, нужно изменить на
    while True:
        file_data = client.recv(524288) # или указать размер поменьше
        if not file_data:
            break
        o_file.write(file_data)

    И лучше писать так:
    with open(name_file, 'wb') as o_file:
        while True:
            file_data = client.recv(524288)
            if not file_data:
                break
            o_file.write(file_data)
    
    client.close()
    Ответ написан
  • Как установить пакет Flask для Python 3.8.2, на сервер не имеющий доступ к интернету?

    2ord
    @2ord
    Собери образ Докера на машине с интернетом, посмотри какие зависимости устанавливаются и куда. Собери все файлы и экспортируй в архив TAR.
    Ответ написан
    Комментировать
  • Как на андроиде восстановить насыщенность белого?

    2ord
    @2ord
    Настройки экрана: яркость (включая адаптивную), тон, режим экрана (сочный/натуральный).
    Ответ написан
    Комментировать
  • Как делать поиск по содержимому файлов(документов) на Android'е?

    2ord
    @2ord
    Из мобильных устройств обычно не делают файлопомойки и ещё они ломаются и пропадают.
    По той же причине чаще всего предлагаются облачные сервисы где и хранятся данные (как бы в большей безопасности).

    Но если сильно надо, то бери в руки Apache Tika, извлекай метаданные файлов, индексируй в локальной базе или в облако. Затем построй UI интерфейс к хранилищу.
    Ответ написан
  • Действительно ли Python 3.11 быстрее Python 3.10?

    2ord
    @2ord
    Версия Питона может быть и скорее, однако на практике это совсем не всегда означает сколько либо значимое ускорение работы программ.
    Ускорение работы зависит от многих факторов. Если это веб-приложение, то зависит от, например, использования прослоек типа ORM и работы с СУБД, а также модели обработки данных.
    Если задачи чисто вычислительные и/или очень плотно используют asyncio, то вполне возможно, что ускорение будет ощутимо. Или некоторые другие, см. https://pyperformance.readthedocs.io/benchmarks.ht...
    Ответ написан
    Комментировать
  • Каким образом публиковать приложения из linux в локальной сети?

    2ord
    @2ord
    Может, упаковать приложения в формате Snap и опубликовать в Snapcraft? Тогда его можно централизованно установить с одного источника.
    Или опубликовать Flatpak/AppImage и затем установить на всех компьютерх.
    Ответ написан
    Комментировать
  • Как можно ускорить загрузку в S3 хранилище?

    2ord
    @2ord
    1. Нужно уточнить какой имеется up канал для загрузки. Он является бутылочным горлышком.
    2. Выбрать S3 в регионе поближе.
    3. Использовать другие способы: можно пробовать закачивать кусками "параллельно", однако при исчерпании ширины канала этот способ может не сильно ускорить.

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

    2ord
    @2ord
    Ответ написан
    Комментировать
  • Почему закрывается приложение GTK?

    2ord
    @2ord
    win = Gtk.ApplicationWindow(application=app)
    что за переменная app?

    Изначально сделал так, заменив кусок
    spoiler
    for label, callback in self.menu_items.items():
                menu_item = Gtk.MenuItem(label)
                menu_item.connect("activate", lambda _: callback())
                self.menu.append(menu_item)
    
            self.menu.show_all()
            self.indicator.set_menu(self.menu)
    
        def open_app(self, _):
            # Add your app's functionality here
            win = Gtk.ApplicationWindow(application=app)
            btn = Gtk.Button(label="Hello, World!")
            btn.connect('clicked', lambda x: win.close())
            win.set_child(btn)
            win.present()
            #print("Opening the app")

    на
    spoiler
    for label, callback in self.menu_items.items():
                menu_item = Gtk.MenuItem(label=label)
                menu_item.connect("activate", callback)
                self.menu.append(menu_item)
    
            self.menu.show_all()
            self.indicator.set_menu(self.menu)
    
            self.application = Gtk.Application()
            self.application.connect('activate', self.on_activate)
            self.application_window = None
    
        def open_app(self, _):
            # Add your app's functionality here
            self.application.register(None)  # Регистрация приложения
            self.application.activate()      # Активация приложения
    
        def on_activate(self, app):
            if not self.application_window:
                self.application_window = Gtk.ApplicationWindow(application=app)
                btn = Gtk.Button(label="Hello, World!")
                btn.connect('clicked', lambda x: self.application_window.close())
                self.application_window.add(btn)
                self.application_window.show_all()
            else:
                self.application_window.present()

    но были другие ошибки в работе, поэтому после их учета стало так:
    spoiler
    for label, callback in self.menu_items.items():
                menu_item = Gtk.MenuItem(label=label)
                menu_item.connect("activate", callback)
                self.menu.append(menu_item)
    
            self.menu.show_all()
            self.indicator.set_menu(self.menu)
    
            self.application = Gtk.Application()
            self.application.connect('activate', self.on_activate)
            self.application_window = None
    
        def open_app(self, _):
            # Add your app's functionality here
            if not self.application_window:
                self.application.register(None)
            self.application.activate()
    
        def on_activate(self, app):
            if not self.application_window:
                self.create_window(app)
            else:
                self.application_window.present()
    
        def create_window(self, app):
            self.application_window = Gtk.ApplicationWindow(application=app)
            self.application_window.set_title("My System Tray App")
            self.application_window.set_default_size(200, 200)
            self.application_window.connect("delete-event", self.on_window_close)
    
            btn = Gtk.Button(label="Hello, World!")
            btn.connect('clicked', lambda x: self.application_window.hide())  # скрываем окно вместо закрытия
            self.application_window.add(btn)
            self.application_window.show_all()
    
        def on_window_close(self, window, event):
            self.application_window = None  # устанавливаем в None для воссоздания окна в следующей активации
            window.destroy()
            return True  # значит, уже обработали событие
    Ответ написан
  • Сайт перестает грузиться во время скачивания PDF документа, почему?

    2ord
    @2ord
    Открой Devtools/Web console в браузере
    https://developer.chrome.com/docs/devtools/network
    https://firefox-source-docs.mozilla.org/devtools-u...
    и выбери закладку Network.
    Затем открой страницу где нужно скачивать файл и наблюдай какие запросы производятся.
    Выбери запрос скачивания PDF и смотри детально, на уровне соединения и времени что происходит. Приложи снимки экранов сюда, если сам не смог разобраться.
    Ответ написан
    Комментировать
  • Как избежать утечки памяти в nodejs при парсинге xlsx файлов?

    2ord
    @2ord
    1. Используй ReadableStream
    2. Нет смысла держать программу запущенной все время, если она запускается лишь раз в 2 сутки. Когда она завершится, память автоматически освободится обратно к ОС. Используй планировщик задач ОС.
    3. Можно скачивать файлы на хранилище вместо того, чтобы держать в памяти. Затем подчищать.
    Ответ написан
    Комментировать
  • Как запустить mysql если есть проблема с файлом ibdata1?

    2ord
    @2ord
    Т.е. вероятно файл поврежден. Удаление файла не привело к его пересозданию, появилась другие ошибки.

    Подскажите в какую сторону копать?

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

    2ord
    @2ord
    Тот же Sketch2App больше подходит для прототипирования, нежели готового макета.
    https://azure.microsoft.com/en-us/blog/turn-your-w...
    Ответ написан
    Комментировать
  • Можно ли использовать Flask для браузерного трафика?

    2ord
    @2ord
    Можно ли использовать Flask для браузерного трафика?

    Перед gunicorn принято ставить какой-нибудь обратный прокси, который примет на себя запросы от быстрых и медленных клиентов.

    Добавлено
    Фласк не предназначен для трафика от браузеров. Похоже, стоит взять Squid.
    Ответ написан
  • Как использовать mongorestore в GO?

    2ord
    @2ord
    Комментировать
  • Библиотека C++ для простого веб бекенда?

    2ord
    @2ord
    Чтобы админ мог выкладывать различные посты.

    Просто используй генераторы статических сайтов:
    Jekyll, Hugo и пр.
    Ответ написан
    Комментировать