• Как создать диалоговое окно с одной кнопкой на C++?

    0hquazEd
    @0hquazEd
    #include <Windows.h>
    
    int main(int argc, char** argv)
    {
    	MessageBox(0, TEXT("Some text"), TEXT("Some text"), MB_OK);
    	return 0;
    }
    Ответ написан
    1 комментарий
  • HDD, 500к файлов, затрещал, почему?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Купил винт на 6 Тб (WD Blue) и записал много файлов, около 500к

    Главный вопрос сейчас в том, насколько важны для вас эти файлы и есть ли у вас их копия.

    потом пошел треск с винта с периодичностью в 0.5 секунды

    По описанию сложновато представить однозначно, вот примеры издаваемых HDD звуков. Что-нибудь похоже на то, как трещит ваш жёсткий диск?

    Это заводской брак, или неправильное использование винта?

    Дальше нужно понимать что важнее - сохранить информацию на диске, или разобраться в проблеме?
    Если данные критически важны, то лучше вообще остановиться и не мучать диск ничем и никак.
    Если есть копия или возможность рискнуть, то начните с просмотра SMART, это можно сделать в Р.тестере: https://rlab.ru/tools/rtester.html

    Эта же программа покажет использует ли ваш диск SMR или нет.
    Затем, если будет видно, что диск не при смерти, можно подумать над тем, чтобы сделать тест чтения.

    Но по-хорошему, если будет видно, что диск скорее исправен, чем нет, начать лучше с копирования самых важных данных на другой носитель.
    Ответ написан
    Комментировать
  • Как вывести строку по id php ?id=1?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос хороший, но здесь мы упираемся в главную беду пхп - ВСЕ учебники в интернете, и особенно видео - показывают как писать адов говнокод из прошлого века.

    1. Получение значения из адресной строки

    Чтобы получить значение переменной, которую передали в строке запроса (это то что после знака вопроса), надо обратиться к переменной $_GET

    То есть в данном случае можно написать $id = $_GET['id']. Имя получаемой переменной ($id) может быть любым и не обязательно совпадать с переданным значением. А вот в индекс массива $_GET разумеется надо писать именно то имя, которое в адресной строке. То есть если site.com/?id=1 то в $_GET['id'] будет значение 1.

    2. Валидация данных

    Далее очень желательно проверить, что мы в переменной получили то что хотели, а так же что мы вообще хоть что-то получили.

    Сначала надо проверить наличие в массиве $_GET нужного ключа. В данном случае это можно сделать с помощью оператора isset() (хотя вообще она для проверки наличия ключей в массивах не рекомендуется)
    Если для показа информации используем отдельную, специальную страницу, которая только занимается показом данных по айди, то после проверки на существование надо выдать ошибку.

    Затем, поскольку id может быть только целым числом больше нуля, то лучше проверить и это тоже и тоже выдать ошибку.

    3. Соединение с БД.

    в "config.php" должно быть написано не то что там сейчас а вот это (со своими параметрами подключения разумеется)
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $link = mysqli_connect($host, $user, $pass, $db_name);
    $link->set_charset("utf8mb4");


    4. SQL

    Запрос, который нам нужен, выглядит так:
    SELECT * FROM `product` WHERE id=1

    5. Выполнение запроса в РНР

    Но разумеется вместо 1 надо подставить значение переменной.
    Это самое сложное. Но надо один раз выучить и потом везде применять

    Важно, чтобы данные в БД всегда попадали отдельно от самого запроса. Это непреложное правило, которое надо соблюдать всегда.
    Для этого надо
    1. Заменить все переменные в запросе на специальные маркеры, которые называются плейсхолдеры или параметры, а по сути - просто знаки вопроса
    2. Подготовить запрос к исполнению с помощью функции prepare(). Эта функция принимает строку запроса и возвращает экземпляр специального класса stmt, с которым в дальнейшем и производятся все манипуляции
    3. Привязать переменные к запросу.
    4. Выполнить подготовленный ранее запрос с помощью с помощью execute()
    5. Получить результат запроса через get_result()
    6. и дальше конкретную строку из БД с помощью уже знакомой fetch_assoc


    В коде это будет так
    $sql = "SELECT * FROM `product` WHERE id=?";
    $stmt = $link->prepare($sql);
    $stmt->bind_param("s", $id);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();


    bind_param() принимает в качестве параметров все переменные, которые должны попасть в запрос, в том же самом порядке, в котором стоят плейсхолдеры в запросе. Но кроме того, сначала в этой функции должны быть указаны типы для всех переменных, в виде строки, где тип переменной обозначается одной буквой. То есть букв в этой строке должно быть ровно столько, сколько дальше будет переменных. К счастью, можно особо не париться с типами и для всех переменных указывать тип "s".

    6. Вывод данных.

    Важно понимать, что в момент вывода данных никакой работы с БД уже быть не должно!
    Должны быть только переменные РНР с уже полученными данными.
    Ответ написан
    1 комментарий
  • Надо ли пересобирать ядро на VDS для повышения производительности?

    kotomyava
    @kotomyava
    Системный администратор
    Это совершенно излишне. Лучше потратить время на то, чтобы правильно распределить ресурсы.
    Ответ написан
    7 комментариев
  • Как сделать cron задание для android смартфона?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    cron задание для android смартфона

    Думаю, что потребуется рут (хотя сам crond должен работать с обычными правами) и busybox.

    Создайте папку для файла "root", в котором будут лежать задачи, например, /data/cron/. В ней создайте файл "root". Добавьте в него задание (запуск komanda в каждую 13-ю минуту часа):
    echo ' 
    13 * * * * komanda' >> /data/cron/root

    Запуск:
    su -
    crond -b -c /data/cron

    Crond должен появиться в сервисах. При редактировании задания нужно грохать сервис и перезапускать заново.

    Более подробная статья (про автозапуск и т.п.): https://habr.com/ru/post/468337/

    есть у меня php скрипт, который хотел бы выполнять со своего смартфона каждую минуту

    Но в любом случае, на мой взгляд, идея выглядит достаточно странно. Не знаю насколько получится совместить PHP и телефон - с этим уже разбираться вам.

    Если вам не нужны входящие подключения (только гет), то в разы проще и беспроблемнее будет купить самый дешёвый IPv6-only VPS с минимумом памяти. Он будет стоить несколько долларов в год (год!), а удобства и возможностей даст намного больше.
    Ответ написан
    Комментировать
  • Зачем в HTTPS нужен SSL-сертификат?

    SagePtr
    @SagePtr
    Еда - это святое
    Чтобы удостовериться, что свою долю ключа сгенерировал именно сервер, а не человек посередине, который для клиента может притвориться сервером, а для сервера - клиентом, и слушать между ними трафик.
    Ответ написан
    5 комментариев
  • Скачать компьютерную Флэш игру на свой сайт?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Flash умер официально два года назад. Adobe перестал его поддерживать.
    Пора проснуться, 2021 год уже, а не 1997-й
    Ответ написан
    Комментировать
  • Скачать компьютерную Флэш игру на свой сайт?

    @oleg_ods
    Поддержка флэш плеера официально выпилена из практически всех браузеров.
    Ответ написан
  • Реально ли стать программистом самообучаясь?

    Adamos
    @Adamos
    Есть ли такие люди, кто сам реально выучил язык программирования и работает не просто на себя, а в фирме, компании за зарплату и кодит так, как требуют, а не так , как он умеет?

    Не знаю ни одного человека, за которого это сделал бы кто-то другой.
    Учебник + время = выучил синтаксис.
    Учебник + время + практика = выучил язык.
    Учебник + время + практика + решение реальных задач = стал программистом.
    Вот для последнего слагаемого другие люди действительно очень полезны. До того - никакой необходимости в них нет.
    Ответ написан
    Комментировать
  • Реально ли стать программистом самообучаясь?

    DevMan
    @DevMan
    реально.
    но не только лишь всем.
    Ответ написан
    Комментировать
  • Можно ли заменить конденсатор один на другой с другими характеристиками?

    ProgrammerForever
    @ProgrammerForever
    Учитель, автоэлектрик, программист, музыкант
    Если это не частотозадающая цепь - то можно. И (почти всегда) чем больше - тем лучше. В данном случае (стоит на входе после диодного моста) разница незначительна и оно будет работать нормально - просто чуть увеличится нагрузка на входной термистор, если он есть.
    Ответ написан
    2 комментария
  • Как правильно построить mesh на mikrotik?

    точки связаны кабелем

    Mesh вам не нужен - Mesh обычно используется для связывания точек по воздуху и имеет множество недостатков.

    В данном случае можно использовать CAPsMAN для идентичной и централизованной конфигурации точек.
    Ответ написан
    1 комментарий
  • Купил Usb ethernet aдаптер но никак не устанавливаются драйвера?

    @Drno
    установить драйвера... с сайта производителя...
    модель в студию и версию винды
    Ответ написан
  • Почему сайт произвольно меняет ssl-сертификаты?

    kotomyava
    @kotomyava
    Системный администратор
    Сертификатов у сайта может быть больше одного. И все могут быть валидны. Они могут быть, например, развёрнуты на разных точках входа, там их 6 штук, только в разрезе ip адресов.... В общем, всё тут ок.

    "разве смысл сертификата не в том, чтобы быть одинаковым у всех?" Нет, смысл в возможности его проверки по цепочке доверия.

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

    Adamos
    @Adamos
    Unix-way: в исполняемом файле - только исполняемый код, он при запуске читается в память, после этого файл свободен и с ним можно делать все, что позволяет твой доступ.
    Windows-way: в исполняемом файле может быть навалено три короба ресурсов, вплоть до вырожденных случаев вроде самораспаковывающегося архива, когда код - это просто небольшая вставка в гигантский исполняемый файлище. Так что в память читается только код, но при этом предполагается, что он может подтягивать из файла ресурсы, когда они понадобятся. Поэтому файл блокируется на запись до тех пор, пока этот код не закончит выполнение.
    Ответ написан
    9 комментариев
  • Как взламывают бд крупных компаний?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Взламывают точно так же как и мелкие.
    В статье описана обычная SQL инъекция, когда данные подставляются прямо в SQL запрос.

    Я просто сомневаюсь, что valve может нанять таких людей в backend

    Не надо сомневаться.
    Нету никаких "особенных способов взлома".
    А есть такое явление как "эффективные менеджеры". У которых размер премии зависит от того, сколько денег они сэкономили акционерам.

    Если бы там были подготовленные выражения, то и взлома бы не было.
    Но вместо подготовленных выражений в больших компаниях есть эффективные менеджеры. Которые экономят на нормальных программистах, и заказывают разработку в Индии, в штате Бангалор. Где живет какой-нибудь Хамишь Кумар, который родился в касте вычерпывателей говна из сортиров. И вот у него только один шанс не черпать говно всю жизнь - всеми правдами и неправдами научиться программировать, путь даже за еду. Сравниваем с силиконовым программером с запросами $250k в месяц. Экономия налицо!

    На всякий случай напомню, для стопроцентной защиты от инъекций необходимо всегда следовать двум простым правилам:

    1. данные подставляем в запрос только через плейсхолдеры
    2. идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.


    Ключевое слово здесь - "всегда". Как только начинаются рассуждения вида "ну эти данные и так безопасные, их защищать не надо", то в этот момент мы добавляем инъекцию к себе на сайт. Следует понимать, что защищаем мы не данные, а запрос. Данные нас вообще не интересуют - какие они, откуда пришли, являются "безопасными" или нет. Важно не то откуда они пришли, а то, куда они идут. В SQL запрос? Используем подготовленные выражения, точка.
    Ответ написан
    1 комментарий
  • Какие есть программы для "перемагничивания" жестких дисков?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Когда нет воздействия негативных внешних факторов, на жёстких дисках информация может храниться очень долго.

    Если же диск активно используется, то скорее он у вас каким-либо образом выйдет из строя, либо начнёт деградировать магнитная поверхность пластин (не размагничиваться, а именно приходить в негодность), чем начнут происходить изменения намагниченности.

    Если вдруг вы всё равно беспокоитесь на этот счёт, то можете делать следующее:
    • "Двигать данные" руками - создавать копии важных папок на том же диске, старую копию удалять, новую - сохранять. Либо переносить важные данные на другой носитель и обратно (убедившись, что второй носитель в полном порядке и потерь не возникнет);
    • Время от времени запускать тесты чтения, например, в Р.тестере (детализацию можно сделать максимальной - увидите все подробности).

    А по-хорошему, если у вас есть какие-то важные вам данные, то они должны храниться, минимум, в виде двух копий. А лучше - трёх. Бэкапы позволят забыть о различных размагниченностях.

    P.S.
    Кстати, с SSD дело обстоит радикально по-другому, долго хранить на них что-либо "в ящике стола" совсем не стоит.
    Ответ написан
    2 комментария
  • Стоит ли идти в NoCode разработку?

    xenon
    @xenon
    Too drunk to fsck
    Общее правило: Если технологию можно легко освоить в короткое время, тогда, даже если такая технология будет в самом деле ценной, все равно, в ней будет слишком много специалистов, высокая конкуренция и низкие доходы. (например, Uber. Стать таксистом несложно, зарабатывают таксисты немного.)

    Либо же технология в принципе будет мало востребована (каждый, кто хочет, сам себе может пожарить яичницу и заварить растворимый кофе, специалисты, освоившие эту технологию не слишком востребованы)
    Ответ написан
    1 комментарий
  • Стоит ли идти в NoCode разработку?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    NoCode это инструменты для тех, кто не умеет кодить, но готов потратить немного времени чтобы сделать какую-то штуку сам для себя.
    Специалисты по NoCode не нужны вообще.
    Если кто-то сделал свой "бизнес" и решил сделать себе сайт-визитку, то благодаря NoCode, не особо криворуким рукам и невысоким требованиям к конечному результату, он сможет сам ее себе сделать в одном из тысяч конструкторов.
    Но такому бизнесмену ты вообще не нужен.

    Поэтому твой вопрос глуп сам по сути. NoCode - это возможность сделать что-то простенькое для себя не привлекая разработчиков вообще и экономя на этом деньги. Зарабатывают в NoCode только создатели подобных конструкторов.
    Ответ написан
    Комментировать