• Может ли DPI влиять на работу сетевых приложений?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Похоже, вчера вообще было массовое применение каких-то новых правил блокировки, потому что именно вчера лег bitbucket. И он посейчас работает клочками - где-то есть все, где-то нет ничего, где-то есть только ssh.

    То, что начали давить openvpn - это меня нисколько не удивляет. Количество статей на тему "VPN за пять минут для домохозяек", скриптов развертывания и разных куберов-докеров-шмокеров достигло некоего порога, за которым его заметило государство. Заметило и тут же отвесило щелбана.

    (это к вопросу воланий всех тех, кто до сих пор витает в ИТ-сфере, что "технология Х, обернутая в технологию Y, и обутая в технологию Z абсолютно неподконтрольна государству". Расслабьтесь, пока ваши Х/Y/Z на уровне статистической погрешности - вы никому не интересны. Как только они хотя бы в теории начнут угрожать государству - тут же найдут за что взять)

    Wireguard приготовиться...
    Ответ написан
    1 комментарий
  • С чего начать практику администрирования без скучных книг?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Хотелось бы получить советы от человека который работает в данное время админом и знает о чем говорит.

    Ну вот тебе совет от человека, который с UNIX-системами работает с 1995 года :) (SCO UNIX, BSD OS, FreeBSD 2.2.5...). Сейчас я правда формально не админ, а кибербезопасник, но линухами стал заниматься ... больше :)

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

    Какую бы задачку решить? Ну вот вариант задачки от Drno - возьми VPS, настрой к нему туннель и сделай возможность заходить на сайты, которые блокируют доступ по российским IP, причем на те, у которых "расширенная" проверка - ibm.com, latticesemi.com (это неполный список, но если что я накидаю - у меня на работе он есть). Это в основном производители электронных компонентов.
    Ответ написан
  • Что делать если при загрузке linux(2023.2a) с флешки я вижу GNU GRUB?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Обычно по поводу Kali совет дают один - вернись к майнкрафту :)

    Человек, который ставит Kali - не должен задавать такие вопросы.
    Человек, который задает такие вопросы - не должен ставить Kali. Если руки чешутся поставить линух - возьми астру какую-нибудь или simply linux.
    Ответ написан
    7 комментариев
  • Можно ли использовать postman для теста rest-api на localhost?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Если вы разрешение спрашиваете, то благословляю. Если вопрос о технической возможности, то ответ "да, можно".
    Ответ написан
    Комментировать
  • Как настроить iptables так, что бы в локальную сеть был доступ через wireguard?

    @AiR_WiZArD Автор вопроса
    Решил следующими коммандами:
    sudo iptables -A FORWARD -i wg0 -o virbr0 -p tcp --syn --dport 80 -m conntrack --ctstate NEW -j ACCEPT
    sudo iptables -A FORWARD -i wg0 -o virbr0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -A FORWARD -i virbr0 -o wg0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.2.252


    В wireguard вписал:
    PostUp = iptables -A FORWARD -i wg0 -o virbr0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o virbr0 -j MASQUERADE;
    PostDown = iptables -D FORWARD -i wg0 -o virbr0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o virbr0 -j MASQUERADE;
    Ответ написан
    Комментировать
  • От чего компьютер решил просыпаться?

    Varikorek
    @Varikorek
    Python разработчик ботов, и Java Mobile Dev.
    выспался))
    Ответ написан
    Комментировать
  • Какие 3d редакторы сейчас актуальны в геймдеве?

    Ratislavka
    @Ratislavka
    В геймдеве в основном используется Maya - для hard surface (стены здания, радио и тд) ZBrush для создания моделей персонажей и монстров. Substance Painter для текстурирования моделей. 3DCoat используют в основном для ретопологии. Разницы что использовать особой нету. Я имею ввиду что основы в 3ds maya blender cinema одинаковы, научешься работать в одном будет не сложно пересесть на другой.
    Ответ написан
    Комментировать
  • Можно ли рендерить CPU+GPU в Cinema 4D? и чем лучше?

    В чистой Cinema таких приколов нет.

    Есть сторонний рендер - V-ray. В основном используется на 3D Max, но так же есть и на Cinema. В настройках рендера можно выставить режим V-ray RT, который предполагает рендер CPU+GPU. Редко этот режим очень плохо работает и глючит... А чаще всего вообще не работает :D

    Использование, для рендера, CPU + GPU не рационально. Прирост от производительности CPU небольшой. К тому же, всё ухудшает программная сложность связки CPU и GPU, из за которой прирост к производительности ещё меньше (короче, реализация хромает).

    Лучше всего рендерить на GPU. В стандартной cinema, начиная с версии R19, есть Pro Render, который работает на GPU. Нооо, точно скажу, что в версиях R19 и R20 он очень сырой. Работать практически невозможно. (Про последующие версии не знаю).

    Остались только сторонние рендеры на GPU. Из самых популярных есть только два - Octane и Redshift. (Тема бесконечных срачей). Если кратко:
    Octan работает только с видеокартами NVidia. Можно очень быстро создавать реалистичные сцены. Но, что то вне реализма (к примеру low poly композиция) будет создать проблематично.Проще, чем Redshift.
    Redshift работает на всех видкокартах. Более гибкая настройка, чем у Octan. Может как в реализм, так и во что то другое. Сложнее освоиться, чем в Octan.

    В целом всё. Если есть конкретные вопросы - задавай.
    Ответ написан
    1 комментарий
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если нужно в динамике - одновременно выводить на консоль, писать в файл и тут же сразу построчно анализировать поступающую информацию, то тут чуть сложнее, хоть и не немного, вот небольшой пример:
    работа через файл
    #!/usr/bin/env bash
    
    # функции бот1 и бот2 которые постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
    bot1(){
    	while true; do
    		echo "Bot1: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    bot2(){
    	while true; do
    		echo "Bot2: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    # путь к лог-файлу куда будем писать логи от ботов
    LOG=/tmp/botsLog.txt
    
    # удаляем лог-файл (если ненужно то закоментирвоать)
    rm -rf $LOG
    
    # запускаем ботов в фоновом(&) режиме, 
    # а также начинаем выводит поступающую от них информацию на консоль и писать в общий лог-файл
    bot1 | tee -a $LOG &
    sleep 1
    bot2 | tee -a $LOG &
    
    # функция анализа лог-файла (потока)
    analysisLogs() {
    	# запускаем постоянное построчное чтение поступающих данных в функцию
    	while read -r data; do
    		# здесь мы задаём фильтры и то что выполнить если совпадёт условие
    		case "$data" in
    			"Bot1: 0" ) echo "Бот 1 выдал ноль"
    				;;
    			"Bot2: 0" ) echo "Бот 2 выдал ноль"
    				;;
    		esac
    	done
    }
    
    # tail выводит поступающие данные по мере роста лог-файла (мониторит)
    # в данном случае мы передаём появляющиеся данные из файла в функцию analysisLogs
    tail -f $LOG | analysisLogs 
    
    # это необходимо чтобы главная программа преждевременно не завершилась 
    # пока не завершаться запущенные в ней фоновые(&) потоки
    wait
    
    exit

    с комментариями думаю будет понятней
    ctrl+c завершить скрипт

    можно конечно и через переменную сделать но это будет не так красиво да и не по феншую, кстати здесь мы пишем в ОЗУ так как /tmp у большинства дистрибутивов примонтирован в оперативной памяти.

    Если же не хочется вообще писать данные на диск или в озу, так как логи обычно склонны к накоплению если их не чистить да или просто ненужны, то можно просто использовать именованный канал(FIFO-файлы) с которым можно работать как с файлом(читать/писать) но при этом он будет выступать просто в роли промежуточного буфера, для этого в нашей программе нужно поменять всего две строчки(создать именованный канал и вместо tail использовать обычный cat )
    работа через fifo-файл
    #!/usr/bin/env bash
    
    # бот1 и бот2 просто постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
    bot1(){
    	while true; do
    		echo "Bot1: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    bot2(){
    	while true; do
    		echo "Bot2: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    # путь к лог-файлу куда будем писать логи от ботов
    LOG=/tmp/botsLog.txt
    
    # удаляем лог-файл
    rm -rf $LOG
    
    # создаём именованный канал (FIFO-файл)
    mkfifo $LOG
    
    # запускаем ботов в фоновом(&) режиме, 
    # а также начинаем выводит поступающую от них информацию на консоль и писать в общий fifo-файл
    bot1 | tee -a $LOG &
    sleep 1
    bot2 | tee -a $LOG &
    
    # функция анализа поступающих данных
    analysisLogs() {
    	# запускаем постоянное построчное чтение поступающих данных в функцию
    	while read -r data; do
    		# здесь мы задаём фильтры и то что выполнить если сработает условие
    		case "$data" in
    			"Bot1: 0" ) echo "Бот 1 выдал ноль"
    				;;
    			"Bot2: 0" ) echo "Бот 2 выдал ноль"
    				;;
    		esac
    	done
    }
    
    # читаем файл(FIFO-файл) и передаём появляющиеся данные в функцию analysisLogs
    cat $LOG | analysisLogs 
    
    # это необходимо чтобы главная программа преждевременно не завершилась 
    # пока не завершаться запущенные в ней фоновые(&) потоки
    wait
    
    exit
    Ответ написан
    1 комментарий
  • Как сделать выдачу роли на сервере при написании боту в лс?

    Alexandre888
    @Alexandre888 Куратор тега Discord
    Javascript-разработчик
    проверить, сообщение было отправлено в текстовый канал или в ЛС боту:
    message.channel.type === "dm";

    выдать роль:
    let role = client.guilds.cache.get("id_сервера")
        .roles.cache.find /* или .get() */ (// условие //)
      
      client.guilds.cache.get("id_сервера")
        .members.cache.get(message.author.id)
        .roles.add(role)
    Ответ написан
  • Как сделать отправку сообщения бота в один текстовый канал?

    Alexandre888
    @Alexandre888 Куратор тега Боты
    Javascript-разработчик
    Ответ написан
    Комментировать
  • Как сделать боту комманду включения музыки по ссылки с ютуба на голосовом канале?

    h0w4rd
    @h0w4rd
    Python dev.
    Я даже не стал вникать в суть, просто посмотрел на код 30 секунд. Рекомендую почитать комментарии и последовать советам. И пожелаю удачи.
    import discord
    from discord.ext import commands
    # У меня зрение -3,5, но использования этого я не увидел.
    from pytube import YouTube
    
    bot = commands.Bot(command_prefix="!")
    # Все что, не закрыто иксами - можно узнать. А, что закрыто - секретно и ДОЛЖНО быть скрыто. А лучше вообще токен не показывать)
    TOKEN = "Njc1MzUwNTkzOTIwODI3Mzk0.xxxxx.xxxxx-xxxxx"
    yt_url = 'https://www.youtube.com/results?'
    game = discord.Game("Krunker.io")
    
    @bot.event # загрузка
    async def on_ready():
        print("Bot was launched!")
        await bot.change_presence(activity=game)
    
    @bot.command(pass_context=True)
    async def music(ctx, channel):
        url = ctx.message.content # вернет что-то вроде "!music youtube.com/watch"
        url = url.strip('https://www.youtube.com/watch?v=naIKplXzxTY') # почитайте что делает strip()
    
        vc = await bot.connect() # "бот, подключись!", а куда не сказано.
        vc.play(discord.FFmpegPCMAudio(url)) # ссылка на HTML страницу... а нужно АУДИО поток, а не станица. библиотека не может догадаться, что от нее хотят.
        vc.is_playing() # почитайте про "if"
        vc.pause() # зачем останавливать поток
        vc.resume() # и включать ._.
        vc.stop() # а после останавливать
    
    bot.run(TOKEN)
    Ответ написан
    Комментировать