Category: it

Category was added automatically. Read all entries about "it".

Понятно, почему почти никому не понятно

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

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

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

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

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

Collapse )

Сделай сам себе язык

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



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

Аналогичное заодно является основой символьных вычислений, в том числе — построения систем, которые могут, например, решать уравнения или выводить производные в символьной форме.

При всех огромных возможностях языка Wolfram и приделанной к нему Mathematica меня все эти годы раздражало то, что в плане определения функций там совершенно адский синтаксис.


Читать на сайте «XX2 век»




Новой эпохе — новые автоматизации

«Экспериментальная математика», как я её условно называю, — это такое занятие, когда ты берёшь какую-то матмодель, а потом начинаешь смотреть, что поменяется, если поменять вот в этом месте одно на другое. А если вот в этом? Ну и так далее.

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

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

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

Штука в том, что можно для эксперимента что-то менять прямо в тексте функции с моделью, однако так не сохраняются предыдущие варианты, а потому тяжело сравнивать. И куда-то упорядоченно выписывать тоже тяжело.

Collapse )

(no subject)

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

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

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


Кое-что о «загрузке сознания»

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

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

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

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

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

Collapse )

Минутка формационно–языкового шовинизма

Язык C++ разработал датчанин. Дания — монархия с развитым институтом частной собственности.

Поэтому в C++ по умолчанию все поля и методы объекта имеют частный доступ, а публичный доступ надо оговаривать отдельно. Поскольку всё, что не разрешено, — запрещено.

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

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

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

Collapse )

Недосети

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

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

2. Мы ей показываем какие-то данные, которые она запоминает — примерно как Эксель в файле.

3. После этого мы, ничего не проверяем, поскольку а что тут можно проверить-то? Если повезёт, то она всё правильно запомнила, а если не повезёт — неправильно.

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

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



Вы все не смогёте

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

От себя добавлю: «а также кунг-фу, карате и множеству других страшных слов».

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

На обучение основам программирования на C# с полного нуля уйдёт месяц–два. А где-то так через год упражнений можно уже идти устраиваться на работу.

Да-да, любому: оно всё такое сложное исключительно в воображении.

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

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

Привычка к смене парадигм

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

Смотрю одну из них и испытываю уже подзабытое чувство: «ни фига се — а что, так тоже было можно?!».

В предыдущий раз такое ощущал при переходе на Scala с Java. При переходе на Java с С++ тоже было, но послабее. Cinema 4d после 3ds Max и Maya тоже как-то не так эффектно ощущалась. Разве что, первый взгляд на скульптинг и ZBrush вызвал такой же восторг. Несколько, впрочем, смазанный инфернальным интерфейсом ЗиБраша.

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

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

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

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

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

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

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



doc-файл

Программирование и размерности

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

На самом деле, конечно, обычно не спрашиваете — это я сам себя за вас риторически спросил, но всё равно объясню.

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

Однако я больше скажу. Хрен с ним, с умножением и порядком множителей, давайте задумаемся о сложении.

Помните, отличное школьный пример про размерные операции со сложением? Ну, вот этот, замечательный, который не только произносился на уроках, но даже вошёл во всевозможные детские книжки и мультики?

«Нельзя складывать яблоки с апельсинами».

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

Collapse )