Home
Sergey Dmitriev's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 11 most recent journal entries recorded in Sergey Dmitriev's LiveJournal:

    Wednesday, September 14th, 2005
    11:41 am
    PDC - keynote
    Вчера был на кейноте на PDC - это такая микрософтовская конференция разработчиков (мы там показываем свои продукты - Resharper и dotTrace)
    Вначале там выступал Билл Гейтс - особенно интересного ничего не говорил, кроме общих слов о прогрессе технологий. Зато потом разный народ стал показывать что нового будет в Висте и новом оффисе-12. Ну, Виста, действительно совсем похожа на последний Мак ОС - все анимировано, полупрозрачно и везде есть поле поиска. А вот в новом Excel и Word у них вместо главного меню+тулбара - будет нечто прикольное.
    Интересно, что очень много говорилось про поддержку RSS - как в новом эксплорере так и в аутлуке.

    Затем показывали что нового будет предложено программистам.
    Andrew Hejlsberg показал будущие фичи C# - возможность писать структурированные запросы к любым данным
    - и к коллекциям, и к базам данных. По сути - это выглядит как SQL, прямо встроенный в язык C#. Мне это особенно интересно, поскольку похожую функциональность под названием "collections language" мы разрабатываем в проекте MPS.
    Была продемонстрирована также поддержка AJAX в будущей ASP.NET. Фактически без особого труда можно будет писать WEB страницы делающие частичный reload.
    Monday, August 29th, 2005
    10:32 pm
    Секс и эволюция
    Читаю книжку Мэта Ридли "Красная Королева" (The Red Queen: Sex and the Evolution of Human Nature).
    Книжка обещает быть очень интересной, судя первым трем главам.
    Эти главы посвящены вопросу: "Why sex?" - а именно, почему в процессе эволюции появилось разделение полов.
    Дело в том что на первый взгляд бесполое размножение намного эффективней полового, и если когда-то в результате мутации возникло разделение полов, то потомки таких двуполых существ вроде не смогли бы выдержать конкуренцию с однополыми сородичами, которые могут размножаться намного быстрее - потому что тогда любая особь - самка и ей не нужен самец для воспроизводства. Однако же в большинстве высокоразвитых видов размножение идет половым путем.
    Автор рассказывает об истории различных попыток ответа на этот вопрос.

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

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

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

    Однако, согласно книге, выиграла гипотеза 4 - "The Red Queen" читать дальше... )

    Current Mood: curious
    Sunday, December 26th, 2004
    10:34 pm
    "Бессмертная клетка"
    Прочитал вот книжку "The Immortal Cell" by Michael West (на английском языке). Это весьма увлекательное описание того, что происходит сейчас в биологии. Вообще, похоже что сейчас в разгаре революция в понимании того, что такое жизнь. Большинство знаний о том, какие механизмы лежат в основе функционирования живых организмов появилось в последние 10-20 лет. Собственно, эта книжка посвящена исследованим механизмов старения на клеточном уровне.
    Автор книги сам непосредственно принимал участие в этих исследованиях как в исследовательских институтах так и в двух собственных фирмах – Geron и Advanced Cell Technology.

    Наиболее интересные открытия и достижения, о которых рассказано в книге:
    Клетки в организме человека делятся на две категории – смертные и бессмертные.
    К бессмертным клеткам относятся Germ-line клетки (яйцеклетки), стволовые клетки, раковые клетки. Смертными же являются почти все остальные клетки из которых построен наш организм.  То что такая смертная клетка перестает делиться после фиксированного числа делений и умирает - запрограммировано в ней самой.
    Было найдено как минимум одно место где находится счетчик, уменьшающийся с каждым делением клетки – это концы хромосом, где находится последовательность так называемых теломеров. Их количество уменьшается после каждого деления, если в клетке не присутствует специальный белок – теломераза – который может удлинять теломеры обратно. Так вот: в бессмертных клетках этот белок вырабатывается, а в смертных – нет.
    Понимание механизма старения клетки позволяет найти и способы борьбы с ним, путем выращивания более молодых клеток и замены ими устаревших. Один способ описан в книге и основан на технике клонирования. Берется чья-либо яйцеклетка и в нее помещается ядро клетки взятой у пациента. Затем после нескольких делений из яйцеклетки выращивается зародыш, состоящий из сотен стволовых клеток (stem cells) – а уже из этих клеток можно вырастить ткани любого органа пациeнта.
    Read more... )
    Tuesday, November 16th, 2004
    1:15 pm
    Новый подход к программированию - статья
    Мы только что сделали первый выпуск журнала "onBoard" и там размещена моя статья о "языково-ориентированном программировании" (LOP). В этой статье излагаются основные принципы LOP и также кратко описывается система MPS, реализующая этот подход.
    Thursday, July 8th, 2004
    11:48 am
    Новый подход к программированию - интервью
    Когда я был на JavaOne на прошлой неделе то дал интервью Джеку Хэррингтону - он автор книжки "Code Generation in Action", а также он поддерживает web-site посвященный генерации кода - http://www.codegeneration.net
    В этом интервью я немного рассказал о нашем новом продукте Fabrique, но в основном я рассказывал о новом подходе к программированию. Он кстати уже имеет название - Language Oriented Programming.
    Thursday, November 27th, 2003
    8:54 pm
    Новый подход к программированию - теперь можно скачать!
    Для того чтобы все лучше понимали то о чем я писал ранее, я решил начать выкладывать программу на свой сайт.
    Пока это, конечно, очень ранний прототип, поэтому в реальной работе его еще нельзя использовать (это впереди!).
    Однако он вполне подходит для иллюстрации излагаемых здесь идей.
    Надо заметить, что как и любая программа на свете эта программа является объектом интеллектуальной собственности, и права на нее принадлежат компании JetBrains, что и изложено в файле MPS_license.txt, лежащем в корневом каталоге. Ну а саму программу скачать можно здесь: http://www.jetbrains.com/mps
    Вот, а теперь я готов ответить на любые вопросы и комментарии.

    Продолжение следует...

    Current Mood: creative
    Sunday, September 14th, 2003
    8:53 pm
    Новый подход к программированию - продолжение
    Прочитав комментарии на предыдущее мое сообщение, я решил не публиковать программу до тех пор пока на ней нельзя будет показать явно пользу от нового подхода. А это означает, что в ней должен быть редактор графа программы, первый вариант которого я сейчас и пишу.
    Это конечно же только первый шаг в написании удобного редактора графа.

    До написания редактора я строил граф в виде набора вызовов Java методов.
    Выглядело это все очень громоздко и нечитабельно. (В моем примере такой код занял раз в пять больше места, чем сам код моделируемого примера программы)
    Кстати, такая попытка набивать граф в виде java кода показала еще один пример неэффективности универсального императивного языка для описания на нем данных. XML, представлялся лучшим вариантом, поскольку его основная цель – как раз описание данных, Однако, XML тоже весьма неэкономный язык.
    (Например, попробуйте представить на XML те же арифметические выражения или SQL запросы.) Причина здесь – в универсальности языка XML. На самом деле XML – это метаязык, в котором грамматика задается схемой или DTD.

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

    Кратко – о редакторе. В общем речь идет о том чтобы иметь во первых, редактор любого узла графа. Я представляю этот редактор как набор прямоугольных ячеек, собранных в некое подобие таблицы. Каждая ячейка либо является некоторй константой, либо соответствует какому-нибудь свойству соответствующего семантического типа, либо линку на другой узел. Ячейка - редактор линка в свою очередь состоит либо из редактора ссылки на его целевой узел, либо из самого редактора целевого узла (который, по рекурсии, имеет такую же структуру).
    Для каждого семантического типа задается раскладка (layout) его ячеек разных типов, а также информация, какие линки иметь в виде ссылок, а какие – в виде встроенных (in place) редакторов.
    Во время редактирования одна из ячеек является текущей (выделенной). Ячейку можно выделить путем простой навигации по таблице с помощью клавиатуры. После выделения ячейки ее содержимое редактируется с клавиатуры и/или происходит выбор из списка возможных значений. Из любого места можно специальной клавишей добавить новый линк заданного типа.

    Продолжение следует...
    Sunday, August 31st, 2003
    4:52 pm
    Новый подход к программированию.
    При современных способах программирования есть такая проблема – очень трудно описать компьютеру напрямую то что от него хочется. Каждый раз приходится переводить то описание задачи и ее решения, которое сидит а голове, на какой-нибудь язык программирования. При этом, к сожалению, многое из смысла задачи теряется.
    Возьмем какой-нибудь ООП язык программирования – например Java. Здесь у нас в распоряжении пара десятков языковых конструкций – класс, метод, цикл и т.д.
    Основная возможность по расширению языка состоит в определении новых классов. Для такого языка все классы в принципе на одно лицо – это просто набор методов и полей, ну еще ссылка на класс-родитель и на набор интерфейсов.

    Чуть более подробно про эти проблемы см. What is bad about OOP

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

    Опишем новый подход:

    Любая программа представляет из себя граф, состоящий, конечно, из узлов и ребер.
    Этот граф задается сначала на этапе кодирования, затем может меняться на этапе компиляции, а также и во время исполнения программы.
    Read more... )
    Saturday, August 23rd, 2003
    4:06 am
    Отпуск в UK
    Позавчера закончились 2 недели отпуска в Великобритании.
    В общем подробно рассказывать я не буду, а перечислю только то что произвело наибольшее впечатление:
    1. Легкость получения английской визы в Праге - достаточно было только один раз прийти в консульство - и через час виза была в паспорте.
    2. Оксфорд и Кембридж. Как я жалею что там не учился!
    3. Природа в северной Шотландии - в Highland-е. Ну люблю я когда и горы и реки и озера и морские заливы - все вместе!
    4. Эдинбург, особенно его замок на скале.
    5. Книжная лавка со старыми научными книгами в Bath-e. (Bath - это такой городок в Англии)
    6. Английское раздолбайство (Хотя в общем то народ очень приятный конечно).
    7. Такси - кэбы.
    8. Музей восковых фигур в Лондоне. (Ну и вообще сам факт что я оказался наконец в городе про который столько учил английских текстов в школе)
    9. Колесо обозрения, торчащее в самом центре Лондона.
    10. Факт почти полного непонимания мною английского употребляемого за пределами Лондона.
    1:53 am
    Блин...
    Второй день сижу дома и мучаюсь простудой - и это в разгаре лета! Видно организм все-таки не выдержал двухнедельных гонок на поездах по Соединенному Королевству - это у нас отпуск такой был. Впрочем, отпуск то вроде удался, новых впечатлений достаточно да и про работу практически не думал - только в последние дни снится стала.

    Current Mood: sick
    1:06 am
    Тест
    Всем привет! Это тест
My Website   About LiveJournal.com