Рубрика «сложные системы»

"Между стимулом и реакцией есть пространство. В этом пространстве — наша сила выбирать наш ответ. В нашем ответе лежит наш рост и наша свобода."

Виктор Франкл

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

Читать полностью »

Привет! Готовы к небольшому философскому экскурсу с щепоткой безумия? Пристегните ремни, мы отправляемся в путешествие от чинной диалектики к дикому хаосу!

Диалектика: Старушка на пенсии

Помните диалектику? Эту почтенную даму, которая учила нас, что всё в мире развивается по схеме "тезис-антитезис-синтез"? Ну, кажется, ей пора на заслуженный отдых. Представьте, что вы пытаетесь объяснить биткоин через диалектику. Тезис: "Это будущее финансов!" Антитезис: "Это пузырь!" Синтез: "Это... э-э... нечто, что заставляет нас покупать видеокарты по цене почки?" Что-то тут не сходится, правда?

Читать полностью »

В этой корзине тысячи разноцветных шариков, каждый своего оттенка. Представьте? Все цвета зеленого в лесу, ни одного одинакового листа. Пульсирующая материя, которая за меньше чем 12 часов превращает твердые стебли растений в собственную биомассу. Скорость превращения в нашем толстом кишечнике гигантская, мы способны производить больше килограмма бактериальной массы в день. За два три дня внутри нас рождается больше новых клеток чем клеток в нашем собственном теле. 

Читать полностью »

Привет! Представляю вашему вниманию перевод статьи "Framework Vs. Platform What’s The Difference?" автора G. Harris.

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

Разница между почти правильным словом и правильным словом действительно много значит. Это разница между светлячком (lightning bug) и молнией (lightning).

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

Я хотел бы предложить одно из возможных определений по аналогии.

Читать полностью »

Я программирую на PHP. И немножко на JS. Когда-то я программировал на Java, ещё раньше — на LotusScript. Попробовал на вкус python и dart. Basic, Fortran, Pascal, Prolog, VisualBasic, С++/С, perl — на всём этом я тоже изображал что-то исполняемое. Языки программирования меня интересуют с точки зрения создания компьютерных приложений. Web-приложений. Сложных web-приложений. Таких, которые пишут незнакомые друг с другом люди. Точнее, лично незнакомые — они знают друг друга по подписям в коммитах в общий репозиторий и по nickname’ам в баг-трекерах. Я не слишком умён, чтобы программировать на С/С++ для различных ОС, и поэтому я программирую на PHP для Magento.

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

Читать полностью »

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

Некоторые сложности обнаруживаются в ленивых языках:

fib = 1:1:(zipWith (+) fib (tail fib))

Здесь fib присутствует и в левой и в правой части, то есть мы получаем полноценное уравнение, решением которого будет бесконечная последовательность чисел Фибоначчи. Так как на бесконечных последовательностях естественным образом определяется топология, Haskell может решить это уравнение методом проcтых итераций (через оператор неподвижной точки).

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

Но есть язык, в котором уравнения являются важнейшей частью — это Modelica.

model Point
 Real x,y;
equation
end Point;

model Line
 parameter Real len;
 Point p1,p2;
equation
 len = (p1.x-p2.x)^2 + (p1.y-p2.y)^2;
end Line;

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

(К сожалению, source такого языка не знает, а вставить раскрашенный pygment-ом html не получается.)
Читать полностью »

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

Предпосылки: автоматизация, создание искусственных имплантов, нейронные сети, дополненная реальность, ряд статей и комментариев на Хабре, Cnet, Popular Science, MIT technological review и ряде других подобных новостных порталах. Из последних — Human Revolution на Хабре, что ещё раз натолкнуло на необходимость публикации.

Последствия: “Мир Полудня”, “Мир Академии” (Фонда/Основания), “Мир Золотого Кольца”

Альтернатива: “Матрица”, “Терминатор”, “1984”, “Мир Мы”, “Мир Нейроманта”

Так что же нас всё-таки ожидает? (Кому лень читать — в качестве P.P.S. создано краткое резюме)

Перспективы развития: Сингулярность и «Разумное Управление»

Читать полностью »

Вместо предисловия

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

Много полей ввода для ввода email адреса

Сложные методы авторизации
На форме авторизации находится некоторое число полей ввода привязанных к сетке.
Ключ для входа — это связка: email + ключ.
Например:
pupkin@mail.ru
F2C1

Логин записываем в ячейку F2, адрес почтового сервера с собакой — в ячейку C1.
Читать полностью »

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

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

Читать полностью »

Грязное программирование с чистой душой: разработка эвристических систем (часть 1)Химики любят говорить, что химия занимается исследованием грязных веществ чистыми методами, физика — чистых веществ грязными методами, а физическая химия, дескать, исследует грязные вещества грязными методами. В областях, традиционно относящихся к искусственному интеллекту или смежных с ними (распознавание образов, решение NP-трудных задач, обработка текста и т.д.), большинство задач являются грязными. Т.е. плохо поддающимися формальному описанию и не имеющими четких критериев правильности решения. Не знаю, как выкручиваются химики, а программистам редко удается порешать такие задачи, не запачкавшись. Программирование грязных задач тоже грязно, и здесь грязное — не значит плохое. Эта статья не о том, как сохранить чистоту и стерильность. Эта статья о том, как, вооружившись ломом мужеством и терпением, погрузиться в глубинные литосферные слои и выжить.

Итак, предположим, что вам необходимо разработать систему, демонстрирующую сложное поведение (например, переводящую бабушек через дороги, или, в порядке экзотики, распознающую текст на изображении). Если вам кажется, что задача недостаточно грязная, попытайтесь написать работающую систему, улучшить качество ее работы, насколько это возможно, а затем улучшить еще сильнее. Желательно, если при этом не ухудшится быстродействие, идеально — если улучшится.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js