• Может ли провайдер замедлять IP?

    @AlexVWill
    Может ли провайдер замедлять IP?

    Может...
    Правда не сам IP (это какая то бессмыслица), а значительно лимитировать пропуск пакетов до определенного IP - вполне.

    как решить

    Менять IP на хостинге, и поднимать какой то недетектируемый протокол VPN, похожий на HTTPS (ocserv к примеру).
    Ответ написан
    3 комментария
  • За что платит провайдер?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    1) Зарплаты персонала, в том числе, администрации
    2) Аренда / покупка в собственность площадей под оборудование (проложил кабель в кабельной канализации или по столбам - плати за это городу)
    3) Закупка и ремонт оборудования, ремонт и расширение кабельной сети
    4) Трафик вышестоящего провайдера
    5) Налоги
    Ответ написан
    5 комментариев
  • Как сделать, чтобы первый массив добавлял значения второго в цикле for?

    WolfInChains
    @WolfInChains
    Если я правильно понял
    var1 = []
    var2 = ["1", "v", "6", "5"]
    
    for element in var2:
        var1.append(element)
    
    print(var1)
    Ответ написан
    Комментировать
  • При нажатии на checkbox ожидать нажатие другого или отправить запрос. Как можно это организовать?

    <template>
      <label>
        <input
          type="checkbox"
          @change="debouncedCheckboxChange"
          v-model="form.c1"
        />
        Check 1
      </label>
      <label>
        <input
          type="checkbox"
          @change="debouncedCheckboxChange"
          v-model="form.c2"
        />
        Check 2
      </label>
      <pre>{{ form }}</pre>
    </template>
    
    <script>
    const debounce = (handle, duration = 0) => {
      let timeout = null;
    
      return function (...args) {
        clearTimeout(timeout);
        timeout = setTimeout(() => handle.apply(this, args), duration);
      };
    };
    
    export default {
      name: 'App',
      data() {
        return {
          form: {}
        };
      },
      methods: {
        checkboxChange() {
          this.form.date = Date.now();
        }
      },
      created() {
        this.debouncedCheckboxChange = debounce(this.checkboxChange, 1500);
      }
    };
    </script>

    Пример. Документация.
    Ответ написан
    2 комментария
  • Какими тремя способами можно получить из коллекции объекты?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    forEach(), iterator(), stream/parallelStream()
    Ответ написан
    Комментировать
  • Запросы многим ко многим с главной таблицы как правильно организовать?

    @nozzy
    Symfony, Laravel, SQL
    select
    t1.*,
    t2.*,
    t3.*
    from mainTable t1
    inner join mainTable_table1 t2 on t2.id_mainTable = t1.id_mainTable 
    inner join table1 t3 on t3.id_table1 = t2.id_table1
    Ответ написан
    Комментировать
  • Какие есть способы заблокировать рекламу на локальной сети?

    Slayer_nn
    @Slayer_nn
    Гугол, памаги!
    Adguard dns в роутере
    Еще можно через hosts если роутер поддерживает

    Или windscribe vpn - только он из коробки пашет и правила создавать не дает + платный (2$ месяц)

    А лучше роцтер на линуксе и с помощью него все настраивать

    Если смартфон и твбокс на андроиде > достаточно поставить с трешбокса adguard premium.
    Там есть фишки по блокировке рекламы в приложениях
    Если смартфон на иос то даже еще легче

    Зы: в телике тож можно прописать adguard dns

    Или поставить рут на твбокс

    Вариантов дофига

    Написали бы что за твбокс и смартфон
    Ответ написан
    1 комментарий
  • Что означает void функции в скобках с++?

    @sddvxd
    Явное указание того, что функция не имеет аргументов
    Ответ написан
    Комментировать
  • Как понять: массив указателей на объекты классов?

    @Mercury13
    Программист на «си с крестами» и не только
    Вы тут просто не знаете, что такое указатель. А это, грубо говоря, адрес другого объекта в памяти.
    Операция new заводит объект в «куче», вызывает конструктор (если таковой есть) и возвращает указатель на него.
    И мы можем разыменовать указатель: пройти на тот объект, куда он указывает, и сделать с ним что-то. В Си разыменование — операция ->.

    Указатели не на абстрактный класс, а на вполне конкретный, a.

    a(int) — не конструктор копирования, а просто конструктор, делающий объект из int’а. Конструктор копирования всегда a(const a&). Отличается от других конструкторов тем, что автоматика его по возможности строит, но не всегда верно. В вашем объекте с одним полем int вполне себе построит без всяких проблем.

    Обычный указатель Си никоим образом не знает, есть объект или нет, и кто этот объект уничтожает. У вас это приводит к ошибке «утечка памяти»: теряется указатель на объект, и уже никак его не освободишь. Из-за небольшого размера и линейного характера программы неопасно, но всё-таки.
    Ответ написан
    Комментировать
  • Какие есть способы перевода с одного типа данных в другой?

    @Mercury13
    Программист на «си с крестами» и не только
    1. С использованием функций преобразования типа, встроенных в Си++ или написанных пользователем. Это может делаться неявно, через C-style cast, через вызов конструктора, через операцию static_cast.
    2. С преобразованием указателя вниз по иерархии наследования, и особым поведением, если это не получилось, через операцию dynamic_cast и функцию dynamic_pointer_cast.
    3. С рассмотрением участка памяти как переменной несовместимого типа. Через union, const_cast, reinterpret_cast, C-style cast указателей.
    Ответ написан
    Комментировать
  • В чём разница между windows 10 iot от обычной для пк?

    @LiS-31
    Фактически разница в основном в лицензировании. IoT рассчитана на установку во встраиваемые решения и различные промышленные ПК (Платежные терминалы, кассы, инфоматы и прочее), и политика распространения схожа с OEM-лицензиями "Покупаешь больше - платишь меньше, но кроме этой железки нигде использовать не можешь".
    В розничной продаже IoT не попадается, закупка только через представительства MS, с индивидуальными условиями и лицензиями.
    Вообще IoT это то, что раньше называлось Embedded или POS-Ready, и конфигурация ОС определяется при закупке и не требует активации каждой копии индивидуально.
    Ответ написан
    Комментировать
  • Как в QTableWidget подгрузить картинки из интернета, а не из папки?

    sanya84
    @sanya84
    Фанатик Python 3
    Только я не нашёл как установить размер ячейки под изображение
    from io import BytesIO
    import requests 
    from PyQt5.QtWidgets import (QApplication, QMainWindow, QGridLayout,
                                 QWidget, QTableWidget, QTableWidgetItem)
    from PyQt5.QtGui import QPixmap, QIcon
    from PyQt5.QtCore import QSize, Qt, QThread, pyqtSignal, pyqtSlot
    
    
    class UploadImage(QThread):
        data = pyqtSignal(bytes)
        def __init__(self):
            super().__init__()
        @pyqtSlot()
        def run(self):
    
            headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2)\
            AppleWebKit/537.36 (KHTML, like Gecko)\
            Chrome/63.0.3239.84 Safari/537.36',
            'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'}
    
            url = "https://cdn.programiz.com/sites/tutorial2program/files/hello-world.jpg"
    
            try:
                content = requests.get(url, headers=headers).content
                self.data.emit(content)
            except requests.exceptions.ConnectionError as error:
                print(error)
    
    
    class MainWindow(QMainWindow):
        # Переопределяем конструктор класса
        def __init__(self):
            # Обязательно нужно вызвать метод супер класса
            super().__init__()
    
            self.pixmap = QPixmap()
    
            self.setMinimumSize(QSize(800, 300))             # Устанавливаем размеры
            self.setWindowTitle("Загрузка изображения из интернета")# Устанавливаем заголовок окна
    
            central_widget = QWidget(self)                  # Создаём центральный виджет
            self.setCentralWidget(central_widget)           # Устанавливаем центральный виджет
     
            grid_layout = QGridLayout()             # Создаём QGridLayout
            central_widget.setLayout(grid_layout)   # Устанавливаем данное размещение в центральный виджет
     
            self.table = QTableWidget(self)  # Создаём таблицу
    
            self.table.setColumnCount(1)     
            self.table.setRowCount(1)        # и одну строку в таблице
     
            # Устанавливаем заголовки таблицы
            self.table.setHorizontalHeaderLabels(["Изображение"])
     
            # Устанавливаем всплывающие подсказки на заголовки
            self.table.horizontalHeaderItem(0)
            self.table.horizontalHeaderItem(0).setToolTip("Шутка")
    
            # Устанавливаем выравнивание на заголовки
            self.table.horizontalHeaderItem(0).setTextAlignment(Qt.AlignLeft)
    
            # делаем ресайз колонок по содержимому
            self.table.resizeColumnsToContents()
            grid_layout.addWidget(self.table, 0, 0)   # Добавляем таблицу в сетку
    
            self.upload_image = UploadImage()
            self.upload_image.start()
            self.upload_image.data.connect(self.show_image)
    
        def show_image(self, image_bytes):
            self.bytes_io = BytesIO(image_bytes)
            self.pixmap.loadFromData(self.bytes_io.getvalue())
            
            image = QTableWidgetItem()
            image.setData(Qt.DecorationRole, self.pixmap)
            image.setFlags(image.flags() ^ Qt.ItemIsEditable)
            
            self.table.setItem(0, 0, image)
            self.table.resizeColumnsToContents()
            
    if __name__ == "__main__":
        import sys
     
        app = QApplication(sys.argv)
        mw = MainWindow()
        mw.show()
        sys.exit(app.exec())
    Ответ написан
    Комментировать
  • Можете помочь подсказать действие кода?

    @kvalood
    success : function(resp)
    функция, вызываемая в случае успешного завершения AJAX запроса. Принимает присланные данные от сервера (resp).
    Ответ написан
    Комментировать