К дискуссии в чате.
Хохлы придумали миллион оскорблений, но только одно я взял на вооружение себе.
Ибо оно мне нравится.
Лаптеногие!
И это обьясняет очень многое о русских вообще и о существовании до сих пор Украины в частности ;)
Хохлы придумали миллион оскорблений, но только одно я взял на вооружение себе.
Ибо оно мне нравится.
Лаптеногие!
И это обьясняет очень многое о русских вообще и о существовании до сих пор Украины в частности ;)
😁5👍1🔥1👏1🤡1
Тем временем, прибыль, не выручка https://ssleg.tech перевалила 500 тысяч рублей.
Мелочь, а приятно.
Мелочь, а приятно.
👍10🔥6
Когда я выбирал название канала, я хотел назвать его sleg в честь волнового наркотика Стругацких.
В книге которых мы и живем, хех. Они в 60х увидели вообще все про нас из 2010х.
Но у телеги есть ограничение - имя канала от 5 букв. Я удвоил первую s и забыл.
Недавно узнал, что ssleg это редкая латинская аббревиатура - supra scripti legionis. Вышеописанные легионы.
И теперь у меня нет выбора. Только сражаться до победы. Легионы не сдаются (почти) никогда.
В книге которых мы и живем, хех. Они в 60х увидели вообще все про нас из 2010х.
Но у телеги есть ограничение - имя канала от 5 букв. Я удвоил первую s и забыл.
Недавно узнал, что ssleg это редкая латинская аббревиатура - supra scripti legionis. Вышеописанные легионы.
И теперь у меня нет выбора. Только сражаться до победы. Легионы не сдаются (почти) никогда.
👍13🔥4
Я в циву не играл где-то с третьей.
И тут Яндекс-музыка притаскивает великолепное:
Civilization VI. Россия (атомная эра) на мотив "Калинка моя". А для недогадливых, с середины хор поет слова.
Ору чаечкой.
И тут Яндекс-музыка притаскивает великолепное:
Civilization VI. Россия (атомная эра) на мотив "Калинка моя". А для недогадливых, с середины хор поет слова.
Ору чаечкой.
👍1🔥1🥴1
Как отучить срать в syslog.
Некоторые сетевые сервисы считают, что каждый пакет надо скидывать в журнал системы, что в корне неверно.
Syslog это первое место, куда надо смотреть, если что-то на сервере упало. То есть файл должен быть небольшого размера и содержать действительно важную информацию.
Со временем у меня накопилось несколько рецептов для решения этой проблемы, ради которых пришлось копаться в документации.
UFW (файерволл):
Редактируем файл
После чего перезапустить службу логирования системы
Лог UFW будет жить в отдельном файле
UWSGI (сервер web приложений flask/django etc):
Приложение должно вести свои логи, если необходимо, а c uwsgi делаем так:
Редактируем app.ini, в секцию
добавляем
По необходимости, можно использовать еще два флага - логировать только http ответы 400х и 500х серий. Они работают независимо от того, включен общий лог или нет.
Gitea (это вообще ван лав💋):
По умолчанию, эти красавцы все события выдают в stdout, откуда оно падает в syslog.
Редактируем конфиг:
Вместо стандартной секции
Делаем свой файловый лог:
После редактирования не забудьте перезапустить:
Тут пояснения вроде ненужны, ротация лога раз в сутки, хранить 2 недели, архивы сжимать.
В доках Gitea ошибка в последнем параметре "уровень сжатия", они пишут, что он от -1 до -9, от чего gzip удивляется и выпадает в осадок. Правильно писать от 1 (минимум) до 9 (максимум сжатия).
В итоге такой расчистки конюшен, у меня syslog порядка сотен килобайт в сутки, легко и быстро читаем и не замусорен.
А все детали, если они необходимы, можно уточнить в других логах.
Некоторые сетевые сервисы считают, что каждый пакет надо скидывать в журнал системы, что в корне неверно.
Syslog это первое место, куда надо смотреть, если что-то на сервере упало. То есть файл должен быть небольшого размера и содержать действительно важную информацию.
Со временем у меня накопилось несколько рецептов для решения этой проблемы, ради которых пришлось копаться в документации.
UFW (файерволл):
Редактируем файл
/etc/rsyslog.d/20-ufw.conf, нужно раскомментировать последнюю строку #& stopПосле чего перезапустить службу логирования системы
systemctl restart rsyslogЛог UFW будет жить в отдельном файле
/var/log/ufw.logUWSGI (сервер web приложений flask/django etc):
Приложение должно вести свои логи, если необходимо, а c uwsgi делаем так:
Редактируем app.ini, в секцию
[uwsgi]добавляем
disable-logging = trueПо необходимости, можно использовать еще два флага - логировать только http ответы 400х и 500х серий. Они работают независимо от того, включен общий лог или нет.
log-4xx = true
log-5xx = trueGitea (это вообще ван лав💋):
По умолчанию, эти красавцы все события выдают в stdout, откуда оно падает в syslog.
Редактируем конфиг:
/etc/gitea/app.iniВместо стандартной секции
[log]
MODE = console
LEVEL = info
ROOT_PATH = /var/lib/gitea/logДелаем свой файловый лог:
[log]
MODE = file
LEVEL = info
ROOT_PATH = /var/lib/gitea/log
FILE_NAME = gitea.log
LOG_ROTATE = true
DAILY_ROTATE = true
MAX_DAYS = 14
COMPRESS = true
COMPRESSION_LEVEL = 9После редактирования не забудьте перезапустить:
systemctl restart giteaТут пояснения вроде ненужны, ротация лога раз в сутки, хранить 2 недели, архивы сжимать.
В доках Gitea ошибка в последнем параметре "уровень сжатия", они пишут, что он от -1 до -9, от чего gzip удивляется и выпадает в осадок. Правильно писать от 1 (минимум) до 9 (максимум сжатия).
В итоге такой расчистки конюшен, у меня syslog порядка сотен килобайт в сутки, легко и быстро читаем и не замусорен.
А все детали, если они необходимы, можно уточнить в других логах.
👍2🔥1👌1
Один очень скромный админ из @mikrotikclub (поэтому имя его неназываемо), рассказал мне, что видел в bot api параметр, прекращающий лазание телеги по всем доступным ссылкам.
Я углубился в документацию и проверил эффект. Реально работает, но флаг надо ставить в каждом сообщении со ссылкой.
Поведение телеграм по умолчанию изменить нельзя.
В telethon код выглядит так:
Я углубился в документацию и проверил эффект. Реально работает, но флаг надо ставить в каждом сообщении со ссылкой.
Поведение телеграм по умолчанию изменить нельзя.
В telethon код выглядит так:
result = await client.send_message(user_id, message, files, buttons, link_preview=False)Telegram
СЛЕГ! <Z> ️
В процессе создания бота уведомлений, выяснилось забавное.
Телега пытается пролезть по любым ссылкам, даже сгенерированным ботом для пользователей.
Что привело к ложным срабатываниям: клиент только получает ссылку на API, и сразу получает уведомление.
…
Телега пытается пролезть по любым ссылкам, даже сгенерированным ботом для пользователей.
Что привело к ложным срабатываниям: клиент только получает ссылку на API, и сразу получает уведомление.
…
👍5
Forwarded from Стихи и книги Дмитрия Мельникова (Dmitry Melnikoff)
Опять патриоты и либералы выясняют, кто из них более прав. Тема бесконечная.
Да это вообще не важно.
Россия идет своим историческим путем, а вы
висите на бортах и днище этого корабля ракушками.
Прав тот, кто воюет, строит, лечит, хлеб печет и так далее.
Вот они правы.
А вы просто балаболы, потому что у вас нет настощего дела в руках и все, что вы можете -
это трындеть в
соцсетях.
Объединитесь уже, помиритесь и сделайте для России что-нибудь полезное.
Руками. Я не говорю головой - ее у вас нет.
Для этого есть масса возможностей.
Приезжайте ко мне, я всем вам найду работу.
А, у вас лапки. Ну тогда спорьте дальше.
Прилепин, ты теперь слабомощный, будешь курам по полведра зерна носить.
Кормить буду хорошо, у меня собака и то каждый день мясо ест.
А то тебе скучно там в больнице, как я вижу.
Можешь Собчак взять с собой. Будет корову доить.
Ну, если корова захочет.
Да это вообще не важно.
Россия идет своим историческим путем, а вы
висите на бортах и днище этого корабля ракушками.
Прав тот, кто воюет, строит, лечит, хлеб печет и так далее.
Вот они правы.
А вы просто балаболы, потому что у вас нет настощего дела в руках и все, что вы можете -
это трындеть в
соцсетях.
Объединитесь уже, помиритесь и сделайте для России что-нибудь полезное.
Руками. Я не говорю головой - ее у вас нет.
Для этого есть масса возможностей.
Приезжайте ко мне, я всем вам найду работу.
А, у вас лапки. Ну тогда спорьте дальше.
Прилепин, ты теперь слабомощный, будешь курам по полведра зерна носить.
Кормить буду хорошо, у меня собака и то каждый день мясо ест.
А то тебе скучно там в больнице, как я вижу.
Можешь Собчак взять с собой. Будет корову доить.
Ну, если корова захочет.
🔥5🥱2
Forwarded from Стихи и книги Дмитрия Мельникова (Dmitry Melnikoff)
И такой Прилепин, прихрамывая, заходит в сарай. Погромыхивая полупустым ведром.
А там сидят два боевых петуха.
У меня были такие, там одни мышцы, тугая резина, дрались, как машины, боли не боялись вообще. Ничего не боялись, у меня два шрама остались от шпор на руках, пока я им головы скручивал.
Я их потом варил часа три, бесполезно, отдали алабаю.
Тот, понятно, схрумкал за здорово живешь. Ему все равно, он и оглоблю съест, если проголодается.
И тут такой впзр - здрасьти, можно я вам зерна насыплю.
Не, лучше в больнице сиди.
А там сидят два боевых петуха.
У меня были такие, там одни мышцы, тугая резина, дрались, как машины, боли не боялись вообще. Ничего не боялись, у меня два шрама остались от шпор на руках, пока я им головы скручивал.
Я их потом варил часа три, бесполезно, отдали алабаю.
Тот, понятно, схрумкал за здорово живешь. Ему все равно, он и оглоблю съест, если проголодается.
И тут такой впзр - здрасьти, можно я вам зерна насыплю.
Не, лучше в больнице сиди.
👏5🔥1
Чорт, 20 лет прошло, как я реально писал на плюсах.
И все равно, пишу
Рефлексы, наработанные в юности - сила.
И все равно, пишу
while i<len(array): и сразу пишу i++. Не думая вообще.Рефлексы, наработанные в юности - сила.
👍3
Forwarded from ИА "Стекломой"
Media is too big
VIEW IN TELEGRAM
Военные атташе Великобритании и США капитан Адриан Когхилл и генерал Аарон Дрейк возлагают цветы к воинским мемориалам в Мурманске, 24 ноября 2023 года.
Учитывая текущую геополитическую повестку, зрелище фантасмагорическое.
Учитывая текущую геополитическую повестку, зрелище фантасмагорическое.
❤7👍1
Поклон воина - воинам невозможно подделать. Парни все делают всерьез и по настоящему, как бы они нас не ненавидели.
И вот эта черта отделяет воина от животного. Эти - противник. А на Украине - животные. Почувствуйте разницу.
И вот эта черта отделяет воина от животного. Эти - противник. А на Украине - животные. Почувствуйте разницу.
👍11🤡2👎1
Forwarded from Про рекрутинг в IT • JFo
И пока вы там ломаете голову над бюджетом следующего года, нам отвечают на вопрос о зарплатных ожиданиях в Москве системные инженеры Linux.
P.S. это не ретроградный меркурий, это человек с глубоким опытом из приличной компании (не топ-менеджер).
P.S. это не ретроградный меркурий, это человек с глубоким опытом из приличной компании (не топ-менеджер).
Пока ты, %username% пихал все в контейнеры докера, лишь бы не думать, инженеры изучали Линукс. ⬆️
Открытка многим :)
Открытка многим :)
😁8
Олды всплакнут от умиления.
Как причудливо меняется природа! В святые 90е, быть принятым с этим ментами, гарантировало воспитательный удар гуманизатором по почкам, изъятие и 15 суток.
Сейчас - свободно продается в магазинах фейерверков, в рекламе которых я это и увидел.
Купил на озоне, пусковая еще едет, буду юность вспоминать скоро. :)
Как причудливо меняется природа! В святые 90е, быть принятым с этим ментами, гарантировало воспитательный удар гуманизатором по почкам, изъятие и 15 суток.
Сейчас - свободно продается в магазинах фейерверков, в рекламе которых я это и увидел.
Купил на озоне, пусковая еще едет, буду юность вспоминать скоро. :)
🔥4😁2
Утро понедельника, самое время задвинуть речь о программировании. :)
PySimpleGUI делает из питона полноценную графическую оболочку, но есть один минус.
Пока работает программа, открыто и окно терминала, потому что 🐍 - всего лишь скрипт.
Это, в принципе, не сильно мешает, но можно решить по красоте.
Первое: использовать nohup при запуске программы, после чего руками закрыть терминал. Пример sh:
Тепло, но еще теплее убить терминал на старте автоматически. Уже в питоновском коде делаем так:
Эта строка берет id родительского процесса и посылает ему сигнал убиться об стену.
И питон превращается в обычную графическую программу, без лишних окошек.
PySimpleGUI делает из питона полноценную графическую оболочку, но есть один минус.
Пока работает программа, открыто и окно терминала, потому что 🐍 - всего лишь скрипт.
Это, в принципе, не сильно мешает, но можно решить по красоте.
Первое: использовать nohup при запуске программы, после чего руками закрыть терминал. Пример sh:
#!/usr/bin/env bash
cd /home/PycharmProjects/gui_program
nohup ./main.pyТепло, но еще теплее убить терминал на старте автоматически. Уже в питоновском коде делаем так:
from os import getppid, kill
from signal import SIGKILLif name == 'main':
kill(getppid(), SIGKILL)Эта строка берет id родительского процесса и посылает ему сигнал убиться об стену.
И питон превращается в обычную графическую программу, без лишних окошек.
👍7
Забавная тонкость при работе с aiohttp.
Понадобился мне валидатор ссылок. Боту дают URL, надо понять, открывается ли вообще эта ссылка, по ссылке HTML или нет и.т.д.
Как и любая работа с http запросом, начинается все с
Перехват исключений, в том числе
Срабатывает ли он, если сервер не отвечает? Три раза ха-ха.
У asyncio свое исключение таймаута, и без переопределения OSError работать не будет.
А вот с импортом кошерного таймаута - тот же код будет работать корректно.
Причем, просто общего импорта
Недостаточно. Он не переопределяет исключения. 😁
Это касается всех библиотек, построенных на asyncio.event_loop, имейте в виду и ничему не удивляйтесь.
Понадобился мне валидатор ссылок. Боту дают URL, надо понять, открывается ли вообще эта ссылка, по ссылке HTML или нет и.т.д.
Как и любая работа с http запросом, начинается все с
try:
<код>Перехват исключений, в том числе
except TimeoutError:Срабатывает ли он, если сервер не отвечает? Три раза ха-ха.
У asyncio свое исключение таймаута, и без переопределения OSError работать не будет.
from asyncio import TimeoutErrorА вот с импортом кошерного таймаута - тот же код будет работать корректно.
Причем, просто общего импорта
import asyncio Недостаточно. Он не переопределяет исключения. 😁
Это касается всех библиотек, построенных на asyncio.event_loop, имейте в виду и ничему не удивляйтесь.
👍3😁1