Задать вопрос
  • Как передать переменную в JSON.stringify()?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Если я правильно понял, то
    JSON.stringify({[element]: true})
    Ответ написан
    4 комментария
  • Создание классов в цикле?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Подобную ерунду можно делать с помощью eval(), но гораздо лучше разобраться с задачей и решить её нормальным способом.

    В качестве попытки угадать задачу, могу предложить функцию class_alias.
    Ответ написан
    8 комментариев
  • Где можно скачать точные IP диапазоны?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Вот самый точный алгоритм:
    1) берем список ASN по стране отсюда https://bgp.he.net/country/RU
    2) для каждой ASN делаем whois -h whois.ripe.net -- -T route ASN -i origin
    Ответ написан
    4 комментария
  • Как подобрать драйвер для RAID Controller для старого сервера с новой ОС?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Поставьте Proxmox, а внутри любую ОС на ваш выбор.
    Ответ написан
    Комментировать
  • Где найти просмотрщик фото без рамок и меню?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    IrfanView - просто лучший. Есть все что нужно, а чего не нужно - нету (т.е. это не комбайн, а просто приложение для просмотра фоток без лишнего мусора). Работает - быстрее не бывает. В настройках легко настраивается режим просмотра по клику по картинке - есть опция просмотра в полный экран.
    Ответ написан
    3 комментария
  • Как именно передаються данные по интернету? Более детальное объяснение нужно. Каков весь путь от моего устройства к другому?

    mayton2019
    @mayton2019
    Bigdata Engineer
    1) Отправляю https запрос (GET) сайту
    2) Это сообщение сначала с помощью волн ( 2,4 ГГц ) передаётся моему роутеру. С помощью сетевой карты? Или сокета? Или с помощью чего передаются данные? | Это, насколько я понимаю, у нас канальный уровень (в OSI это и физический и канальный)

    Ты молодец, что ты решил так детально изучать физику процессов. Но по моему слишком глубоко копнул. WIFI тоже имеет свои протоколы связи и ты еще с пол-года на них застрянешь. Вообще науки лучше изучать в "ширину" а не в глубину. Остановись на каком-то уровне.

    А то дойдешь до физики суб-атомного уровня а там еще конь не валялся...
    Ответ написан
    9 комментариев
  • Как разрешить доступ клиенту на OpenVPN server на Windows?

    @Drno
    включить NAT
    но лучше поднять это на линукс серваке
    Ответ написан
    2 комментария
  • Имеет ли смысл писать на Хабр статьи с рецензиями прочитанных книг?

    neuotq
    @neuotq
    Прокрастинация
    Советую попробовать в любом случае. Особенно если затрагивать контекст АйТи и разработчиков, в том смысле что зачем им подобное и почему стоит обратить внимание. Ведь мы все тоже люди. Ну, а если что можно всё это приправить соусом развития софт скиллов, чтобы душнилам критикам нерелевантного контента проприглушать рот ;-)
    Ответ написан
    Комментировать
  • Что эффективнее использовать: SELECT COUNT или rowsCount() (PDO)?

    toxa82
    @toxa82
    Это разные вещи, поведение PDOStatement::rowCount() для операторов, создающих наборы результатов, таких как SELECT, поведение не определено и может быть различным для каждого драйвера.
    Ответ написан
    Комментировать
  • Почему запускается деструктор в данном примере?

    @vanyamba-electronics
    Просто у вас ошибка в этой строке
    MyString MyString::Copy(const char *string) { }
    Вы возвращаете копию объекта. Он нигде не используется:
    MyString::MyString(const char *string)
    {
      Copy(string); // Вот здесь
    }

    И для этой копии вызывается деструктор.

    А должно быть так:
    MyString& MyString::Copy(const char *string) { }
    В этом случае метод вернёт ссылку на объект.

    Но тогда вам следует объявить этот метод как статичный и назвать его не "копировать", а "создать":
    class MyString {
       MyString(const char* string);
       static MyString* Create(const char *string);
    };
    
    MyString::MyString(const char *string)
    {
      m_length = StrLen(string);
      m_string = new char[m_length + 1];
    
      if (m_string != nullptr) {
         for (size_t i = 0; i < m_length; ++i)
           m_string[i] = string[i];
    
           m_string[m_length] = '\0';
       }
    }
       
    MyString* MyString::Create(const char *string)
    {
      return new MyString(string);
    }

    Обратите внимание - мой метод возвращает указатель. Это такое правило - никогда не возвращайте по ссылке объект, который создаётся внутри функции. Иначе потом будете рефакторить весь код.

    В C++ нет стандартного соглашения, как должен поступить компилятор с объектом, возвращённым из функции по ссылке. Одни компиляторы такие объекты просто тихо удаляют, другие - нет.
    И вот, у вас объект в памяти есть, вы его не удаляли, и он даже доступен. Всё работает.
    Но потом вы создаёте какой-то новый объект, и у вас крашится программе при попытке доступа к прошлому объекту.
    Что такое? Почему компилятор сгенерил код, который затирает память? Куда подевался объект в том месте программы, в котором раньше всё работало?
    Просто физически нереально отыскать место возникновения ошибки через неделю, за которую вы написали ещё 30 тысяч строк кода.
    Поэтому всегда возвращайте объект из функции только по указателю.
    Ответ написан
    Комментировать
  • Как работать с файлом SQL объемом 20 ГБ?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Маленькое уточнение к предыдущим ораторам, ответы которых дают целый спектр годных решений.

    Вполне возможно что таблица которая вам нужна (пользователи?) не занимает много места и, на самом деле, является лишь малой частью файла, а остальное ненужные данные. Стоит проверить данный тезис и далее выделить в отдельный файл скрипт загрузки только этой таблицы. Как работать с этим куском уже дело вкуса - искать как в файле или импортировать в бд. ИМХО бд в этом плане удобнее и практичнее.
    Ответ написан
    Комментировать
  • Сохранится ли лицензия Windows, если установить Linux Ubuntu?

    @Pavstyuk
    Запустите LiveUSB и станет понятно работает датчик отпечатка пальца или нет. Обычно перед покупкой ноутбука нужно все протестировать таким образом, а потом спокойно покупать ноутбук без ОС.
    Ответ написан
    2 комментария
  • Болят глаза через 5-10 минут, что можно сделать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Сходи к врачу. Боль в глазах может быть связана с внутричерепным давлением. У меня после Covid было такое что я видел вспышки в левом глазу. Все это - последствия чего-то там.

    Вобщем глаза - твоё здоровье и не слушай советы дилетантов по поводу монториов или шрифтов. У тебя - медицинская проблема и ее надо решать с медициной.
    Ответ написан
  • Вопрос по ассемблеру во встраиваемых микропроцессорах и одной истории про это. Как пытался осуществить парень такую штуку?

    какой именно ассемблер мог использовать тот парень

    Очевидно тот, который используется в микропроцессоре конкретного его кардиостимулятора.
    Не от x86-64 же.

    И как он мог удалённо получить доступ к микропроцессору кардиостимулятора, чтобы перепрошить?

    У кардиостимуляторов есть интерфейс для питания и настройки. Вероятно - через этот же интерфейс он нашёл способ перепрошивки.

    И что именно он вообще пытался сделать с этим микропроцессором кардиостимулятора?

    Не читал рассказ этот, но тут два варианта:
    1. Добавить ещё одно устройство рядом с ним, которое бы меняло параметры работы кардиостимулятора
    2. Изменить программу в самом кардиостимуляторе
    Зачем? Чтобы например при физических нагрузках, когда нужен более высокий пульс, кардиостимулятор поддерживал этот повышенный пульс.

    PS: ну и рассказ может быть абсолютно вымышленным (тк нет никаких технических деталей), так что я бы особо за него не цеплялся.

    Вообще в реальной жизни я бы не пытался это провернуть, тк идея абсолютно суицидальная.
    Ответ написан
    Комментировать
  • Аналог unset в ООП?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Вы неверно поняли.
    Unset - удаляет переменную
    __destruct выполняется когда все ссылки на переменную освобождены
    <?php
    
    class User {
    
    public $name = "Bankai", $age = 40;
    
    function show(){
    echo "$this->name:$this->age <br>\n";
    }
    
    function __destruct(){
    echo "Деструктор \n";
    }
    };
    
    $obj = new User();
    $obj->show();
    
    $obj2 = $obj;
    unset($obj2);
    var_dump("__destruct not calling");
    unset($obj);
    var_dump("__destruct called");

    Результат:
    Bankai:40 <br>
    string(22) "__destruct not calling"
    Деструктор 
    string(21) "__destruct called"


    Освобождение ссылок на переменную не означает вызов деструктора так как ссылка объект может быть еще в других переменных.

    Деструктор невозможно переписать в процедурном стиле, это чисто объектное поведение.
    Ответ написан
    6 комментариев
  • Насколько полезно писать велосипеды?

    xez
    @xez
    TL Junior Roo
    Думается, что при написании велосипедов и использовании только нативных возможностей языка и браузера, при конструировании приложения лично сталкиваешься с проблемами, эффективным решением которых занимаются готовые библиотеки. И вот тогда суть улавливается.

    Хорошо сказано.
    Пишите в качестве пэт-проекта, демо или пруф-оф-консепт. В прод велосипеды тащить не надо.

    Есть ещё ненулевой шанс, что ваш велосипед окажется пригодным для серийного производства.
    Ответ написан
    Комментировать
  • Получится ли заменить цп на нетбуке?

    @tukreb
    1. Вы задаёте этот вопрос значит вы не разбираетесь и у вас нет денег.
    2. Замена впаяемого ЦПУ - дорогая процедура и это лотерея, а где не лотерея будет дороже, но где лотерея в итоге выйдет ГОРАЗДО дороже.
    3. Нетбук х101 - мусор и вам дороже обойдётся замена ЦПУ, чем покупка нормального быстрого ноутбука.
    Итог - скупой платит дважды, а лох всегда.
    Не будьте ни тем, ни этим, а просто купите нормальный ноутбук.
    Ответ написан
    6 комментариев
  • Какой лучший вариант для подключения накопителей?

    hint000
    @hint000
    у админа три руки
    m.2 - это только тип разъёма. Бывает интерфейс SATA с разъёмом m.2, бывает интерфейс NVME с разъёмом m.2.
    Для накопителей SATA m.2 можете купить переходник https://www.google.com/search?q=sata+m.2+переходник
    А вот подключать NVME через USB мало смысла, т.к. вся бешеная скорость NVME уйдёт коту под хвост. Да и сложно\дорого реализовывать такой переходник.

    который позволит подключать большинство видов накопителей (HDD и SSD)
    Как насчёт устаревшего интерфейса IDE, он представляет интерес? Где-то ещё остались живые компьютеры с такими HDD, хотя бы как винтаж. И есть вот такой девайс USB - SATA & IDE:
    https://www.google.com/search?q=agestar+fubcp&tbm=isch
    Ответ написан
    Комментировать
  • Доп. вопрос к ответу - Это будет 2 RAID1 по 4 диска или 4 RAID1 по 2 диска, которые дальше объединены в RAID0?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    raid10 это просто raid 0 из двух raid 1

    если 8 дисков, то ТЕОРЕТИЧЕСКИ может выйти из строя 4 диска, главное чтобы они были по разную сторону зеркала.

    Если нужна отказоустойчивость с бОльшим количеством - наод смотреть другие варианты рейда, например raid 6
    Ответ написан
    Комментировать
  • Как обмануть куки сайта?

    @humoured
    Вы всё на свете найдёте в коробке с карандашами
    Ответ вас расстроит, скорее всего, но если разработчик сайта намерен вставлять палки в колёса пользователям, то придётся страдать.
    Длительность сессии в десктопном браузере можно попробовать изменить вручную, подправив поле Expired at через инструменты разработчика. Но это может не сработать, если сессии строго удаляются на сервере по прошествии определённого времени.
    Обойти ограничение на количество авторизованных устройств можно попробовав скопировать сессию (идентификатор) с одного устройства на другое. Но может стоять проверка сессии по user-agent'у или даже по ip, которая её обнулит.

    Если решение этой задачи необходимо несмотря ни на что, то да: пишем расширение для браузера, которое авторизует автоматически, ставим браузер на виртуальную машину со статичным ip, подключаемся к ней через удалённый рабочий стол (в т.ч. со смартфона).
    Ответ написан
    Комментировать