Умный дом: как запрограммировать зеркало

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

cybertecture-mirror[1]

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

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

К сожалению существующие операционные системы не в силах поддерживать «умный дом». Возможно опять придётся как то менять линукс. Нужны программы и операционные системы нового типа, как например проигрыватель KMPLayer. Пусть он сырой и с большим количеством багов, но тем не менее более универсален, чем остальные. Включает в себя все кодеки, содержит излишние данные(которые могут быть в нужный момент совсем не излишними) и весь процесс проигрывания написан вручную. И скачать KMPlayer RUS для Windows 7 можно с десятков сайтов Интернета.

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

Delphi 7 скачать. Borland Delphi 7 rus, полная версия

Не смотря на то, что Delphi продолжает развиваться, лучшая версия для учебы и разработки визуальных Windows-приложений остается Delphi 7, выпущенная в 2002 году.

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

Скачать Borland Delphi 7 rus

Скачать Делфи 7 сейчас не представляет труда, совсем недавно выпущена полная версия продукта из которой выкинуто все лишнее. Тем не мене это именно ПОЛНАЯ ВЕРСИЯ продукта. Сообщество Delphi в России, которое и подготовило эту сборку, всячески рекомендует именно её. Она собрана с учетом современных особенностей техники и операционных систем. Проверена на Windows 7.

Я также использовал эту сборку от сообщества, качается быстро и ставится без проблем. Поэтому рекомендую скачать borland delphi 7 rus с ссылки, которую я откопал на закрытом форуме профессионалов VCL Delphi.

Пожалуй эту скачать Borland Delphi 7 я порекомендую новичкам или учащимся. С седьмой версией делфи можно легко войти в тему визуального или объектно-ориентированного программирования. В ней нет таких наворотов, как в Delphi XE, когда после входа уже кружится голова от количества панелек и компонентов, но тем не менее весь необходимый функционал есть! Если начинать обучение, то Delphi 7 сейчас намного актуальнее, чем turbo pascal. И его можно скачать совершенно бесплатно, кликнув по ссылке. Для этой версии не требуется ни crack ни ключ, всё ставится с первого раза. Русификатор для Delphi 7 также не требуется, он изначально русский(русская версия Делфи 7). Отличий от версии enterprise минимальны(хотя та версия весит 700 мб, а эта в 10 раз меньше).

Мини-FAQ

- Инсталлятор требует регистрации по телефону.  Что делать?

- Регистрируйтесь по телефону, это условие сообщества

- Мой антивирус ругается на инсталлятор. Что делать? Зачем программа упакована в двойной zip-архив?

- Возможно он ругается на программу delphi distiller (поэтому мы используем двойной зип), которая требуется для нормальной установки и настройки программы. Отключите антивирус на время установки программы.

- Программа занимает подозиртельно мало. Не ограничена ли она в функциональности?

- Это ПОЛНАЯ версия программы Borland Delphi 7! Из неё лишь исключены нестандартные компоненты, которые сейчас уже не актуальны. Все компоненты, которые нужны для полноценной разработки, оставлены. Вы можете без всяких сомнений качать именно эту версию!

Ссылка на загрузку: Borland Delphi 7 (70 мб) обновлено  25.06.2014

Рецензия на книгу Скота Беркун «Искусство управления IT-проектами».

Эту книгу я нашел читая твитер Петра Диденко (это интересный Твиттер, советую).
Кому стоит прочитать книгу?
Большим и малым боссам.
Зачем?
Чтобы иметь, хотя бы, приблизительное представление о том, чем к черту там те ребята, которым вы поручили создать новую услугу / продукт / товар / сервис, занимаются. И как на самом деле необходимо ставить перед ними задачи и отдавать поручения, чтобы результаты их работы и ваша цель максимально совпадали.

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

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

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

Время в IndieSpace

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

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

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

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

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

Кстати, начало времен для Системы будет запуск программы на выполнение. Для организмов это будет непостижимо. Потому что до этого времени ничего не было, не их пространства, не времени. И они будут пытаться открыть, как же был создан их мир, и строить теории… ну это я уже так, гоню. До такого, если и дойдет, то через много много лет. Будем для кого-то богами:)

IndieSpace — виртуальное двумерное пространство.

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

Второе. Чтобы попробовать разные варианты создания цифровой жизни на нужно пространство, в которое мы поместим первоначальный «суп». Это будет виртуальное двумерное пространство IndieSpace. Я надеюсь, что нам вполне хватит двух плоскостей. По сути не важно сколько будет плоскостей. Можно сделать и два, а потом добавить третье. А потом и четвертое. Здорово будет проверить как себя будет вести цифровое живое простейшее существо, если расширить пространство плоскостью. Или двумя плоскостями. Чтобы вы сделали, если бы вам открыли ещё одну плоскость? Я бы наверное либо принял это, либо сошел с ума.

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

Про законы IndieSpace поговорим в следущем посте. Сначала нужно рассмотреть закон времени.

Цифровая ДНК. Возможно ли запрограммировать цифровую жизнь.

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

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

В фильме «Трон: Наследие» идет речь об цифровой жизнь, о существах, которые там названы изоморфами. Говорится, что жизнь сама найдет себе дорогу. Нужно лишь создать ей условия. Я загрузилотрывок из блурея «Трон:Наследие» в Full HD. Посмотрите, там ещё представлен способ трехмерного программирования, о котором я напишу в будущих статьях.

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

Блок-схема будущего

Встретил такую формулировку: «сожалению многие школьные и вузовские преподователи не осознают, что блок-схемы — это пережиток дострукторной эпохи в программировании (FORTRAN, BASIC). И что программа, записанная на языке структурного программирования (PASCAL, C) описывает себя как нильзя лучше (это одна из важных особенностей этих ЯП). Как итог такого недопонимания — вас заставляют чертить эти «чёртовы» блок-схемы.»

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

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

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

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

Запрограммировать исскуственный разум легко. Часть 3. Информация, её приоритет, изменение.

Теперь главные сложности.

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

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

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

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

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

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

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

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

Итак, чему должна научится система…

Во-первых, собирать информацию в свою распределенную базу данных, состоящую из миллиона баз данных. Формировать из данных сущности или кластеры.

Строить свой приоритет ценностей на основе личного опыта, и, обрабатывать новую информацию через призму этого опыта.

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

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

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

Запрограммировать исскуственный разум легко. Часть 2. Копируем себя.

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

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

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

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

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

Запрограммировать исскуственный разум легко. Часть 1

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

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

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

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

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

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

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

Любая программа в любой момент может порвать связь с другой программой без объяснения причин.

В общем эта такая социальная сеть программ, которые отдают друг другу информацию. Это основа искусственного интеллекта.

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

——-

Апрель 2017
Пн Вт Ср Чт Пт Сб Вс
« Фев    
 12
3456789
10111213141516
17181920212223
24252627282930
Посетители
Яндекс.Метрика