• Как работает шифрование и подпись файлов?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    А что, в гугле забанили?

    Корневой сертификат нужен для того, чтобы проходила проверка валидности сертификата. Ты выпускаешь себе сертификат - но доверия к нему нуль. Ты должен либо каким-то образом убедить/заставить всех тех, кто будет читать твою почту например поставить себе этот сертификат в доверенные (это в энтерпрайзе просто - сунул в политику и всем разлетелось).
    В этом и смысл выпуска сертификата в 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 это культура разработки и набор практик, которые надо имплементировать. Занимаются этим системные инженеры, разработчики и тестировщики в первую очередь совместно. Но вообще в этом всем замешано куда больше людей
    Ответ написан
    Комментировать
  • DevOps как предприятие выглядит изнутри?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Докер это просто инфраструктура.
    Позиция девопс - это умение работать с CI/CD инструментами и автоматизация инфраструктуры.

    Просто есть такая вещь - позиция junior Devops это моветон, потому что девопс инженер нужен в средних и крупных проектах, а в маленьких с этим справляются и разработчики.
    Поэтому позиция Девопс инженер обычно там, где структура проекта сложная, отсюда и пошло мнение, что у девопсов все сложно, круто и так далее.
    Ответ написан
    Комментировать
  • Можно использовать sqlite3 в асинхронном боте?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Достаточно организовать очередь запросов. Т.е. пока идёт один запрос, не позволять выполнять второй.
    Если на бд нет большой нагрузки, то sqlite справится с этим.
    В противном случае воспользуйтесь любой клиент-серверной БД.
    Ответ написан
    Комментировать
  • Можно использовать sqlite3 в асинхронном боте?

    @akonovalov
    Программист на компьютере
    Не так давно работал с SQLite из Python 3.8 с aiohttp.
    Использовал библиотеку aiosqlite.
    Ошибок блокировки с ней не вылетало, при попытке писать параллельно - всё писалось, но с ожиданием. Судя по всему она умеет блокировать файл при записи кем-то одним и остальные "ждут".
    Главное неудобство для меня было отсутствие нормального асинхронного ORM для работы с SQLIte,
    хотя для своего класса задач (прототипы, малонагруженные и малоиспользуемые сервисы) - ИМХО вполне подходящее решение.
    Ответ написан
    3 комментария
  • Можно использовать sqlite3 в асинхронном боте?

    @DollaR84
    Если ваша бд сильно нагружена, то действительно лучше использовать специализированные продукты типа postgres. Но в ином случае многие sqlite сильно недооценивают.
    Эта база может и простая, но имеет много возможностей, о которых большинство и не задумываются.
    Во первых, есть несколько вариантов указания работы с многопоточностью, указывается при сборке библиотеки, по умолчанию sqlite3.dll собрана с многопоточным доступом.
    https://www.sqlite.org/threadsafe.html
    Во вторых, у sqlite есть набор интересных ключей при открытии прагмы. Советую использовать, как минимум, journal_mode='wal'. Это освободит запросы чтения от ожидания завершения запросов записи.
    Также есть прагма threads, указывающая сколько лимитов потоков можно создавать, по умолчанию стоит 0, можно увеличить данное число.
    Со всеми прагмами можно ознакомиться тут: https://www.sqlite.org/pragma.html
    В третьих, если вы работаете с базой не напрямую запросами, а через какую-то ORM, то у них тоже могут быть дополнительные опции для потокобезопасности. Например, в простой ORM peewee при открытии базы, наряду с прагмами можно также указать флаг: thread_safe=True. Не разбирал подробности как он работает, но думаю он использует в своей работе ту же прагму threads.
    Поэтому все зависит от нагрузки и роли базы в ваших ботах. В некоторых задачах sqlite оправданный выбор. Надо подбирать инструмент под задачу.
    Ответ написан
  • Реализация неприрывной доставки приложений?

    @unseriously
    Можно с помощью GitHub actions - мануалов полно
    Можно с помощью Jenkins, тут уже надо будет этот самый Jenkins где-то развернуть и настроить
    Можно с помощью GitLab, его можно установить где-то у себя, а можно воспользоваться облачной версией
    Ответ написан
    Комментировать
  • Реализация неприрывной доставки приложений?

    @q2digger
    никого не трогаю, починяю примус
    GitLab, GitHub + Actions
    Ответ написан
    Комментировать
  • Можно ли файл виртуальной машины преобразовать в iso образ?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если ваша задача перенести виртуалку то воспользуйтесь вот этим гайдом
    https://askubuntu.com/questions/32499/migrate-from...

    Впрочем есть другой вариант.
    https://codebeer.ru/dd-klonirovanie-diska-po-ssh/
    dd if=/dev/sda | gzip | ssh root@target 'gzip -d | dd of=/dev/sda'
    Ответ написан
    Комментировать
  • Какой самый быстрый архиватор?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Незачем искать экзотику и экономить наносекунды.
    Обычный ZIP со степенью сжатия 0.
    Программу подберите по вкусу, их много.

    Лично я пользуюсь Total Commander.
    spoiler
    605d18d5bac7f377918080.png
    Ответ написан
    Комментировать
  • Как обрезать текст в GO?

    Тримы работают вполне нормально https://play.golang.org/p/31OXind1eyt
    str := "UserName: Vasya Pupkin"
    result := strings.TrimPrefix(str, "UserName: ")
    fmt.Println(result)
    Ответ написан
    2 комментария