All streams
Search
Write a publication
Pull to refresh
0
@phponeloveread⁠-⁠only

User

Send message
во-первых, шаблоны можно параметризовать еще и численными аргументами.

Не во-первых. Мало того, что это полная несуразица, ведь «параметризовать» можно не только численными аргументами и типами.

А во вторых, говорилось об аргументе-типе, а не о том, что только он там и есть.

Во-вторых, можно накладывать ограничения на параметры шаблонов.

Нельзя. Подобные рассуждения сродни «а int не переполняется, ведь мы может накостылить проверку переполнения», только вот к инту это не будет иметь никакого отношения. Так же и тут, да, некое убожество накастылить можно, но это не «есть» — это прикручено слева.

Раньше и вариадики были, ведь их точно так же можно было накастылить. Только что из этого следует?

Есть — это T extends interface из той же жавы, либо концепты. Вот люди идиоты, оказывается всё есть, а они уже 5лет пилят концепты. Тутошним експертам, конечно, виднее — что есть, а чего нет.

Если кто не понимает, почему это маразм — я поясню. Прикрутить проверки слева — можно к чему угодно и договориться до чего угодно.

void f(int a, int b);
#define f(a, b) f(a, b)


Типичный тому пример. Проверяются ли типа при «вызове» макроса? Да, проверяются ли они на уровне макроса? Нет.

В-третьих, макросы не позволяют SFINAE.

Мда, подобный идиотизм меня умиляет. Человек попросту не способен понять того, что ему написали и начинает ретранслировать знакомые ему базворды.

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

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

Очередной маразм. Мало того, что я об этом писал и мне непонятно — зачем срывать покровы, чтобы после сесть в лужу.

Ваши рассуждения о резиновый/не резиновый никого не интересуют, ведь они попросту противоречат реальности. Жава есть? Питон есть? Пхп есть? Значит для них ваши рассуждения о «резиновый» попросту не котируются, ведь для них — он резиновый.

Второе, опять же, кто вам сказал, что кому-то нужны ваши статические проверки? Люди живут без них и ничего. И именно об этом я писал. Людям не интересны ваши статические заморочки, и именно поэтому — для них ваши рассуждения не стоят ничего.

Вас не спрашивали о том, чем отличается статический и динамический интерфейс. Вы всё напутали.

Пятое — совсем не обязательно понимать как реализован std::tuple или любой другой stl класс чтобы им пользоваться.

Опять же, очередной срыв покровов, который в очередной раз — полностью неадекватен. Я уже отвечал на это. Но зачем читать? Надо же заспамливать меня ахинеей.

tuple — это магия(некие кастыли, которые позволяют получить некий функционал, но обходными путями). Притом — магия эта именно в интерфейсе, а
не в реализации. Магию в интерфейсе нельзя скрыть от пользователя. Нельзя просто так взять и обойти tuple. Да, можно написать хелперы — их потихоньку пишут, но — это ничего не меняет. Тот же apply есть только в 17крестах, но — сослаться на него у вас не выйдет. Ведь для этого — вам нужно будет ограничить «современный С++» стандартом 17года.

И последнее: зная плюсы на уровне брошюры «с++ за неделю» не беритесь судить о том, как он похож на си.

Эта аргументация. Когда сказать нечего — наспамь ахинеи(откровенное враньё, подмена понятий и прочие манипуляции), а потом расскажи о том, что кто-то чего-то не понимает. При этом — не приводи ни единого аргумента.

Охлади траханье. Поведение виртуальной памяти мне известно.

Прохладные истории.

Мне не было известно, что никсы позволяют оверкоммит по умолчанию, без особых системных вызовов.

Опять же, такую ахинею никто, кому известно что-то о памяти — не напишет. И в очередной раз ты это подтвердил.

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

Очередная ахинея, которая подтверждает мои слова выше. Инициализация производится в юзерспейсе, а значит — ничего не даёт.

А это тут же повлечёт физическое выделение памяти и, как следствие, бросок исключения.

Нет, ахинея просто невероятных масштабов. Валидный пейджфолт не может НИКАК вернуть НИЧЕГО, особенно какие-то юзерспейс исключения.

То же верно для std контейнеров, единственный способ наткнуться на оверкоммит — вызвать reserve на огромную сумму, потому что остальные тут же заполняют память.

Очередной мазарм. Вы начали рассуждать о чём-то, и вам указали на полную несостоятельность ваших рассуждений. При этом — вам даже кейс дефолтный показали, где проявляется профит. Если вы не способны назвать подобный пример, если вы не способны осознать подобный пример — вы ничего не понимаете.

Особенно меня веселит «огромную сумму» — какую? На чём основаны эти глупые утверждения?

Вероятно, потому и не встречал оверкоммит — не писал на Си-с-классами.

Каждая следующую отмазка всё невероятней. Да самое использование слова «оверкоммит» — признал полной несостоятельности, ведь человек просто ретранслирует базворды, значения которых он не понимает.

Наверное, потому, что он по умолчанию отключён.

Он не может быть отключен — это базовые свойства платформы. Выключение оверкоммита — есть не его отключение, а включение эмуляции допотопного поведение. По поводу того, что он «включен» по у молчанию — уже сказали.

А какой гений от администрирования его включает на машинах с агрессивным использованием памяти?

Гению вообще не нужно ничего трогать, особенно то, назначения чего он не понимает.

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

Правильно, ведь без понимания фундаментальных вещей — их и не придумать, хотя они рядом.

Первое — память не выделяется. Второе — примеры рядом.

Берём gcc, берём заполнение вектора, заполняем его на чуть больше 1 гигабайта — получаем capacity 2гигабайта и size чуть больше 1 гигабайта. Занимает программа памяти чуть больше 1гигабайта — почему?

Да что там далеко ходить. Запускаются в системе сотни процессов и тысячи потоков со стеком 8мб по дефолту. Почему всё это запускается и не жрёт десятки гигабайт памяти?

А если у вас расчёты на физическом оборудовании — или на виртуальных устройствах, зачем вы делаете себе жизнь веселее с помощью предметов фаллической формы?

Эмуляция лишь эмуляция, и даже если её включить — она особо ничего не изменит.

Как бы вам помягче сказать, вот вы рассказывали выше человеку о том, что он ничего не знает и делает выводы, вот я могу вам то же самое сообщить. Вы НИЧЕГО не знаете и делаете то же самое. Как у человека устаревшие на 5лет представления о С++, так и у вас — устаревшие лет на 30 представления о памяти.

Всё тянет корень от Си, что в корне не верно. Язык ОЧЕНЬ изменился.

Да, язык изменился, но это ничего не изменило. Он как был си — так им и остался, а значит почти вся базовая логика( именно логика языка, а не stl, либо иной либы) — есть эксперт из си.

Почему пришлось кастылить функторы, а не использовать функции? Правильно, потому что функции полностью экспортнули из си, где это просто имя — имя некого объекта/символа в объектнике. А перегрузку просто прикостылили конкатом с тектовым представлением типов аргументов. А вот структуры уже были типами в си, а значит стали ими и в С++.

И о каком понимании С++ может идти речь, без понимания си.

Да, соглашусь. С++ не простой язык, в этом легко убедиться, если посмотреть, как сделан std::tuple.

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

Говорить о том, что можно нормально использовать подобные вещи в полной мере в С++ — без понимания подобной магии — не очень корректно.

И проблема в том, что tuple — это кастыль, который сделан не благодаря, а вопреки. Нельзя сказать о том, что подобные решения красивы, функциональны и вообще необходимы. Да, не имея ничего большего — подобные решения приемлемы, но не более. И это слабость С++ в глазах остальных людей, да и объективно это так.

И люди из статического мира понимают, почему сделать подобные вещи в рамках этого мира — несоизмеримо более сложная задача, нежели в каком-нибудь питоне/жаваскрипте.

Но им ненужно это, поэтому им абсолютно неважны все эти нюансы. Мне нужно записать строку и число, а как это работает — неважно. И все эти статические заморочки — им не интересны.

По поводу примера. Тут ничего такого нет, а вернее видно только интерфейс, слабость которого — прямое следствие слабости С++. Т.к. шаблоны не типизированы, и любой тип T — есть ничто иное, как множество всех возможных типов, то мы просто теряем перегрузку — остаётся только по числу аргументов, либо кастыли. Именно поэтому я не могу передать туда контейнер.

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

Допустим, я бы мог просто отнаследовать все контейнеры от одного begin/end интерфейса и получить sort(vec) — нахаляву, как и sort(begin(vec), end(vec));

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

Все ругаются на макросы в си, но шаблоны не далеко от них ушли. Да, как аргумент мы можем передать только тип, но тип любой. Это мало отличается от «можно передать всё».

Не передергивайте. Проверка NULL закрывает лишь один вектор атаки или сбоя, она увеличивает безопасность, но не гарантирует её.

Это ваши фантазии, которые нигде в статье не определены. В статье используются явные противопоставления «небезопасного кода»(без проверок) коду с проверками, т.е. безопасному. Это первое.

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

К тому же, что именно закрывает проверка — мне неясно. Проверка закрывает только один редкий кейс, но создаёт множество других дыр.

Вы пытаетесь подменять понятия, а именно выдавать свои фантазии за позицию оппонентов. Позиция оппонентов заключается не в «не надо проверять», а в «я понимаю, что делаю» и на это даже в статье ссылка есть. Хотя это неважно, ведь я ни за кого не отвечаю, как и не утверждаю «не надо проверять».

Дак вот, проверяя — вы теряете «я знаю что делаю», а значит теряете хоть какую-то возможность создать хоть что-то безопасное. Вы не получаете преимуществ — вы получаете дыры.

Если ещё проще. Вы противопоставляете «проверке» импорт гарантий снизу, а значит — вы никогда и никаких гарантий не получите, а вот ваш оппонент получит.

Если ручки есть, то они сделаны, чтобы их крутить. В каких ситуациях и как крутить отдельный разговор.

Очень глупо. Stack limit нигде не определён, а такая ручка есть. Почему ваша программа не работает, ведь ручки созданы для того, чтобы их крутить?

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

Это ваш подход напрямую зависит от ручек.

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

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

Если я могу гарантировать, что в случае отсутствия проверки — NULL у меня не будет, то и неопределённого поведения у меня не будет.
Эти ограничения находятся под контролем разработчика?

Да.

Или это ограничения на среду исполнения

Это манёвры, а не конструктив. Проверяете ли вы среду на наличие необходимых ресурсов( той же памяти) — нет. Вас это так же интересует и в контексте динамический аллоцируемых массивов/строк в тех же крестах. Они разбрасываются ВМ( кстати, раз начали говорить о ВМ, типичный срыватель покровов и его представления о матчасти продемонстрировано тут) на право и налево, и при изменении той ручки — получаешь в среднем увеличение потребляемой векторами/строками памяти на 25% даже на больших векторах/строках. Это кого-то волнует?

Если кто-то крутит ручки, которые крутить не надо — это его проблема. Существует окружение по у молчанию, и всегда можно покрутить ручки так, что никакая программа работать не будет. Следует ли из этого что-то? Нет.

Точно так же, на аллокациях меньше страницы шанс не получить NULL стремиться к 100%, как и шанс словить ООМ. С любыми ручками. Обходится это только лимитами, но в рамках вашей же логики — вы не можете рассчитывать на среду исполнения, т.е. это не работает.

В этом заключается проблемы. Мы рассуждаем об обработки NULL как о том, что даёт какие-то гарантии. Пример статьи выше. Нам там вещают о надёжных приложениях, хотя на самом деле это враньё. Авторы сих утверждение живут в своих фэнтезийных мирах, где проверка на NULL делает их программу надёжной — нет. В реальном мире всё не так. И авторы подобных утверждений наоборот, создают ненадёжные программы.

Почему? Всё просто. Если я имею ложную уверенность в том, что мне что-то даёт гарантии, то я не буду искать эти гарантии в другом месте. Это типичный пример с иконками в машине. Если ты считаешь, что иконка тебя защитит, то и не будешь предпринимать что-то иное для защиты себя.

И всё было бы хорошо, если бы нам рассказали как именно добиться проверки «есть память, либо нет», но нам дали какую-то соломинку, которая что-то гарантирует автору/нам лишь по причине незнания, либо умалчивания деталей.

И именно поэтому, когда программист знает — что может вернуть NULL, а что не может. Он сможет проверить — есть ли у него память, либо нет( если это действительно важно для корректной работы приложения), а вот вот человек, уверенный в том, что NULL его спасёт — нет. И он повесит систему, либо словит sigkill.

Если второе, то как часто вы видели такие проверки в реальном коде?

Дело тут не совсем в проверках. Есть механизмы, которые 100% дадут NULL( на самом деле никакие NULL'ы там не используются) и это не malloc(). В частности mmap() + MAP_POPULATE.

Откуда взялись эти 64кб из статьи? Мне неведомо. Подобного я никогда не видел.

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

Это то же подлог. Мы мало того, что считаем оппонентов идиотами, да ещё к тому же — подбиваем результаты под желаемое. В большинстве случаев она не закроется, а словит sigkill, либо повесит систему и sigkill словит кто-то ещё. И произойти это можно в любой момент в процессе операции.

Третий пример вообще паста с первого. Зачем это?

Перед нами типовая ситуация: в буфере не хватает свободного места для хранения данных, и его следует увеличить. Для увеличения размера буфера используется функция realloc, которая может вернуть NULL.

Здесь явный подлог. С чего автор взял, что его рассуждения про «может вернуть NULL» имеют какое-то отношения к реальности? Он живёт в своём мире и натягивает его свойства на реальность.

Вообще заполнять память сразу после выделения буфера достаточно странная идея. Странная потому, что есть функция calloc.


Это так же говорит о том, что представления автора слабо коррелируют с реальностью. Я советую погуглить автору по ключевому слову «префолт», а потом уже о чём-то рассуждать.

Невозможно написать надёжный код, не делая проверки.

Чистый маркетинг и ничего более. Подобные заявления ортогональны понятию надёжности, т.к. внушают у читателей ложную уверенность — давай ложную ассоциацию «есть проверка — надёжно», что естественно реальности не соответствует.

В конечном итоге — что мы имеем? Все подобные вопросы являются манипуляциями, а именно — мы определяем ложное равенство «проверка NULL == безопасно», а далее на все ответы оппонентов апеллируем к тому, что «но у тебя же не всегда так( на самом деле всегда, ведь всегда это комплексный подход. И он не состоит только из игнорирования результата маллока)», но это не имеет смысла. Ведь на самом деле первое равенство ложно, а раз оно ложно, то и то работает «не всегда», а раз обе стороны работают «не всегда», то апелляция к «не всегда» попросту не имеет смысла.

Ответить по существу есть что? Ответить вам нечего, а потом мне надо будет слушать нытьё вида «а я не это имел ввиду», «а у меня вообще другой код», «а мы не договаривались, что в базовом окружении». Хотите спорить — условия вперёд, а нытьё слушать мне неохота.

Слив я могу уже засчитать. Ведь ответа я не получил, как и хоть каких-то оснований вашим словам.
Много кусков по 100 мегабайт тоже прокатывают.

Нет, не прокатывают.

Для справки, тот пример работает только потому, что vm.overcommit_memory=0 и проверяет он только alloc_size > total_free_ram. Таким образом — убери оттуда free() — ничего не поменяется. Аллоцируй хоть милён раз по 100мегабайт — ничего не изменится. Отвалится потом по хардварным лимитам, но такое попросту невозможно.

Сплошные манипуляции. Первое — почему не убран free()? Он там ничего не делает. С ним мы делаем вид, что всё работает так, как предполагалось — нет. Не работает.

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

И то, это специально закастыленный в ядре кастыль.
Это бездумная попытка доказать свою правоту, при этом все попытки — суть подлоги. Я ведь знаю, кого ты цитируешь и что именно тот, кого ты цитируешь говорил. Ведь говорил это я. И никаких «никогда» не было. Был описан набор ограничений, в раках которых malloc() вернуть NULL не может. Это объективный факт.

Ты можешь рассуждать о чём угодно, но это не изменит этого факты. Всё что ты можешь — это апеллировать к «на это нельзя рассчитывать», но тогда ты уже не расскажешь про секту.
У JS нет конкурентов потому что все, кто боролся с JS — сдохли.

Неверно. Никаких конкурентов у него не было.

Java.applet

Они никогда не были нативными для броузера. Со всеми вытекающими.

Flash

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

Silverlight

Это вообще нонейм нечто.

Dart

Он никогда не был нативным, да и ничего нового особо не предлагал. И проблемы были с тем, что никто не хочет и не будет менять шило на мыло.

CoffeeScript

Это вообще непонятно как тут оказалось.

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

Microsoft поняли закономерность и вместо того, чтобы бороться с JS, стали с ним дружить и развивать через расширение, а не замену. Поэтому TypeScript живет и развивается.

Просто мс не осилили создать альтернативу и пошел по пути наименьшего сопротивления, ведь построить целый язык поверх жс не просто. Вернее тот язык, который будет выгодно отличаться от жс. Но опять же — тут есть проблема — куда девать жс и легаси.

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

Именно поэтому говорить о каких-то конкурентах не имеет смысла — ведь их попросту не может быть. Даже когда доделают wasm, то это мало что поменяет для не llvm-based языков. Ведь жс получил поддержку всех платформ на халяву, а другие должны будут её пилить руками. А это далеко не так просто, как в случае с TS, где «компилятор» — это на 90% copy и на 10% replace.

Поэтому TS хорош тем, что добавляет такую нужную вещь как типизацию, но — это тупик. И причины банальны. Типизация это хорошо тогда, когда язык имеет её мощную поддержку, а когда она отдельно от языка — она вызывает много боли, которой могло и не быть.

Если раскрыть тему, то типизация даёт фишки те, которые не даёт жс. Простой пример — перегрузка функций, которой в ТС попросту нет( а то, что ей называется — ею не является). Классы не типы, енамы не типы. Типы не умеют в данные( хотя вроде генерики из жавы( с которых ТС и пастили) этого не умеют то же). И таких примеров масса, и как только они появляются в языке — одним copy/replace не обойтись.

Без всего этого типизация выглядит как дыра, а не как нужность. Хотя она и даёт фишки — комплишн/статические проверки, но это меньшее из того, что могло бы быть.
Ок, видимо Вы с «палкой» незнакомы. Палка — это Paypal.
Это уберет 90% сумбура, что Вы написали.

Я знаю что такое «палка». У меня такое чувство, что вы хотите мне что-то продать. У вас есть А и есть следствие — Б, но почему и откуда вы взяли А, а так же почему из него следует Б — вы не рассказываете. Это типичное определение лозунга. Зачем нам лозунги?

Мы говорили о картах(виза, etc) и о покупках с помощью их. Вы откуда-то взяли палку, киллер-фичёй у которой был и есть чарджбек и обвинили её в этом. Это глупо. Не используйте палку, если вам это не нужно.

Далее начали задвигать про какую-то мзду, которую палка вообще не берёт с покупателей.

Далее, если мы возьмём типичную fee процессинга в 2-3%, а так же возьмём среднюю fee биткоина в 30баксов+, то что мы увидим?

Если я пойду в ларёк купить молока на 200рублей(~3.3бакса), то я заплачу 200рублей в случае с картой и 30баксов+ в случае с биткоином. Отличная история.

Единственная разница в том, что у биткоина фиксированный fee. На сколько мне надо совершить покупку, чтобы получить выгоду в сравнении с картой? на 2к баксов?

И это я ещё дал послабление, ведь попросту нет( по крайней мере я не видел) сервисов, которые бы платили 0fee для покупателя. И не надо мне рассказывать про «ты в любом случае её платишь», ведь я её не плачу. Наличкой в магазине я заплачу столько же.

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

Я выше уже посчитал. Ваши рассуждения не коррелируют с реальностью.

До бума 2011 он нужен был людям и в вакууме. Поверьте еще как нужен, иначе он бы не стоил под ту сумму, что сейчас есть будучи находясь в полностью сломанном состоянии.

Очередной лозунг. Какие ваши доказательства? Да и у вас есть явное противоречие «нужен был до 11» и «сейчас». По вашим же словам он уже нужен людям не в вакууме, а значит все последующие рассуждения к вакууму не имеют отношения.

Никто не говорил что это всегда плохо, факт что когда это плохо — этого легально не избежать. Множество людей купивших биткоин были теми кого кинули в кризис. Какого черта должны люди платить за ошибки финсектора страны?

Опять какие-то лозунги. Вы хотите иметь легальную возможность кидать людей? Отличное самоизобличение.

Кстати, вы там не расскажите про то, как их кинули обвалы курсов, обвалы бирж и прочих сервисов. Почему-то они хотят платить за ошибки биткоина и посреднических сервисов, но вот за какие-то мистические ошибки финсектора — нет. Так же, вы мне расскажете что и где я могу купить за биткоин. Нет, не не надо давать ссылки на каких-то барыг, которые принимают биткоин лишь для того, чтобы потом его обналичить и получить нормальную зелёную бумагу.

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

Ничего вы не написали. Даже лозунгов на эту тему.

Биржи не банки, они более того никогда не гарантируют хранение средств, онлайн кошельки вообще помечены как lowsec всеми, можно хранить мелочь, но крупные суммы дурость, это как миллионы таскать в кошельке. Если кто-то там хранит средства — сам дурак, надо бы читать ToS.

Обожаю эту логику. Всё что нам неудобно мы записываем в «сам дурак». И банки точно так же ничего не гарантируют. Но из этого ничего не следует, ведь факт есть — биткоин никому не нужен без возможности его обналичить, что и происходит на биржах и прочих сервисах. Как и тот факт, что подавляющие большинство живых биткоинов находятся на биржах.

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

Сначала надо доказать существования нала. У вас как всегда есть лозунг и дыра в логике. Обыск вашего матраса — это следствие, а не причина. Без причины никто в вашем матрасе копаться не будет.

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

Видимо Вы что-то неверно изучили или не понимаете.

И как всегда что именно я не понимаю, либо что именно я «не верно изучил» вы не расскажете.

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

Про фиат я расскажу отдельно, а по поводу «выигрывает».

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

А множатся рассуждения подобных эспертов на ноль очень просто: У нас есть две ноды. В первую пришла первая транзакция, во вторую вторая. Ваши действия.

По сути транзакция с большим fee выигрывает место, так возможности атаки нет места быть, т.к. распределение транзакции происходит в течение нескольких тиков.

Опять же, две логические дыры. Первая — попытка использовать в качестве основания свои фантазии. Это про тики.

Вторая — если fee будет одинаковым?

Все что мы ждем, это несколько тиков (допустим 30 секунд),

А вот тут мы видим очередные манёвры. Вначале было что? «так же как у карты»/«моментально», а теперь уже 30секунд. И чем дальше в лес, тем больше секунд.

Полностью 0conf не засекьрить (против атак шахтеров например).

Опять дыра в логике. Если им мешают шахтёры, в без них они секьюртны, то зачем тогда вообще шахтёры?

Если попроще. Любой сети нужна синхронизация, а блокчейн это и есть та самая синхронизация. Проблема 0conf в отсутствии синхронизации, а если мы решим эту проблему — блокчейн не нужен, ведь именно он и решает эту проблему.

Ну вот видите, возможно же?

и? Что именно я должен увидеть? Это не одно и то же, а попытка выдать это за одно и то же — есть подмена понятий, которой вроде как нет.

За всю историю платежей у нас на 100 биткоин транзакций (завершенных) было 0 попыток даблспенда.

Из этого ровным счётом ничего не следует. Если кто-то чего-то не делал — это не значит, что в будущем делать не будет.

На 100 пейпала было 5 чарджбеков из них 4 прошли без даже разговоров. Общая сумма утраченных средств по палке даже с учетом конской комиссии коровского битка на данный момент намного выше нежели все комиссии биткоина (битпей 1%, комиссия сети, комиссии конвертации банков и т.д. и т.п.).

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

А дальше пошли манипуляции во все поля — откуда взялась какая-то конвертация, которая почему-то отсутствует у биткоина. Ну и опять же — откуда взялась какая-то палка, о которой речь даже не шла.

Ну и надежность банка vs надежность законов вселенной. Крепость криптографии также влияет на банки, так что мы это не учитываем. Я уже не говорю о том, что государство может все лишь обрубить интернет, но криптографию они не взломают и деньги Вы можете защитить намного проще чем в сейфе или банке. А вот с банками, как показал Кипр дело худо.

Опять какие-то пустые рассуждения. Во-первых никакой биткоин в вакууме никому не нужен, а как только там берётся хоть что-то за рамками голубой мечты — появляются те же самые «банки».

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

Давайте попроще. Никому переводить день просто так не нужно — они обмениваются на товары/услуги, которые существует за рамками блокчейна и никакие мистические «законны вселенной» вам не помогут, как и криптография.

Кстати, где там у нас хранится подавляющие большинство пользовательской валюты? Неужели в «банках»(биржах и прочих сервисах)?

Далее, если у вас захотят отжать наличку, то точно так же отожмут и ключи. Никакой надёжности это не добавляет.

0конф можно засекьюрить если есть геораспределенная сеть нод, тогда 0конф 100% секьюрен, т.к. шахтеры не будут рисковать всем доходом ради даблспенда за кофе, даже при условии ставки против биткоина им придется еще и убедить других что эта транзакция идет вперед, а это уже покруче даблспенда (51% атака). Так что даже 0конф лучше Визовского холда.

Причём тут 51%, причём тут шахтёры? Это не имеет никакого отношения к делу. Штука в том, если пока транзакция не в блоке — её не существует в сети, и даже если мы предположим, что все ноды будут заниматься валидированием транзакций и будут игнорировать повторные, то опять же — как мы определим то, у какой ноды транзакция правильная? Какая из них первая, а какая вторая?

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

Этакий постоянно изменяющийся децентрализованный tick rate каждую секунду,

Удачи измерить.

Локально нода верифицирует транзакцию и пересылает ее дальше со следующим тиком и так далее и т.п.

Пересылает дальше, а там есть такая же верифицированная транзакция. Что делать?

А зачем нам вообще блокчейн и pow? Ведь можно 0конф засекьюрить?

Зачем вы пишите «не совсем» и повторяете мои слова? Я об этом уже рассказал и сказал почему в ситуации автора это не применимо:
А т.к. никакого pow у нас нет, то создать любую цепочку — стоит ноль, а значит цепочка ничем не будет отличатся от обычных данных.
Всё остальное — это про сложность построения цепочки(не в вашем случае) + мелкие нюансы.


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

По поводу смысл именно эти не знаю, но смысл против pow очевиден. pow — тупиковая ветвь, которая не работает и не может работать как консенсус для платёжной системы. Она просто множит на ноль любые разговоры о децентрализации, ведь 50%+ мощностей владеют 3-4 пулла. На эту тему много спекулируют не понимания, что майнер не является частью сети, а её частью является пулл.

Куда не ткнись — везде проблемы. Время блока без кастылей не уменьшишь, его не стабилизируешь. Много их.

Тогда и биткоином через 0conf Вы покупаете моментально.

Неверно. Опять подмена понятий. 0conf == отправить транзакцию в пустоту, а вот в случае с картой всё не так. Платёж уже обработан, деньги уже удержаны, банк об этом знает — это не изменить. Только через банк.

Принцип тот же. Слабости теже

Не тот же и не те же. В ситуации с картой у вас денег нет, в ситуации с картой — это регулирует банк, который по умолчанию надёжен. Насколько он надёжен мы тут не обсуждаем — достаточно.

В ситуации же с биткоином ничего этого нет. В лучшем случае эта транзакция «до вас» никогда не дойдёт.
Не моментально.

Моментально.

О чем много раз даже и тут и на ГТ писалось.
Моментально проходит холд, ответ банка есть ли у клиента деньги.
А потом прилетает уже списание, обычно через несколько дней, но может и через несколько месяцев.

И? Это ничего не меняет. Это подмена понятий, а не какой-то предметный разговор. Абсолютно неважно как именно это работает — это никого не интересует и интересовать не должно, а работает оно именно моментально.

К тому же — это не проблема и не свойство системы, а именно заморочки связанные с не технической частью, а со всяким контролем/безопасностью и прочем. И как я уже сказал — это ни на что не влияет. Для пользователя переводы моментальные.

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

Система может контролировать только то, что существует в рамках её. В рамках её может существовать только передача прав и только. Всё остальное — дыра. Будь-то исполнение, соотношение реестра с реальностью, валидность сделок, создание собственности.

Не нужно никаких выписок — каждый может подключиться к реестру и получить выписку для себя.

Это свойство открытой системы, а не неведомого блокчейна.

Чтобы была совершена транзакция, в нее должны загрузиться все документы, на основании которых она проводится.

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

Далее она подписывается рабочим ключом операциониста, принимающего и проверяющего документы

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

Это ещё одна подмена понятий. Тождество есть между ключом и подписью, но никак не между подписью и операционистом.

затем дополнительно верифицируется ключем самого Реестра и потом публикуется.

Абсолютно не имеет смысла. Подпись на недоверенных данных не сделает их доверенными.

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

Все предпосылки ложны, и я уже объяснил почему. А следствие — типичная манипуляция.

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

Всё остальное — это про сложность построения цепочки(не в вашем случае) + мелкие нюансы.

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

В такой ситуации, каждый сотрудник понимает свою ответственность за подделку документов.

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

Все правоусттанавливающие документы хранятся в транзакции (если надо в зашифрованном виде). Таким образом четко понятно почему и как произошла смена собственника, статуса, залога и т.п.

У тут же появляется дыра, а вернее она никуда не девалась. Кто вам сказал, что зашифрованное право собственности на трусы и квартиру будут чем-то отличаться? А значит, что мешает поменять их местами? Кто вам сказал, что идентификатор Васи будет ассоциироваться с Васей? Кто вам сказал, что из Васи сложнее выбить электронную подпись, нежели обычную? При этом, если руку Васи нельзя копировать, то вод ключи копировать можно. То же самое и с операционистами.

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

А Proof-of-Authority — это типичная попытка вернуться обратно к централизации, ведь уже давно все рассуждения о децентрализации — на 90% мифология.

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

Как мне это воспроизвести?

цена не станет ноль, т.к. есть минимальный fee

Это не ответ на мой тезис, ведь ноль ни на что не влияет — он там не определяющий. Поменяй ноль на «минимальный fee» в моём тезисе — это ничего не изменит.

Да и в любом случае, наличие минимального fee и есть свидетельство слабости сети.

2) сеть не ляжет. обработка транзакции бесплатна практически.

Неверно. Транзакция требует проверки подписи, исполнения скриптов и т.п. Это уж не говоря о том, что нода должна принимать каждый броадкаст, которых будет десятки тысяч( это уже не говоря о 5кк) в секунду.

У любого карточного процессинга транзакции до 180 дней проходят (время до последнего звонка чарджбека).

Очередной враньё враньё. Транзакции по картам проходят моментально, в противном случае ими никто не мог ничего оплатить, но все оплачивают.

Покупая что угодно и где угодно — будь-то ларёк у дома, либо покупка на ебее — она происходит «мгновенно», а 180дней она происходит только в ваших фантазиях.

Уже скалировали кеш до гигаблоков. Гигаблок это 5.5 млн транзакций в секунду.

Скалировали где? У себя в голове? Каждый говорит о том, что во-вот оно случится, но реальность она вот — увеличили ограничение на блок в <10 раз и всё.

Стоимость транзакций не вырастет.

Проблемы вообще никакой нет. Всё это — надуманный хайп и проблемы стабильности ПО/сети.

Снятие ограничения на размер блока ни на что не повлияет, кроме:

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

2) сеть просто ляжет. Обработка транзакции не бесплатна, а ресурсы ноды не безграничны. Как минимум лягут обычные пользователи, которых всё равно уже давно почти нет и все рассуждения о них — шум, но пока в это верят, а вот после верить не будут.

Но это ничего не даст, ведь тут происходит банальная подмена понятий. Мы просто считаем трупут биткоина/визы и сравниваем их, но есть нюансы. Разное время прохода транзакции, несоизмеримо разное. И проблемы именно в этом — никто не будет менять транзакции за секунды на транзакции за пол часа.

Сложилось впечатление, что вы утверждаете будто переход от базового уровня владения навыком к более высоким невозможен. И этим оправдываете невозможность перехода человека из «гумманитариев» в «технари» и обратно.

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

Также мне показалось, что вы «технарность» (например), измеряете по неким «плодам» (результатам), а значит, можно выделить набор результатов по-которым определять будем «технарей» и «гумманитариев». И я опасаюсь, что все кто не PhD в Computer Science и не работают на условный Google, будут окрещены «гумманитариями». Ибо результаты окажутся не соизмеримы.

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

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

Есть некий уровень, ниже которого без понимания пойти «нельзя». Возьмём мир программирования. Людям кажется, что этот мир един, тут все технари и антипод ему мир пользователей. Программисты создаются программы, а пользователи пользуются. Это обычная логика. Но.

Мир программирования является по сути тем же, чем и мир пользователей компьютеров. В нём точно так же есть программисты и пользователи. А у те, в свою очередь, делятся аналогично.

Не совсем понял, что вы хотели этим сказать. Если что, то я «видел» биты :)

Я говорил о том, что говорить о битах — это не тоже самое, что их понимать. Да даже работа с ними, зачастую, не требует понимания.

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

Из этого ровным счётом ничего не следует. А изучен мозг плохо. Своей логикой вы опровергаете всё, ведь объективный фактом является то, что способности у людей разные. Существуют ли методики определения, физиологические? Нет. Что из этого следует? Ничего.

Да и к тому же, я заранее дал ответ на это.

В чем ошибка в моей логике, и где именно? Я ничего о доступности навыков с рождения не писал — не нужно мне приписывать это. Что касается доступности навыков, то именно это я и утверждаю, что навыки доступны практически всем.

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

Это, кстати, то же следствие «технарности». Давайте я расшифрую. В своих рассуждениях вы предполагаете, что «технарь», в понимании тех, с кем вы спорите — имеет именно навыки с рождения. И вам именно это и показали, что из подобного разделения не следует то, что «технарь»/«гуманитарий» обладают какими-то навыками с рождения.

А скорость обучения и уровень погружения — это сомнительные мерила для данного вопроса. Вы либо утверждаете, что те кто учатся чуть медленнее — гуманитарии, либо утверждаете, что «гуманитарии» не способны при желании погрузиться в тему (и наоборот для технарей)?

Сомнительные мерила — это неизвестно откуда взявшиеся 0/1, как и трактовка «технаря». А по поводу того, что я утверждаю — я это ведь сформулировал чётко и ясно.

Я утверждаю то, что кол-во «реальных технарей» выше среди тех, кто осознанно/явно определили за собою предрасположенность к определённой(«технарской») деятельности, нежели тех, кто определил для себя/вообще другое, либо не определил ничего вообще.

Вы, возможно, обидели сейчас очень многих пользователей Хабра тем, что если они не написали Реакта, то скорее всего «гумманитарии».

Я обидел именно вас, при этом написал это специально. Специально, для демонстрации публики вашей мотивации. Вы заранее определили себя за технаря и пытаетесь натянуть сову на глобус. Вы не заинтересованы в объективности, а значит у вас всё будет сводиться к тому, что определяет вас за «технаря». Хотя мне непонятно — почему вдруг «гуманитарии» стало оскорблением?

Если вы не делаете разделения, то чему вы обижаетесь? Если разделение нет, зачем вы это к себе приписываете? Вы пытаетесь монополизировать понятие «технарь», определяя им всех, кто работает в ИТ? Других критериев я от вас не видел.

Опять же, по достижениям судить — дело не хитрое, но боюсь 99% населения на планете окажется «гумманитариями». Собственно, за всеми подобными мыслями прослеживается какой-то «технарный» шовинизм.

Вот опять же, явное нарушение логики. Я нигде не определял того, что «технарские» навыки лучше «гуманитарных». Я говорил о критериях достижения навыков уровня «намного выше средних». И под навыками я имел ввиду именно навыки «технарские».

То же самое я говорил и о навыках «гуманитарных», которым так же требуются особые способности. А раз они требуются и тем и тем, а разницы между ними я не делал — состава нет. Вы высасываете его из пальца. Но состав есть именно в вашем случае.

Вы не понимаете, что такое «способности». Их не может не быть, если вы здоровы.

Способности к чему? Я говорил о вполне конкретных способностях. Вы хотите поспорить с тем, что они есть и они разные? Почему же все не в гугле? Как так вышло?

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

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

Вы увидели одно слово, увидели второе и решили, что на чём-то меня поймали.

Жизнь ваша реальна только для вас, не сочтите за хамство, я серьезно.

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

Моя жизнь реальна немного по-другому, поэтому в ней это не «сплошь и рядом». А про какую «объективную оценку» вы написали, я, честно, не понял. Надеюсь на ваши разъяснения.

Повторюсь, ваша жизнь опровергает вас. Если вы ничем не отличаетесь от тех людей, которые работают в гугле — почему вы не в гугле? Почему все не в гугле?

Вы можете попытаться объяснить все эти феномены в рамках вашей реальности, в которой способности ни на что не влияют, в которой способности есть у всех. Очень интересно.

Information

Rating
Does not participate
Registered
Activity