Задать вопрос
  • Как понять блокчейн?

    @rPman
    Единственное что важно и что имеет смысл понимать
    - это консенсус, позволяющий обычный тупой блокчейн (последовательную цепочку данных), сделать доказуемо не перезаписываемым, без наличия центрального доверенного

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

    Уже начиная от сюда - создана криптовалюта (и не одна, но имеет смысл только биткоин, почему - ниже), в которой с помощью блокчейна и надежного PoW консенсуса, создана 'амбарная книга' где записываются транзакции буквально 'кто кому сколько перевел монет' и все могут доверять этим записям при условии ограничений консенсуса (в случае с PoW это атака 50%+1 и возможность подобрать такое количество подтверждений от циркулирующих сумм, при котором этой атакой можно пренебречь)

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

    Так как сама концепция независимости от центра подавляющему большинству населению сложнопонятна, этим пользуются для того чтобы пускать пыль в глаза большинству.

    Сначала создавались криптовалюты, как копирующие bitcoin так и реализация с нуля с необычным функционалом и концепцией, эксперименты с альтернативными консенсусами и прочим,.. которые показали что самого по себе консенсуса недостаточно для обеспечения надежного функционирования системы, нужны еще такие вещи как качественное первоначальное распределение ценности (монет блокчейна, если грубо) и наличие независимых разработчиков, более чем одна команда, грамотное управление и воля участников к поддержанию системы на плаву. Требование про разработчиков очень философское и есть куча примеров когда вне зависимости от консенсуса, главные разработчики, владельцы основного объема ценностей были связаны/созависимы, и были способны уничтожить полезный проект (например что произошло с bitshares, если что это показало на сколько PoS консенсус уязвим).

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

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

    Вся околофилософская мишура, которой пичкают неофитов - это полный бред, который не выдерживает простейшего логического анализа. Главная цель основной массы криптопроектов в криптоэкономике - отъем денег у населения. Основной способ заработка на NFT это либо комиссионные сборы (этим занимаются централизованные площадки, продвигающие NFT проекты авторов, т.е. маркетинг) либо симуляция торговли, когда автор покупает сам у себя свой же товар - показывая фейковую заинтересованность им (ничего нового не изобрели и этим давно занимаются и до смартконтрактов как биржи так и сами авторы криптопроектов). И конечно отмывка денег, буквально - обеление серых финансов, когда ценность генерируется из ничего, это просто повод показать что деньги получены с продажи вот этих произведений искусств, что давно используется в большом мире денег,.. ничего нового.

    p.s. почему только bitcoin? потому что только в нем распределение богатств заметно равномерный (индекс джини), только его консенсус подкреплен огромными финансовыми вливаниями в оборудование для майнинга (очень дорогая атака) и огромное комьюнити независимых разработчиков (правда тут есть куча мест для слабости проекта, но по сравнению с другими - bitcoin выглядит как самый защищенный).
    Остальные проекты создаются не с целью привнести что либо полезное миру, а с целью собрать денег, либо как сбор средств на разработку (ICO или комиссия в блокчейне), а когда консенсус основывается буквально на объеме денег (чистый PoS), то сам факт того что основные деньги проекта сосредоточены у кого то одного (создателя или олигополии инвесторов как это сделано в EOS, точнее dPoS проектах) полностью обнуляет любую защиту.

    p.p.s. меня заинтересовал единственный альтернативный консенсус - proof of identity (сейчас это idena.io - примерно 2к-3к нод, 7к..14к 'майнеров' и количество растет ~10% в месяц , для молодого слабого проекта это чудо в криптоэкономике), основная беда большинства не PoW - возможность атаки количеством нод или деньгами, но тут одна идентити = один человек (ну ок, две - это норма), это гарантирует консенсус, а опасность сбора фермы рабов для атаки на проект усложняется низкой стоимостью монеты, т.е. как это не парадоксально, пока доходы майнеров тут будут низкими - консенсус будет надежным

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

    хех, надо бы это оформить в виде статьи на хабр и отправлять народ туда
    Ответ написан
    3 комментария
  • Как лучше вынести логику в общий класс?

    @Akela_wolf
    Extreme Programmer
    1. Сначала нужно обдумать что вы с этого будете иметь. Вы сможете переиспользовать эту логику? Вы сможете покрыть логику тестами? Иначе говоря, сформулировать цель такого рефакторинга.
    2. Собственно цель и определит какую логику вы будете выделять. Если задача переиспользовать - значит есть какой-то второй сценарий использования. Смотрите на него, выделяете общие с первым элементы. Выделяете различающиеся элементы - думаете как правильно оформить общие и различные элементы в коде (наследование, композиция, декораторы и т.п. приемы). Собственно на этом этапе у вас появляется план рефакторинга. Если же цель - облегчить тестирование, то начинаете с обдумывания теста. И рассматриваете тест как второй сценарий использования.
    3. Затем остается этот план рефакторинга претворить в жизнь.
    Ответ написан
    Комментировать
  • Существуют ли дистрибутивы Linux где изначально встроен весь основной репозитарий?

    Adler_lug
    @Adler_lug
    Вероятно вам нужно это.
    Ответ написан
    Комментировать
  • Как защититься от таких инъекций или как они называются?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тег <script> не имеет ни малейшего отношения к mysql.
    Наличие этого тега в базе данных никакой инъекцией не является.

    "Инъекция" будет только если этот тег будет выведен внутри HTML кода как есть. Называется XSS
    "Инъекция" которая относится к mysql называется SQL инъекция, и чаще всего позволяет прочитать из БД любые данные. Скорее всего является неактуальной для данного сайта, поскольку там просто нечего читать.

    Чтобы защититься от XSS, надо использовать htmlspecialchars() при выводе данных в HTML
    Чтобы защититься от SQL инъекций, надо использовать для работы с БД подготовленные выражения
    Чтобы не "совали" всякий мусор, надо использовать защиту от спама, например капчу.
    Ответ написан
    Комментировать
  • Почему не получается импортировать таблицу через консоль на Ubuntu сервере?

    @galaxy
    If you are already running mysql, you can execute an SQL script file using the source command or \. command:

    mysql> source file_name
    mysql> \. file_name


    https://dev.mysql.com/doc/refman/8.0/en/mysql-batc...
    Ответ написан
    Комментировать
  • Какой из текстовых редакторов Linux умеет работать по FTP?

    @rPman
    докину варианты, в linux есть проект fuse, позволяет монтировать файловые системы, описываемые простой библиотекой, работающей как обычное приложение в userspace, на основе его сделана поддержка всяких экзотических ситуаций, в т.ч. работа по ftp - ftpfs (идет штатно с любым линукс), так же есть sshfs для доступа по ssh, avfs для архивов (сюда же fuse-zip и archivemount) или экзотический winregfs для чтения файлов реестра windows как файлы и т.п. десятки библиотек идут по дефолту в репозитории.

    монтируешь в каталог без root и пользуешься как локальными файлами из любых программ
    Ответ написан
    4 комментария
  • Нужно ли как-то обрабатывать код перед записью его в БД через PDO?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Вы понимаете, что делает каждая строка в вашей найденной супер-функции?

    // убираем концевые пробельные знаки (пробел, таб, переводы строк и т.п)
    $value = trim( $value );
    
    // преобразуем строку в строку, да еще с подавлением ошибки O_O. Даже не знаю что сказать
    @strval($value)
    
    // убираем все символы кроме кодов с 20 (пробел) по FF
    $value = preg_replace("/[^\x20-\xFF]/","",@strval($value)); 
    
    // Убираем html теги
    $value = strip_tags( $value );


    Вот теперь сами и скажите – вам всё это нужно делать?

    Пользователь может через форму, обрабатываемую таким образом, загрузить вредоносный код?

    Тут нужно понять, что вы имеете ввиду под вредоносным кодом.

    SQL инъекции тут не будет.
    HTML код загрузить можно. И если вы не будете его обрабатывать при выводе на страницу, он сработает (там может быть какой-то js скрипт).
    Но это совершенно не значит, что вам нужно искать какую-то мега-универсальную функцию очистки данных.
    Всегда нужно смотреть по ситуации. Например, в форме комментирования могут быть разрешен некоторый набор html тегов для форматирования сообщения (как, например, на этом сайте), и применять не глядя strip_tags ко входным данным, будет ошибкой.
    На международном сайте могут регистрироваться люди с именами, включающими символы, которые вы запретили (/[^\x20-\xFF]/).

    Короче, ко всему и всегда нужно подходить с умом.
    И никогда не копипасти код из интернета, если не понимаешь каждую строчку.
    Ответ написан
    4 комментария
  • Важен ли return в main?

    The C programming language allows programs exiting or returning from the main function to signal success or failure by returning an integer, or returning the macros EXIT_SUCCESS and EXIT_FAILURE. On Unix-like systems these are equal to 0 and 1 respectively.[3] A C program may also use the exit() function specifying the integer status or exit macro as the first parameter.

    The return value from main is passed to the exit function, which for values zero, EXIT_SUCCESS or EXIT_FAILURE may translate it to “an implementation defined form” of successful termination or unsuccessful termination.

    Apart from zero and the macros EXIT_SUCCESS and EXIT_FAILURE, the C standard does not define the meaning of return codes. Rules for the use of return codes vary on different platforms (see the platform-specific sections).

    Exit status
    Ответ написан
    Комментировать
  • Как подключить телефон через USB в качестве монитора для ПК без ОС?

    xez
    @xez
    TL Junior Roo
    Никак
    Ответ написан
    Комментировать
  • Какой дистрибутив GNU/Linux выбрать для цифровой криминалистики?

    includedlibrary
    @includedlibrary
    Берите любой. Весь софт может хоть на убунте, хоть на федоре, хоть на арче с генту работать. Но лучше взять что-нибудь популярное типа Ubuntu/Mint, чтобы на вопросы было легче найти ответы
    Ответ написан
    Комментировать
  • Как полностью защитить ноутбук от взлома?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Жил да был черный кот за углом...
    Вопрос не имеет смысла до тех пор, пока не определено, от кого собираетесь защищаться.
    Разные нарушители имеют разные возможности. В сферической информационной безопасности рассматривается абстрактный технический обьект защиты.
    В реальной жизни это совершенно не так и запросто сложится ситуация, когда Вы сами введете все необходимые пароли и расскажете все, что знаете (потому что горячий паяльник в #опе - это очень неприятно...)
    Ответ написан
    Комментировать
  • Как наладить работу "Сетевого окружения" в AD?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    Сетевое окружение умерло. И никто его не стремится реанимировать. Оно просто умерло. Оно не работает даже в win-only многосегментных сетях, где в центре виндовый AD, на котором стоит wins. Такое впечатление, что прогсто поддержка wins выпилена нафиг. Потому что IP wins сервера передается, регистрация в нем идет... но... винде (рабочей станции) на это просто насрать. :( Она тупо показывает только сегмент локальной сети и все.
    Ответ написан
    Комментировать
  • Как точно посчитать за какой время выполняется цикл?

    1. В зависимости от параметров сборки этот цикл может превращаться в ноль, тк в нём нет побочных эффектов (это стандарт)
    2. На компьютере кроме твоей программы выполняется ещё несколько десятков других, по тому ОС будет в какие-то моменты твою программу ставить на паузу, чтобы дать процессорное время для другой программы.
    3. Частота современных процессоров не постоянна, так что это тоже может влиять

    Если ты хочешь написать бенчмарк, то тебе надо запустить один и тот же код несколько тысяч раз и посчитать хотябы среднее время, а в идеале ещё stddev и stderr
    Ответ написан
    Комментировать
  • Как разрабатывать игру на c++ под Android?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Самым простым решением для разработки именно игры будет взять Cocos2d-x, Defold или Godot.
    Это уже готовые решения для разработки игр на различные платформы, в том числе и на Android.
    Все движки предоставляют инструменты именно для С++, в отличие от SDL.

    SDL выполнен на языке C и не является подходящим в контексте разработки на C++.

    Если есть желание заняться именно разработкой движка, а не игры, то вместо SDL стоит взять SFML, который выполнен уже на C++ и является довольно хорошим фреймворком. На базе SFML можно довольно быстро сделать небольшой движок для небольшой игры.
    Ответ написан
    2 комментария
  • Нужна программа для бекапов в организации?

    ky0
    @ky0 Куратор тега Системное администрирование
    Миллиардер, филантроп, патологический лгун
    Бэкап всего ПК - изначально порочная практика. Если у вас там винда - сделайте эталонный образ, который можно быстро накатить, и бэкапьте только документы пользователя. Или того лучше - организуйте хранение всех документов на сетевой шаре, под которой дисковый массив с резервированием. Элементарные вещи, блин, рассказываю зачем-то...
    Ответ написан
    4 комментария
  • Какой выбрать вариант избавления от глобальных переменных в ООП PHP приложении?

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

    В первом случае выкинуть весь этот ад и делать по-человечески, передавая переменные в конструктор/методы в качестве параметров.
    Ответ написан
    Комментировать
  • Какие материалы подойдут, чтобы изучить основы алгоритмизации и программирования на C++?

    @dmshar
    На вопрос "Основы алгоритмизации и программирования на С++" Google выдает 59 тысяч ответов. А на вопрос "С++ учебник для начинающих" - еще 80 тысяч. Вы просмотрели хотя-бы десяток (не тысяч, а просто 10) из них и поняли - ни одна из этих ссылок не подойдет. Потому что ваши запросы - уникальны! Ну кто-же додумается изучать "поэтапно и от простого сложного". Все идут точно в обратном порядке. При таких ваших запросах - вряд-ли кто на форуме сможет вам помочь, увы.
    Ответ написан
    Комментировать
  • Как починить BIOS и убрать Ubuntu с ПК?

    @rPman
    Я пытался восстановить удалённые файлы (хотя я их не удалял, просто вырезал в одном месте, вставил в другом) но ничего не вышло, программы не нашли заветный файл.

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

    взломать что либо без этих файлов нереально, я конечно не удивлюсь, если майкрософт в тихушку собирает ключи шифрования и складывает у себя на серверах но не думаю что обывателю эти данные доступны.
    Ответ написан
    5 комментариев
  • В разных IDE код выдаёт разный ответ, как так?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Оператор << не является точкой следования, таким образом, вы получаете неопределенное поведение - у вас вызовы ++(*val) не отделены точкой следования друг от друга.

    Вот так ошибки не будет:

    cout << a.get();
    cout << b.get();


    Потому что ; является точкой следования.

    В более свежих версиях стандарта может быть другая терминология, но суть проблемы - прежняя.
    Ответ написан
    Комментировать