Pull to refresh
154
0.3
Григорий@bfDeveloper

Программист на C++, D, Brainfuck

Send message
взять JS код, распарсить его с помощью D при компиляции

Где-то на этом месте ничего не получится :)
Это кончено возможно, но применимо только для ненормального программирования. AOT оптимизации в JS почти невозможны без изменения поведения кода. Парсинг в D превратится в ещё одну виртуальную машину. Слишком уж он динамичный и многое себе позволяет. Если же ввести ограничения на код, не давать менять типы в рантайме, добавлять свойства и тд, то может и получится. Только с такими ограничениями проще сразу на D писать.
Не зависят. С концептами лучше, но работают и без них. Достаточно брать с гитхаба. Там всё макросами завёрнуто, поэтому работает даже на старых компилерах. Так что ranges-v3 однозначно лучше того, что предложено в статье. И судя по моим бенчмаркам очень резво работает.
Поделитесь пожалуйста ссылкой или хотябы названием мануала. В гугле не забанили, но хочется быть уверенным, что я нашёл то, что надо.
Во-первых, измерить иррациональную величину невозможно. Измерение — процесс сверения с эталоном. Сколько эталонов помещается, такова и величина. Поэтому результат измерений всегда рационален. Вы можете ввести иррациональный эталон (иррационален он относительнодругого, например гипотенуза относительно катета), но количество эталонов в измеряемой величине будет рациональным. А как уже ответили, плотность множества рациональных позволяет сколь угодно точно измерить что-угодно.
Во-вторых, по поводу интуитивности. Попробуйте описать множество иррациональных чисел, не вводя определение предела или других контринтуитивных идей. Даже через геометрические интерпретации + корни рациональных уравнений вы не опишете всех. А предел — довольно сложная идея, которая решила всевозможные апории Зенона и им подобные.
С этой точки зрения оно мало чем отличается от бесконечной дроби 0.(3).

В том-то и дело, что отличается. Любое рациональное число представимо обыкновенной дробью. 0.3(3) — не более чем запись числа 1/3. Одна из многих. Так же как 0.9(9) — другая запись 1. Я всё ещё могу сказать, что 1 карандаш — треть от пачки из 3-х карандашей.
Рациональное число — всегда количество долей чего-то в чём-то. Оно интуитивно, потому что люди осознают только целые, а это просто способ на пальцах посчитать доли. Иррациональные числа не представимы никакой дробью. Нельзя сказать, что это доля чего-то. Считалось, что рациональных чисел достаточно для оперирования геометрии, а оказалось, что нет. Абстракция отрезка и описывающего его числа развалилась, они перестали быть тождественны.
Сомнительной выглядит статистика по времени жизни веганов и вегетарианцев. Точнее мне не нравится её интерпретация. Я склонен считать, что дольше подобные группы живут не благодаря ограничениям, а скорее вопреки. То есть они вынуждены более тщательно относиться к выбору еды, поэтому их диета более сбалансирована. Но это не значит, что нельзя сбалансировать диету мясоеда так же или даже лучше.
Интересно было бы посмотреть на подобную статистику, где разбивка будет по вопросу «Следите-ли вы за своим рационом? Сидите-ли на диете».
А зачем? Может стоит возвращать константную ссылку, чтобы подобного не происходило? Или это замысел такой?
Вы очень сильно недооцениваете влияние философии. Понятно, что большинство современных философов сильно отстали от науки и не в состоянии что-либо объяснять. Однако, существует множество вопросов, поставленных точными дисциплинами, ответы на которые выходят за их рамки. Например, проблема корня из 2 и появления иррациональных чисел в математике. У математики нет проблем с иррациональностью, она с ней работает. А вот интерпретация и осознание этих величин — вопрос скорее философский. Когда-то он переворачивал мировоззрение и представления об устройстве мира.
Точно так же квантовая физика и подтверждение неравенства Белла перевернуло мировоззрение в ХХ веке. Детерминизм как идея мироздания умер. Сейчас мы сталкиваемся с ещё более запутанными свойствами мира в физике и сложной сущностью ИИ в технике. И вопрос осознания явлений — всё ещё вотчина философии. Просто она становится всё сложнее и сложнее.
Ожидал увидеть что-то вроде https://github.com/libffcall/libffcall
Там в рантайме генерируется код для каждого использования, что позволяет передать замыкание туда, где ожидается обычная сишная функция, не предусматривающая пользовательских данных. Руки чешутся начать использовать, но уровень шаманства отпугивает.
Спасибо за статью, радикальный подход!
Проясните, пожалуйста, следующий момент:
test().setX(1000); // не поменяет исходный объект

Что такое setX на неизменяемом объекте? Какой объект поменяется? Я ожидал увидеть здесь ошибку компиляции, так как не константные методы не должны работать на immutable.
Могли бы и поискать. Этот вопрос очень часто задаётся. Причин много:
1) Ваша версия про сопротивление воздуха, ракета в первую очередь должна лететь вверх, а уж потом садиться.
2) Тонкий цилиндр гораздо проще трансопртировать. Можно найти видео, где первую ступень везут по обычной дороге на «обычном» тягаче. При чём со скоростью всего потока на автостраде.
3) Ваш исходный тезис ложен. В ситуации управления перевёрнутым маятником, чем длиннее, тем лучше. Вы ни за что не сможете удерживать вертикально на пальце обычную ручку, но стоит удлинить её хотя бы вдвое и получится. Так что высокая узкая ступень граздо устойчивее. Пирамида лучше, когда уже всё посадили и нужно просто стоять без динамического управления. Для этого есть раздвижные ноги, а ещё ракету хорошо крепят к платформе.
Это касается не только обучения. Часто намеренно оставляю задачу незавершённой чтобы вернуться к ней на следующий день. Это позволяет легче вернуться в контекст работы. Если же приходишь на работу и тебе надо начинать что-то с нуля, но настраиваться сложнее. Главное правило — не оставлять больше одной задачи, то есть не превращать в откладывание на потом. Незавершённая работа — закладка в книге, их не может быть больше одной.
Статистику можно хранить в куках, в БД, если вы залогинены или с вас можно снять нормальный отпечаток (а его почти всегда можно снять). Релевантная реклама гуглом совсем не по IP выдаётся. А как правильно заметили ниже, сам факт использования анонимайзеров и отключения куков и js сужает круг поиска до очень маленькой группы лиц.
Технических способов для анонимности мало, нужны социальные. Ну и вообще надо понимать, что именно вам надо и от кого, что и как вы собираетесь скрыть.
Как будто Tor защищает от поведенческого анализа. Максимум, что он даёт — сокрытие точки выхода в интернет, а дальше всё как обычно. Для хоть какой-то анонимности нужен выключенный js и cookies, что делает совершенно неюзабельным большинство сайтов. А использовать соцсети хоть из бункера через личный канал президента не анонимно по определению, на то они и соцсети.
</паранойя>
Начал использовать Catch только благодаря header-only. Ваша реализация тоже выглядит достойно, возможно попробую.
Для окружности достаточно взять всего 2 точки, определяемые касательными к окружности из точки обзора. Их придётся менять при сдвиге точки, но для этих расчётов не критично. Это в целом привычная практика по-разному обрабатывать окружности и полигоны, и хотя в рендеринге окружность тоже полигон, в модели она может оставаться идеальной окружностью.
Вы привели отличный пример, для чего и были созданы итераторы в шарпе: тяжёлые асинхронные операции. В них мелочи вроде косвенного вызова или даже боксинг совсем незаметны. Но если нам нужна всего лишь ленивая конкатенация, то накладные расходы становятся больше простого взятия символа из строки.
Не буду утверждать со стопрцентной уверенностью, но скорее всего это влияние стандарта С++11. Поддержка многопоточности сломала некоторые оптимизации в стандартной библиотеке, например, copy on write. Скорее всего в конкатенации тоже что-то поменялось. Я постараюсь сегодня повторить бенчмарки, тогда можно будет сравнить дизасм.
Здесь имеется в виду проблема С++ итераторов, описанная параграфом выше. Итератор не может сказать, валиден ли он. Для итерирования всегда нужна пара, иначе не остановиться. В С# такого нет, в нём один объект итератора полностью отвечает и за взятие следующего, и за остановку. Буду рад узнать название лучше, чем целостность.
Согласен, про контексты не корректно выразился. Я имею в виду yeild. Это по сути аналог переключения контекстов потоков, только для корутин. Дешевле, но не бесплатно.

Information

Rating
2,575-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity