Задать вопрос
  • Как файлы хэроку синхронизировать с гитхаб?

    2ord
    @2ord
    Файловая система контейнера Heroku не предназначена для хранения файлов помимо файлов проекта. Используются либо внешнее хранилище/СУБД (можно в виде add-ons) либо ищется другой хостинг.
    Ответ написан
    Комментировать
  • Golang. Что работает быстрее strings.Contains или json.Unmarshal?

    2ord
    @2ord
    Согласен с Александр Павлюк .
    Если хочется сэкономить на случаях, когда ответ достаточно увесистый, а достаточно лишь получить некоторые поля, тогда можно попробовать https://github.com/tidwall/gjson
    Ответ написан
    1 комментарий
  • Как можно импортировать данные в БД SQLite из текстового файла?

    2ord
    @2ord
    Пример импорта в Bash
    echo -e "question|answer\nКто есть слон? | Слон есть круг" | sqlite3 -cmd ".mode list" my.db ".import /dev/stdin my_table"

    Вот что при этом сохраняется в БД при команде
    sqlite3 answers.db .dump
    PRAGMA foreign_keys=OFF;
    BEGIN TRANSACTION;
    CREATE TABLE tbl1(
      "question" TEXT,
      "answer" TEXT
    );
    INSERT INTO tbl1 VALUES('Кто есть слон? ',' Слон есть круг');
    COMMIT;

    Если убрать пробелы вокруг трубы "|" , тогда импортирует как надо.

    Добавлено
    Или просто указав путь к файлу
    sqlite3 -cmd ".mode list" my.db ".import myfile.txt my_table"
    Ответ написан
    Комментировать
  • Как для Ruby/Rails проекта создать изолированное окружение с зависимостями?

    2ord
    @2ord
    Необязательно gemset-ы в RVM.

    blockquote>Install your dependencies, even gems that are already installed to your system gems, to a location other than your system's gem repository. In this case, install them to vendor/bundle.
    $ bundle install --path vendor/bundle
    https://bundler.io/bundle_install.html
    Ответ написан
    Комментировать
  • Если в проекте есть докер файл, то я могу запустить его на любой ос?

    2ord
    @2ord
    Dockerfile может иметь инструкции для сборки как Linux, так и Windows контейнеров. Для запуска контейнера нужно убедиться, что соответствует аппаратная архитектура контейнера и ОС. Бывает, что контейнеры собираются для множества архитектур одновременно.

    Контейнеры Linux можно собрать и запустить в Linux, MacOS, Windows. Контейнеры Windows, если не ошибаюсь, можно запустить только в Windows.

    Так что если речь про контейнер Linux, то, как правило, это архитектура amd64. А значит, для запуска контейнера подойдет любой Linux с процессором архитектуры amd64 (server/desktop).

    Перед запуском контейнера автоматически устанавливаются недостающие слои. В контейнере принято запускать единственный процесс (порой супервизора процессов).
    Например, нужны 2 контейнера: старого приложения на PHP 5 и сервера Mysql 5.5. Тогда в Dockerfile приложения контейнера описывается на каком образе основано приложение (допустим, версия фреймворка) и тогда разработчик с помощью Docker собирает контейнер и запускает его.
    Обычно для запуска нескольких контейнеров пишут сценарий для запуска в Docker Compose, в котором описываются различные контейнеры, необходимые для работы приложения и то как они обращаются друг к другу.

    И, вообще, есть много ответов в Хабр Q&A и много статей в интернете.
    Ответ написан
    Комментировать
  • Какие проблемы могут возникнуть при работе программы с файлом БД из удаленной папки?

    2ord
    @2ord
    Здесь все довольно подробно описано.
    Ответ написан
    Комментировать
  • Почему тормозит веб сервер?

    2ord
    @2ord
    Какие HTTP запросы тормозят?
    Какие файловые операции вызывают эти запросы?
    Что происходит с БД в это время?
    Сколько одновременных запросов от клиентов во время таких нагрузок?

    Я бы постарался получить графики различных параметров во времени, от чего можно отталкиваться для решения проблемы.

    Можно установить какой-нибудь munin-node или другие системы мониторинга.
    Ответ написан
  • Как написать программу на СИ?

    2ord
    @2ord
    Сейчас, по-любому, уже поздно задачи решать.
    Но, в общем, сперва нужно получить первую и последнюю букву введенной строки и сохранить их в переменные.
    Затем с введенной тестовой строки в цикле, пока не будет достигнут конец строки, проверять каждый знак является ли разделителем (пробелом). Так извлекается слово. Если первая и последняя буквы совпадают с эталоном, то счетчик слов увеличивается.
    Ответ написан
  • Golang и PHP, дань моде или необходимость?

    2ord
    @2ord
    Go обычно идет в связке с другими технологиями, производительность которых не устраивает. Если вводить Go на раннем этапе, то это скорее всего неоправдано. Так что, для некоторых - дань моде, конечно.
    Я вижу смысл начинать использовать Go когда проект довольно вырос и появились критичные места в производительности архитектуры в целом. Тогда можно написать микросервис, который решит конкретную проблему.
    Бизнес-логику на Go писать неэффективно. Но если есть какие-то инфраструктурные задачи, то на нем писать их можно на ура.
    Выбор в пользу Go делается из-за подержки языка корпорацией, большой медийной поддержки в интернете и легкости изучения основ языка из-за его простоты. Соответственно, легче найти новых разработчиков, желающих писать на нем и обучить их.
    Ответ написан
    Комментировать
  • Цель - WEB Full-stack. Сносный ли план обучения для новичка?

    2ord
    @2ord
    По-большей части DevOps - это сисадминство, сопрягать и настраивать (в основном скрипты и языки) различное ПО и ОС, умение интегрировать облачные сервисы и строить системы для разворачивания ПО. Это не столько инженерия программирования, сколько умение разбираться в зоопарке технологий и практик. Что-то типа инженера-механика, мастера на все руки. Как верно замечено другими - автоматизация инфраструктуры (для ИТ-предприятий).
    Упор нужен на знание инструментария ОС, комп. сети, информационную безопасность. Чтобы понимать как строить системы из готовых компонентов.
    C# будет скорее всего лишним, а вот Питон очень понадобится и не раз.
    Шаблоны проектирования - для общего образования, чтобы понимать откуда ноги растут.
    Нужно знать что как работает DNS, HTTP и прочие протоколы. Как интегрировать различные облачные сервисы, строить системы для разворачивания ПО и пр.
    SQL - не столько сам язык, как о том как оптимизировать план запроса к СУБД, резервировать и восстанавливать данные, реплицировать и другие функции DBA.
    Веб-разработка, теория компиляторов и алгоритмы - скорее не надо. В случае необходимости всегда можно открыть книгу, статью или видео в интернете и дополнить свои знания.
    Ответ написан
    Комментировать
  • Почему сообщения из очереди обрабатываются, не ожидая окончания их выполнения, несмотря на await?

    2ord
    @2ord Автор вопроса
    После создания канала необходимо указать
    await this.channel.prefetch(1); // или другое кол-во, которое хотим обрабатывать одновременно.
    Ответ написан
    Комментировать
  • Как работает распознавание текста?

    2ord
    @2ord
    Читать про document layout analysis. Касательно поддержки в Tesseract: tesseract-ocr.github.io/docs/das_tutorial2016/5Lay...

    Библиотека на Питоне: https://gitlab.gnome.org/World/OpenPaperwork/pyocr
    Ответ написан
    Комментировать
  • Как вычислить правильно параметры для Range в headers?

    2ord
    @2ord
    1. А сервер вообще поддерживает range?
    2. Попробуй скачать сначала с помощью wget. Если получится, то хотя бы скачать возможно в принципе. Если нет, то и с Node.js не получится.
    3. Возможно, стоит попробовать ограничить скорость получения данных (сначала с wget).
    Ответ написан
  • Как импортировать датасет 30к документов в ElasticSearch?

    2ord
    @2ord Автор вопроса
    Импортировал так. Может у кого-то есть лучше вариант - буду рад узнать.
    split --verbose -l1000 dataset-bulk-30k.ndjson bulk.
    
    for f in bulk.??; do echo $f; curl -i -X POST localhost:9200/_bulk -H "Content-Type: application/x-ndjson" --data-binary @$f; done
    Ответ написан
    4 комментария
  • Как исправить ECONNRESET при загрузке файла с сервера?

    2ord
    @2ord
    Попробуй выгружать по частям при помощи дополнительного заголовка
    https://developer.mozilla.org/en-US/docs/Web/HTTP/...
    Ответ написан
    3 комментария
  • Проблема с MongoDB, поможете?

    2ord
    @2ord
    По-моему, вместо
    result = channel1.find_one({"guild_id": ctx.guild.id, "channel_id": channel.id})
                if result is None:
                    channel1.insert_one({f"guild_id": ctx.guild.id, "channel_id": channel.id})
                    await ctx.send(f'{ctx.author.mention}, канал успешно установлен на {channel.mention}.')
                elif result is not None:
                    channel1.update_one({"guild_id": ctx.guild.id}, {"$set": {"channel_id": channel.id}})
                    await ctx.send(f'{ctx.author.mention}, канал изменён на {channel.mention}.')

    Просто в опциях запроса update_one указать upsert=True.

    https://docs.mongodb.com/manual/reference/method/d...
    Ответ написан
  • Как раньше люди программировали?

    2ord
    @2ord
    Гугл родился в стенках университета Стэнфорда в рамках научного проекта. История.

    Раньше сайты представляли из себя в основном каталоги исходников программ по различным рубрикам, своего рода файло-помойки. Вместо GitHub были просто тысячи всяких FTP свалок, куда скидывали различные материалы и файлы ZIP/RAR и других ранее популярных тогда форматов архивов. Порой были разные варианты одних и тех же программ, с модификациями (патчами), улучшающими или изменяющими функциональность.

    Когда-то были такие сайты, как programmersheaven.com с рубриками по языкам программирования и другим.
    Взять, скажем, сайт https://pascal.sources.ru/rswag.htm - практически сохранен в первозданном виде. Живой музей. Уникальный случай!
    Вот, на таком сайте были собраны исходники с других источников SWAG, который был назван RSWAG (Russian SourceWare Archive Group). Обратите внимание на ссылку в меню слева: https://pascal.sources.ru/upload.htm (сейчас нерабочая). А когда-то она выглядела вот так. И люди сам пополняли материалами. Много вирусов всяких распространяли так же, конечно же.
    Спрашивали на форумах (на таких, как на том сайте). Так и учились, перенимая опыт друг у друга (и не факт, что лучший).

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

    2ord
    @2ord
    Файлы курсов, можно залить на какой-нибудь хостинг файлов. Если серьезное применение, то нередко используется хранилище S3. Это как FTP, только лучше. Но небесплатно. И тогда, имея файлы в хранилище, при помощи бота просто раздавать ссылки HTTP.
    Ответ написан
    Комментировать
  • Как передать данные из скрипта-потомка в основной скрипт?

    2ord
    @2ord
    При помощи IPC, в общем случае.
    В частности, multiprocessing.
    Или, как другой вариант, использовать zeromq.
    Ответ написан
    Комментировать
  • Как можно асинхронизировать и ускорить код?

    2ord
    @2ord
    1. Само собой, напрашивается вычисление вектора face_encodings от изображения эталона лишь однократно, вынося его перед циклом.
    2. Оба вызова face_recognition.load_image_file можно сделать асинхронными с await на каждой.
      Аналогично любые другие I/O операции с файлами и функции bot.send_photo и bot.send_message по отдельности.
    3. В face_recognition.compare_faces задача вычислительная, поэтому остается создать несколько процессов согласно количеству ядер процессора минуя очередь, а результатами (вычисленными хэшами) обмениваться через pipe.
    Ответ написан
    2 комментария