• Как автоматизировать архивацию и отправку файлов на почту?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    В планировщик задач vbs скрипт, запуск раз в 15 минут.

    1 опрос папки если нет файлов старше сейчас - 15 мин то выходим
    2 формируем список файлов
    3 запускаем архиватор передавая параметрами список файлов и пароль
    4 отправляем почту с аттачем
    5 удаляем файл.

    Vbs это стандартный язык скриптов он есть в системе.
    Ответ написан
    7 комментариев
  • Что из себя представляет docker image?

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

    Wedmer
    @Wedmer
    Судя по неслабому использованию swap, системе не хватает оперативки. Современные браузеры очень охочи до оперативки, и сначала надо убедиться, что он сам падает, а не убивается oomreaper или ещё чем подобным.
    Вообще без спек железа и хоть каких логов сложно что либо сказать.
    Ответ написан
    Комментировать
  • Какой линукс лучше поставить для фронтенд разработки на слабый ноутбук?

    dyuriev
    @dyuriev
    A posteriori
    Например зависать на полминуты при сохранении маленького текстового файла. Как это лечить я не понял

    скорее всего диск под замену

    гадания по скрину - оперативы добавьте так же
    а так же swap-on-zram в дополнение к дисковому свопу на худой конец, жизнь облегчет
    мысли про zram
    по zram есть мнения что он может вызывать фейлы дополнительные, но вы все таки и не в продакшне. да и по опыту скажу - swap-on-zram+дисковый своп вполне стабильно себя ведет на десктопе при дефиците оперативы


    посмотрите вывод dmesg, вангую что там ругонь на i/o девайсы, в частности /dev/sda*

    UPD: линукс сам по себе - ядро, а дистриб - обвес ядра всякими ништяками.
    На 4гб оперативы фронтовому разрабу нынче тяжко на любом дистрибе - это и окружение развернуть, и несколько браузеров разом, да еще и шторм жрет не слабо.
    Если вам комфортно работать на федоре - работайте на федоре. с железом разберитесь лучше.
    Ответ написан
    2 комментария
  • Какой линукс лучше поставить для фронтенд разработки на слабый ноутбук?

    @maybebaby
    Linux на "минималках" - действительно нетребовательная система. Обновления типа "apt-get update && apt-get upgrade" могут притянуть новое ПО, которое отсутствовало при установке. Некоторые новые пакеты создают системные сервисы, которые запускаются в "фоне" и создают нагрузку на систему.

    Как этого избегать - на вашем скрине. Elasticsearch - это требовательное к железу ПО, на вашем скрине он самый прожорливый. Его обычно ставят на серверное железо, но даже для локального изучения нужна хорошая машина.
    Посмотрите список сервисов и выключите эластик и другие ненужные:
    systemctl list-units --all
    systemctl disable [service-name].service --now

    На вашем скриншоте сортировка по потреблению процессора. Посмотрите также список по потреблению оперативной памяти, изучите нагрузку на диск с помощью iotop.

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

    Самый нетребовательный дистрибутив, содержащий минимум пакетов - Arch Linux, но он не дружелюбен к пользователю, нужно хорошо знать Линукс. Зато пакетный менеджмент там очень удобен, прозрачен, и ПО свежее. Попробуйте десктопную CentOS - она считается серверной системой и не очень популярна на десктопах, зато очень надежна и не изобилует лишним. Версии ПО отстают от актуальных, поскольку приоритетнее надежность. Deb-based дистрибутивы были замечены в установке "лишних" пакетов (например, история с Chrome, который подтягивал snapd при установке через apt). Но Mint на стареньком ноуте прекрасно себя чувствует.
    Также ориентируйтесь на простые DE типа Xfce: https://www.linuxmint.com/edition.php?id=286
    Ответ написан
    1 комментарий
  • Как реализуется вывод сообщения об отсутствии соединения?

    bingo347
    @bingo347
    Crazy on performance...
    Помимо событий указанных Алексей Ярков есть еще navigator.onLine
    Ответ написан
    Комментировать
  • Как реализуется вывод сообщения об отсутствии соединения?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    window.addEventListener('online', () => {
      // связь есть, скрыть уведомление
    });
    
    window.addEventListener('offline', () => {
      // связи нет, показать уведомление
    });
    Ответ написан
    2 комментария
  • Какой интерфейс можно использовать удаленно для управления субд mysql?

    Compolomus
    @Compolomus
    Комполом-быдлокодер
    Ответ написан
    Комментировать
  • Взаимодействие с данными с использованием нескольких серверов?

    Stalker_RED
    @Stalker_RED
    Сразу после анализов запиши данные в базу данных, откуда их может прочитать "основной сайт".

    При подключении к базе данных вы же указываете адрес. Так вот, там можно писать не только localhost, оно через интернеты тоже работает.
    Ответ написан
    Комментировать
  • Как корректно написать функцию getBlobReader?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Вам нужно реализовать свой io.Reader, и в Read уже вычитывать данные по очереди из частей файла.
    Вот работающий пример реализации
    package main
    
    import (
        "io"
        "log"
        "os"
        "path/filepath"
    )
    
    type BlobReader struct {
        keys       []string
        currentKey uint64
        reader     io.ReadCloser
    }
    
    func NewBlobReader(keys []string) *BlobReader {
        return &BlobReader{
            keys: keys,
        }
    }
    
    // Read реализация интерфейса io.Reader, чтобы можно было ваш reader использовать в io.Copy
    func (br *BlobReader) Read(p []byte) (int, error) {
        var err error
    
        // открываем каждый файл по очереди
        if br.reader == nil {
            filePath := filepath.Join(".", "blobs", br.keys[br.currentKey])
            br.reader, err = os.Open(filePath)
            if err != nil {
                return 0, err
            }
        }
    
        // читаем данные из текущего открытого файла, пока данные не закончатся
        n, err := br.reader.Read(p)
    
        // если данные в файле закончились, закрываем его
        if err == io.EOF {
            br.currentKey++
            br.reader.Close()
            br.reader = nil
    
            // io.EOF в err должно вернуть только у последнего файла, чтобы io.Copy считал все файлы и не завис на последнем.
            if br.currentKey < uint64(len(br.keys)) {
                err = nil
            }
        }
    
        return n, err
    }
    
    func main() {
        blobReader := NewBlobReader([]string{
            "2050-part1",
            "2050-part2",
            "2050-part3",
        })
    
        _, err := io.Copy(os.Stdout, blobReader)
        if err != nil {
            log.Fatalln(err)
        }
    
        log.Println("Done")
    }

    Еще нужно будет реализовать метод Close у вашего Reader'a чтобы небыло утечек файловых дескрипторов
    Ответ написан
    4 комментария
  • Как вести себя в ситуации, когда клиент хочет написать заявление в полицию?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Собственно, а на что он собрался жаловаться в полицию? Единственное, что он может приплести, это "незаконное обогащение". Но раз ты работу сделал, то у тебя есть все доказательства того, что деньги получены за дело.
    Второе, что он может попытаться приплести, это незаконная предпринимательская деятельность и уход от налогов. Ему от этого никакой выгоды, разве, что тебе нервы потрепать. Но т.к. ты самозанятый, то это всё вопросы решаемые.

    В общем не парься. Он просто пугает. Ничего серьезного он не может сделать. Обычный борзый клиент. А тебе урок на будущее: работать лучше по договору с тз, желательно с предоплатой, ну а если начинаются перебои с оплатой, то работа должна быть немедленно прекращена до полной оплаты.
    Ответ написан
    2 комментария
  • Telegram bot с Tesseract на борту не хочет работать, пожалуйста просмотрите мой код?

    @o5a
    Логично, что такие ошибки, если не придерживаться одного цикла. Этот фрагмент
    ...
            for plate in plates:
                x, y, w, h = plate
            centreX = int((x + (x + w)) / 2)
    ...

    Если предполагалось обрабатывать все найденные знаки, то и все последующие расчеты должны быть внутри цикла, а не вне его.
    А если предполагалось обрабатывать только единственный/последний из найденных знаков, то тоже получится ошибка в случае отсутствия определенных знаков на фото.
    Ответ написан
    Комментировать
  • Где хранить большой массив объектов в реакт приложении?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Мой взгляд, на истину не претендую:

    Я сторонник того, что на клиенте вообще не стоит хранить большие объемы данных. Т.е. запрашивает только те, которые нам нужны для работы/отображения в конкретный момент. Все фильтры/сортировка/пагинация на стороне сервера. Понятно, что это не всегда возможно, поэтому идем дальше...

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

    Если уж отходить от редакса - можно воспользоваться каким-то стором на основе мутабельных объектов, например mobx.

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

    Ну и, конечно, вопрос в объеме данных. Просто 2к объектов - не то, чтобы сильно много. Вопрос, насколько тяжелых объектов.
    Ответ написан
    2 комментария
  • Как сформировать SQL (для MySQL) запрос по нахождению наиболее похожего профиля с множеством полей-флагов?

    @ComodoHacker
    Велосипед, конечно же, уже придуман, и называется расстояние Хэмминга. Только ваши флаги нужно представить в виде битовой строки.

    https://stackoverflow.com/questions/4777070/hammin...
    Ответ написан
    6 комментариев
  • Какой способ подсчёта суммы в БД лучше и перспективнее для большого объёма?

    inoise
    @inoise Куратор тега PHP
    Solution Architect, AWS Certified, Serverless
    Перестать заниматься фигней и начать хранить агрегаты в базе
    Ответ написан
    2 комментария
  • Почему программа выдаёт неверное, но близкое значение?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Потому что вычисления происходят не точно из-за ограниченности встроенных типов данных с плавающей запятой. Полученные ошибки округления накапливаются и вы получаете что-то очень близкое к аналитическому ответу, но не его.

    Можно в тестах требовать совпадение с некоторой абсолютной или относительной погрешностью.

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

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

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

    vabka
    @vabka Куратор тега Веб-разработка
    Подойдет ли для этого обычный HTTP или даже он является излишним?

    > Один из простейших протоколов, который прекрасно реализован в большинстве языков.
    > излишний
    Окей.

    Вот несколько вариантов:
    HTTP+json
    HTTP+msgpack
    gRPC

    Там где написано HTTP может быть использована любая версия, но я советую использовать максимально возможную, какую позволяют используемые технологии (например HTTP/3 aka QUIC)
    Ответ написан
    Комментировать
  • SQS очередь и необязательные параметры?

    @unseriously
    MessageGroupId
    This parameter applies only to FIFO (first-in-first-out) queues
    Type: String
    Required: No

    MessageDeduplicationId
    This parameter applies only to FIFO (first-in-first-out) queues
    Type: String
    Required: No

    https://docs.aws.amazon.com/AWSSimpleQueueService/...
    Ответ написан
    Комментировать
  • Как реализовать бинарный поиск в базе Django?

    @deliro
    1. Очень сомневаюсь.
    2. Запрос Names.objects.get(name=name).count прекрасно использует индекс, если ты его, конечно, создал. 14 миллионов строк для индекса, тем более, уникального — очень мало. А если не создал, то это фулскан и очень долго
    Ответ написан
    4 комментария