Как стать автором
Обновить
3
0

Пользователь

Отправить сообщение

Хотелось бы видеть технические подробности, а не "вот это". Например, как настраивали, тестировали производительность, с какими проблемами столкнулись. Почему так а не эдак. Примеры запросов и их оптимизация

Было бы интеересно узнать, как это реализовано у других файловых хранилищ, приведенных в статье

Google One
Microsoft OneDrive
Sync
pCloud
MEGA

Выглядит как наезд конкретно на дропбокс, при этом непонятно, на сколько это вообще сложно реализуемая фича (иначе была бы у всех конкурентов). Я склонен согласиться с другими комментаторами, что если бы так было просто реализовать, то уже сделали бы. А отчитываться почему не могут/не хотят они не обязаны

P.s. не отрицаю наличие проблемы, самому не нравятся предлагаемые настроки синхронизации, приходится костылить

Кстати любопытно про рекомендации и поток клиентов. В частной клинике врач работает на ставку? Он имеет доход в зависимости от количества пациентов? А если у врача рядовая специальность, и к нему хотя условно разово (первичный прием и несколько повторных), в отличие от стоматолога, которого человек может посещать регулярно в течение длительного времени. Какой тогда профит имеет врач от рекомендаций? (хотя у нас на работе периодически проскакивают вопросы "посоветуйте хорошего доктора по Х")

Умеют ли они в адекватный шумодав.

Дискорд интегрирован с Krisp https://support.discord.com/hc/en-us/articles/360040843952-Krisp-FAQ

Я не уверен, что коммерческий продукт можно интегрировать в опенсорсный. Если только использовать крисп самостоятельно и оплачивать подписку. Или какой-то другой опенсорсный инструмент для подавления шума

Пользуюсь много лет даблом, начиная с линукса, теперь и под маком с виндой. Иногда он действительно тормозит на некоторых операциях, но про фотошом, мягко говоря, Вы загнули

Да, не обратил внимание на заголовок, а в самом курсе не написано

На каждый вид тестирования приходилось создавать свои job в CI и запускать их руками.

Не знаю как там в travis, в teamcity делается нажатием одной кнопочки (опционально, ввести параметры типа бранча/билда, который надо протестировать)


Разработчики отказывались запускать кейсы автотестов самостоятельно.

Автоматический запуск на коммит/билд решит проблему. Разработчик только получит email, если тесты упали


Отсутствие возможности запуска автотестов из любой точки \ устройства.

Это действительно на столько важно? Я лично не могу представить ситуацию, когда вне работы (== нет рабочего устройства под рукой) потребовалось бы запускать тесты


QA инженеры ручного тестирования не могли самостоятельно проводить запуск автотестов.

Настраиваете доступ к CI и вуаля

У argparse есть фишка — сабпарсерам можно задать функцию, которая будет обрабатывать вызов. Благодаря этому, лесенка if-ов в main


        if cmd == "add":
            task = app.add_task(args.title)
            print(task, "created with number", task.number, end=".\n")
        elif cmd == "show":
            app.print_tasks(args.show_done)
        elif cmd == "done":
            task = app.task_done(args.number)
            print(task, "marked as done.")
        elif cmd == "remove":
            task = app.remove_task(args.number)
            print(task, "removed from list.")

сократится до одной строчки args.func(args). Пример из документации:


>>> # sub-command functions
>>> def foo(args):
...     print(args.x * args.y)
...
>>> def bar(args):
...     print('((%s))' % args.z)
...
>>> # create the top-level parser
>>> parser = argparse.ArgumentParser()
>>> subparsers = parser.add_subparsers()
>>>
>>> # create the parser for the "foo" command
>>> parser_foo = subparsers.add_parser('foo')
>>> parser_foo.add_argument('-x', type=int, default=1)
>>> parser_foo.add_argument('y', type=float)
>>> parser_foo.set_defaults(func=foo)
>>>
>>> # create the parser for the "bar" command
>>> parser_bar = subparsers.add_parser('bar')
>>> parser_bar.add_argument('z')
>>> parser_bar.set_defaults(func=bar)
>>>
>>> # parse the args and call whatever function was selected
>>> args = parser.parse_args('foo 1 -x 2'.split())
>>> args.func(args)
2.0
>>>
>>> # parse the args and call whatever function was selected
>>> args = parser.parse_args('bar XYZYX'.split())
>>> args.func(args)
((XYZYX))

Я запомнил только пароль от компьютера и пароль от keepass. Два пароля относительно быстро запоминаются

Долго думал о последней проблеме — что происходит, и зачем это нужно. Посмотрел примеры в репозитории sorcery, опять не понял, а потом прочитал под заголовоком


Dark magic delights in Python

После этого все стало на свои места :) Just for fun забавно конечно, но в дайджесте с практичными советами выглядит немного странно...

Конкретно DuckDuckGo показывает рекламу, а также берет комиссию от Amazon и eBay при переходе по ссылкам. Утверждают, что никакой персонализации

Еще и рекламу платного сервиса влепили. Правилами хабра такое запрещено

Settings -> Comments, в списке найдите disqus

Bitwarden можно хостить в собственной инфраструктуре

Если будет хотя бы сравнение, как можно сделать то, что Вас написано, с помощью готовых лексеров/парсеров (в питоне есть ply, sly), и что писать парсеры самостоятельно — не лучшая идея, было бы замечательно. Ведь компиляторы — действительно сложная штука! И если надо по-быстрому набросать свой DSL, кто-то может пойти на хабр, найти подобный туториал и нафигачить все с нуля. Гораздо ценнее было бы почитать, что делать с ast после парсинга. Таких статей, как мне показалось, значительно меньше
P.s. навеяно болью переписывания самописного парсера (предыдущим коллегой) на ply

Информация

В рейтинге
7 233-й
Зарегистрирован
Активность