Задать вопрос
  • Почему нет функции удалить свой вопрос?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что люди тратили своё время, отвечали на вопрос, а вы собираетесь его взять и удалить?

    Вопросы-ответы полезны не только сиюминутно, но и на будущее, если у кого-нибудь возникнет похожий вопрос, и он найдёт его вместе с ответами поисковиком.
    Ответ написан
    Комментировать
  • Как ускорить сложный запрос mysql?

    @dimuska139
    Backend developer
    С помощью EXPLAIN проанализируй запрос и попробуй построить индексы
    Ответ написан
    8 комментариев
  • Как передавать аргументы к внешнему файлу в Docker?

    @zohan1993
    devops
    Если определить /usr/local/bin/trid как ENTRYPOINT, то CMD будет предоставлен в качестве параметров для ENTRYPOINT.
    При запуске контейнера можно переопределять CMD, в нашем случае указывать путь к файлу для анализа внутри контейнера.
    Поэтому нужно смонтировать внешнюю папку с файлами в контейнер.

    # Dockerfile
    ---
    FROM alpine:3.7
    ADD ./trid /usr/local/bin
    ENTRYPOINT ["/usr/local/bin/trid"]
    ---
    
    docker build -t trid:v1 .


    # Files for analysis on host system
    /var/lib/docker_data/files/file1.txt
    /var/lib/docker_data/files/file2.txt
    /var/lib/docker_data/files/file3.txt


    # Running container for analysis file1.txt
    docker run --rm -v /var/lib/docker_data/files:/data:ro --name analysis trid:v1 "/data/file1.txt"
    Ответ написан
    Комментировать
  • Какую технологию выбрать для работы с базой данных?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Огромные таблицы однотипных и упорядоченных по времени данных - это моветон. Партиционирование таблиц по дням/месяцам и схлопывание старых данных в агрегаты должны помочь - именно так, например, происходит в БД Заббикса.
    Ответ написан
    Комментировать
  • Какую технологию выбрать для работы с базой данных?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вряд ли скажут точно.
    Скорость запроса зависит от всего. От размера конкретной таблица, от того какие данные, причем важно и тип и их схожесть, чтобы было проще индексы строить.
    И от скорости ssd
    Но я бы сказал, что 100-300 гб это далеко не бигдата. Это просто большая база, с которой справится и mysql и postgres, тем более что взяв сервер с 128гб оперативки, почти треть можно в памяти кешировать.

    В вашем случае - без перфоманс тестов никто не скажет даже примерный порядок.
    P.S. И да, если ваши данные в основном числа (таймстамп и числовые показатели, то time series data bases могут с этим справиться лучше). С другой стороны они не так популярны и возможно не так развиты.
    Ответ написан
    Комментировать
  • Какую технологию выбрать для работы с базой данных?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Если у вас большой объем показаний датчиков с временными метками - то стоит присмотреться к специализированным БД
    Ответ написан
    Комментировать
  • Асинхронная работа ZipArchive (::addFromString) теряет файлы, как победить?

    s5656
    @s5656
    Ну давайте обратимся к документации и попробуем понять в какой момент происходят изменения в конечном файле:

    ZipArchive::close — Close opened or created archive and save changes. This method is automatically called at the end of the script.

    То есть либо при вызове ZipArchive::close, либо в конце скрипта (так как автоматически вызывается ZipArchive::close).

    Сам по себе ZipArchive — синхронный.
    Если в одном потоке, то вы создаете и редактируете один архив, через один объект ZipArchive и когда вызываете close — все сохраняется в файл, на диск.
    Если вы работаете в нескольких потоках, то у вас создается несколько ZipArchive, которые друг о друге ничего не знают и когда вы вызываете close — каждый из них пытается сохранить свои изменения и здесь уже кто последний тот и папа сохранил свою версию.

    Нужно либо как-то передавать экземпляр ZipArchive между вашими потоками, либо писать свою (или найти готовую) библиотеку для асинхронной работы с zip архивами.

    Как более простой вариант — делать работу с файлами асинхронно (во временной директории?), а затем их архивировать через тот же zip (консольную утилиту).
    Ответ написан
    2 комментария
  • Нужна программа для сбора и визуализаци статистики. Есть у кого на примете такая?

    @dmshar
    Чем MS Excel не угодил? Простая, дает возможности, которые вы просили, отлично строит картинки и графики. Что значит "удобно" просматривать графики я правда не понял, но мои графики и картинки и рисовались и просматривались всегда отлично. Если скажете что не так - будем думать дальше.
    Ответ написан
    6 комментариев
  • Почему возникает ошибка при deploy heroku?

    zb_venom
    @zb_venom
    Жизнерадостный чебурек
    package.json не содержит данных об express.js
    Примерно так:
    "dependencies": {
        "express": "^4.17.1",
      },
    Ответ написан
    1 комментарий
  • Где можно использовать горутины в Go?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Самый простой пример - это HTTP сервер.
    Когда к вам приходит HTTP запрос - создаётся горутина и каждый запрос спокойно обрабатывается, никто никого не ждёт. Т.е. сервер может обрабатывать параллельно несколько запросов как раз за счёт горутин.

    Фактически, почти во всех сетевых сервисах есть смысл использовать горутины для распараллеливания обработки запросов (кроме epoll, kqueue и т.п.)

    Еще хороший пример.
    Вам нужно сделать парсер Авито :)) или индесатор сайтов.
    Т.е. задача сводится к тому, что нужно будет постоянно качать страницы с сайтов.
    Если вы будете качать одну страницу за другой - вы будете очень долго качать.
    А так вы можете сделать пул из нескольких горутин (как минимум по 1 на поток процессора) и получите параллельное скачивание страниц.

    Для ускорения работы вычислений (параллельные вычисления) есть смысл использовать горутины только по 1 на поток процессора). Т.е. в случаях, когда у вас огромный объём данных и нужно максимально ускорить его обработку. Например у вас файл 100Гб, и 8 ядер в процессоре - вы можете разбить файл на 8 частей и параллельно эти части обработать (в самом простом варианте, в реальной жизни нужно будет просто по частям считывать новые данные и скармливать свободной горутине)

    Еще когда нужно сделать чтобы какая нибудь задача выполнялась в "фоне".
    Например периодическая очистка кеша/устаревший записей в базе.

    Реальных примеров намного больше :)
    В целом их есть смысл использовать там, где нужно параллельное выполнение какой либо задачи или разных задач параллельно :)
    Ответ написан
    2 комментария
  • Как работает шифрование и подпись файлов?

    Jump
    @Jump
    Системный администратор со стажем.
    Шифрование это видоизменение информации, таким образом чтобы ее без ключа прочитать невозможно было.
    Никаких сертификатов для этого не требуется.

    Сертификат это криптографический документ удостоверяющий личность или организацию.
    Его используют совместно с шифрованием для того чтобы четко понимать кто что подписал и кому можно доверять.
    Сертификаты может выдавать кто угодно - сгенерировать сертификат может любой школьник за несколько секунд.
    Но главное в сертификате доверие - поэтому сертификат должен быть выдан центром сертификации которому пользователь будет доверять.

    Пользователь добавляет все центры сертификации которым он доверяет в "Доверенные" и сразу появляется доверие ко всем сертификатам выданным этими центрами.

    и в чем в целом разница между подписью и шифрованием файла,
    А в чем разница между жирафом и зеленым?
    Вот в этом же разница и между подписью и шифрованием.
    Ответ написан
    Комментировать
  • Как работает шифрование и подпись файлов?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    А что, в гугле забанили?

    Корневой сертификат нужен для того, чтобы проходила проверка валидности сертификата. Ты выпускаешь себе сертификат - но доверия к нему нуль. Ты должен либо каким-то образом убедить/заставить всех тех, кто будет читать твою почту например поставить себе этот сертификат в доверенные (это в энтерпрайзе просто - сунул в политику и всем разлетелось).
    В этом и смысл выпуска сертификата в CA с мировым признанием - хотя бы в LE - чтобы проходила проверка валидности без танцев с корневым сертификатом.
    Подпись не изменяет содержимое файла - его можно будет прочитать. Подпись гарантирует, что файл в процессе доставки не был изменен.
    Шифрование изменяет файл - его нельзя будет прочитать, но злонамеренный чел может его модифицировать - и его нельзя будет расшифровать.
    Подпись шифрованного файла гартантирует, что шифрованный файл не был изменен и он нормально расшифруется.
    Ответ написан
    4 комментария
  • Как сохранить 500 млн документов в Mysql или Postgresql?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    500 млн документов в Mysql или Postgresql... Мне нужно их индексировать через Sphinx

    However, Sphinx does not depend on nor require any specific database to function.
    Если у вас не стоит задача работать с УЖЕ СУЩЕСТВУЮЩЕЙ базой, база сфинксу как таковая не нужна, у него свои индексы и свой движок, хотя и с базами она тоже умеет.

    PS: sphinxsearch.com/forum/view.html?id=11964
    Ответ написан
    Комментировать
  • Django & PostgreSQL MemoryError + не правильная работа скрипта?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Как тут уже правильно заметили, не надо ловить все Exception без разбору и даже не выводить никакой ошибки. Ничего хорошего от этого антипаттерна не получится.

    Как минимум следует начать хотя бы с такого:

    try:
      ...
    except Exception as e:
      print (e)


    Сейчас же, возможно, случается Exception, но мы этого даже не знаем.

    Далее, не стоит использовать ORM вперемешку с обычными запросами. Это тоже источник потенциальных проблем, ведь ORM может кэшировать данные, в том числе ещё не сохранённые. Возможно, до вызова save случился Exception, данные в кэше отличаются от данных в базе, но при прямом запросе в базу мы получим не то же самое, что получили бы из кэша.

    Вот такие мелочи могут создавать проблемы, которые при этом вообще нигде даже не отражается. И это ещё повезло, что эффект такой заметный. А если бы эффект проявлялся в одном случае из тысячи? Как бы его потом ловить и что отвечать пользователям, с которых списали лишних денег?
    Ответ написан
    Комментировать
  • Django & PostgreSQL MemoryError + не правильная работа скрипта?

    @Norkotik
    Реализация понравилась
    try:
    Вся логика
    except:
    pass
    Если эту гомосятину убрать, то смог бы понять где ошибся в логике, а так чему удивляться?
    Ответ написан
    Комментировать
  • Почему не устанавливается Microsoft Sql server 2012?

    @kisaa
    https://docs.microsoft.com/en-us/sql/sql-server/sq...

    Supported Operating Systems for SQL Server 2012

    SQL Server 2012 is supported on the Windows Vista SP2, Windows Server 2008 SP2, Windows 2008 R2 SP1, and Windows 7 SP1 operating systems.
    Ответ написан
    Комментировать
  • Crystal (подобный Ruby) – стоит ли изучать этот язык программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Тут не оракулы.
    Ни про один узкоспецифический язык вам никто не скажет.
    Можете попробовать выяснить у авторов языка, что они собираются с ним сделать. А "бывалые" программисты вам тут не помощь.

    Язык не простой. Он просто в сравнении с c++/java.
    Он будет интересен тем, кто профессионально писал на ruby/java и посмотреть что он предложит.

    А новичку он совершенно бесполезен по разным причинам:
    * на нем нет готовых публичных проектов в большом количестве
    * у самого языка очень небольшое сообщество (пара сотен человек против миллионов на с++/java/c#/js/bash/basic/etc)
    * вакансий на него раз-два и обчелся в мире

    С подобными вопросами, не заморачивайтесь, учите python
    Ответ написан
    9 комментариев
  • Правда ли, что в руби появится возможность статической типизации?

    @Shetani
    На рубиконфе Matz говорил что есть идеи сделать статическую типизацию.
    Вот тут почитать можно.
    Ответ написан
    Комментировать
  • DevOps больше программист, или системный администратор?

    @MEJIOMAH
    Изначально DevOps это не человек. Это про то что разработчик теперь отвечает не только за то что его код работает на его машине, но и за то как он дойдет до пользователя и как он будет работать.

    Сейчас DevOps стал "модным" словом для обозначения администратора который умеет в облачную инфраструктуру и/или писать пайплайны для сборки/раскатки кода.

    Вот неплохой юмористический доклад на эту тему
    Ответ написан
    3 комментария
  • DevOps как предприятие выглядит изнутри?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    DevOps это культура разработки и набор практик, которые надо имплементировать. Занимаются этим системные инженеры, разработчики и тестировщики в первую очередь совместно. Но вообще в этом всем замешано куда больше людей
    Ответ написан
    Комментировать