А было бы классно, если бы вы автоматизировали фиксанье багов и регрессий в гитлабе. А то как-то достало, что многие баги и регрессии висят без какой-либо активности, кроме переноса на след релиз…
кмк, лучше переписать список ожидаемых exceptions, чем Exception. Но это дело вкуса.
я в последнее время очень полюбил модуль pathlib (раньше использовал py.path), и всем советую его. но если не хочется, всегда можно сделать os.path.splitext(filename)[1]. собственно идея комментария была в том, что бы не делать path.lower() несколько раз в коде + сделать аккуратнее логику с .jpg/jpeg.
а вообще спасибо за статью — мне было интересно почитать и кое-что новое узнал. когда-нибудь пригодится :)
первое что бросилось в глаза… это был вот этот кусок. похожее есть в
if 'lang' in respdetect.keys():
respdetect = respdetect
else:
respdetect = {'code': 200, 'lang': 'en'}
Почему бы не заменить на
if 'lang' not in respdetect.keys():
respdetect = {'code': 200, 'lang': 'en'}
во-вторых, не всегда requests.get вернет объект response из которого можно вытащить json. я бы, все таки, проверил что response code == 200 (или requests.codes.ok); или использовал response.raise_for_errors().
ну и самое интересное — а что произойдет, если clipboard изменится между вызовом detect() и translate()? понимаю, что маловероятно, но это race condition. посоветовал бы сохранять состояние клипборда в переменную, а потом уже детектить язык и переводить.
поддерживать gitlab in-house — ничего не стоит и занимает максимум часа полтора в месяц на апгрейды, если судить из моих записей.
тк была известная история, когда Gitlab потерял данные из-за того, что backupы не работали, с тех пор держу два инстанса: primary и backup. кажду ночь делаю backup на primary и восстанавливаю на backup, следя за ошибками при восстановлении. таким образом всегда знаю — у меня есть бэкап и он точно работает. из минусов такого — иногда на backup инстансе заканчивается место — но об этом я тоже вовремя узнаю. сейчас это делается всё легко, не так как лет 6 назад, когда гитлаб только становился на ноги…
#bug в профайле, в приглашениях на английском, мне говорит, что «You have 1 приглашение». Ну и «invite some good people» звучит как-то не по-английски. Честно говоря, я бы не переводил это дословно. Предложить ничего не могу.
Можно. Хотя я не знаю как сделано в certbot — он у меня на centos6 не захотел в какой-то момент заводиться и просил рут, я тогда нашёл замену lego, а позднее нашел и acme.sh, который работает везде, где мне надо.
Я пример написал для «ручногого» получения. У acme.sh есть поддержка моего ДНС провайдера, поэтому проблем с автоматическим renew нет. У меня даже ssl для iLo автоматически обновляется, но это уже другая история.
В штатах, испытательный срок от месяца до шести (обычно — три), после которых делают ревью. Зарплата в первые три месяца может быть меньше, чем потом; ну и медицинскую страховку получаешь по окончании испытательного срока. А практически во всех контрактах на работу (обычно, это employee handbook) написано, что работаешь ты «at will», т.е пока работодателя устраиваешь. Если перестанешь удовлетворять, или надобность отпадет, может быть дадим двухнедельное предупреждение, и — до свидания. Или сразу выставим за дверь, что б ты ничего в отместку не натворил.
Но, если честно, web-сервис для определения выходного это какой-то перебор. Я пользуюсь numpy.is_busday и это одна строчка + определение календаря, если мне нужно добавить какие-то специфические календари, типа когда была открыта биржа или что-то еще. Вот это и есть одна-две строчки.
Этот знак стоит для тех, кто въезжает на автостраду (Присмотритесь к направлению, его видно лишь под углом)
Для тех, кто въезжает на автостраду стоит знак STOP. GSV не показывает знак с нужной точки, но сам знак выглядит так. Знак yield стоит тут для тех, кто собирается пересечь полосу движения или тех, кто собирается сделать u-turn. Грузовик должен был уступить дорогу любой машине, которая ехала по хайвею.
А если честно — лучше просто один раз проехать по такому хайвею и понять как там идёт движение, тогда вопросов не будет особо. То, что написано в правилах — не факт что их соблюдают. Я по похожей дороге ехал из Джексонвиля в Тампу (объезжал дикую аварию на 75й дороге).
Об этом инциденте напишут еще много-много. Узнаем потом кто был прав.
Моё мнение — виноваты тут оба: и водител трака, и водитель теслы. Водитель теслы забил, скорее всего на тот факт, что за дорогой нужно следить. И это понятно, ведь машина его один раз уже увела от аварии, а может и не раз. А водитель трака пересекал дорогу не до конца убедившись, что это достатчно безопасно — дорога там прямая, без повортов, можно было бы дождаться пока все машины проедут, но это лишнее время и можно стоять там долго, поэтому он и рискнул.
А было бы классно, если бы вы автоматизировали фиксанье багов и регрессий в гитлабе. А то как-то достало, что многие баги и регрессии висят без какой-либо активности, кроме переноса на след релиз…
кмк, лучше переписать список ожидаемых exceptions, чем
Exception
. Но это дело вкуса.я в последнее время очень полюбил модуль pathlib (раньше использовал py.path), и всем советую его. но если не хочется, всегда можно сделать
os.path.splitext(filename)[1]
. собственно идея комментария была в том, что бы не делатьpath.lower()
несколько раз в коде + сделать аккуратнее логику с.jpg
/jpeg
.а вообще спасибо за статью — мне было интересно почитать и кое-что новое узнал. когда-нибудь пригодится :)
в функции
processor
:не позволил вам найти опечатку в строчке
тут явная опечатка
pfd
должно бытьpdf
. ну и, кмкif len(pdf.pages):
можно заменить было бы наif pdf.pages:
.А еще там же, можно было бы написать
и дальше сравнивать
if ext == '.pdf':
, и не повторять кучу раз код. Да, три лишние строчки добавится, но код станет читабельнее.первое что бросилось в глаза… это был вот этот кусок. похожее есть в
Почему бы не заменить на
во-вторых, не всегда requests.get вернет объект response из которого можно вытащить json. я бы, все таки, проверил что response code == 200 (или
requests.codes.ok
); или использовалresponse.raise_for_errors()
.ну и самое интересное — а что произойдет, если clipboard изменится между вызовом
detect()
иtranslate()
? понимаю, что маловероятно, но это race condition. посоветовал бы сохранять состояние клипборда в переменную, а потом уже детектить язык и переводить.тк была известная история, когда Gitlab потерял данные из-за того, что backupы не работали, с тех пор держу два инстанса: primary и backup. кажду ночь делаю backup на primary и восстанавливаю на backup, следя за ошибками при восстановлении. таким образом всегда знаю — у меня есть бэкап и он точно работает. из минусов такого — иногда на backup инстансе заканчивается место — но об этом я тоже вовремя узнаю. сейчас это делается всё легко, не так как лет 6 назад, когда гитлаб только становился на ноги…
Для работы с q в Питоне с помощью PyQ, можно и не переходить в псевдо-q режим для создания таблицы:
Можно сделать связку python + kdb, воспользовавшись PyQ.
Можно. Хотя я не знаю как сделано в certbot — он у меня на centos6 не захотел в какой-то момент заводиться и просил рут, я тогда нашёл замену lego, а позднее нашел и acme.sh, который работает везде, где мне надо.
доверять приватный ключ кому-либо — это ай-ай-ай! я пользуюсь acme.sh, где получение нового сертификата делает одна команда:
У вас ошибочка:
и
параметры функции разделяются точкой с запятой, а не запятой. Запятая — это join. Точно так же с вызовом функции.
а почему код ошибки 100? почему бы не сделать простое и всем понятное: 404, если года в календаре нет?
ну почему же? зачем всем видеть, что айпи 33.33.33.33 решил узнать выходной ли пятое апреля 18 года?
ладно, уговорили.
тогда где возможность выбора календаря? (знаю, что сейчас один, но, скажем, добавите вы туда выходные в украине или сша — как выбрать?)
404 ошибка на https://isdayoff.ru/db.
Но, если честно, web-сервис для определения выходного это какой-то перебор. Я пользуюсь numpy.is_busday и это одна строчка + определение календаря, если мне нужно добавить какие-то специфические календари, типа когда была открыта биржа или что-то еще. Вот это и есть одна-две строчки.
Для тех, кто въезжает на автостраду стоит знак STOP. GSV не показывает знак с нужной точки, но сам знак выглядит так. Знак yield стоит тут для тех, кто собирается пересечь полосу движения или тех, кто собирается сделать u-turn. Грузовик должен был уступить дорогу любой машине, которая ехала по хайвею.
А если честно — лучше просто один раз проехать по такому хайвею и понять как там идёт движение, тогда вопросов не будет особо. То, что написано в правилах — не факт что их соблюдают. Я по похожей дороге ехал из Джексонвиля в Тампу (объезжал дикую аварию на 75й дороге).
Об этом инциденте напишут еще много-много. Узнаем потом кто был прав.
Моё мнение — виноваты тут оба: и водител трака, и водитель теслы. Водитель теслы забил, скорее всего на тот факт, что за дорогой нужно следить. И это понятно, ведь машина его один раз уже увела от аварии, а может и не раз. А водитель трака пересекал дорогу не до конца убедившись, что это достатчно безопасно — дорога там прямая, без повортов, можно было бы дождаться пока все машины проедут, но это лишнее время и можно стоять там долго, поэтому он и рискнул.