Web 2.0

Тема в разделе "WASM.HEAP", создана пользователем osrootd, 2 сен 2008.

  1. Johnikum

    Johnikum Member

    Публикаций:
    0
    Регистрация:
    6 июн 2003
    Сообщения:
    97
    UbIvItS
    я шутил
    штука сея очень даже не плоха, страдает реализация в некоторых браузерах
     
  2. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    +100
    IE - ф топку
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    Johnikum
    я подобного оптимизма не разделяю: более/менее сложное взаимодействие с браузером и код уже точи под бравзер, язык нетипизирован. в общем яваскрипт устарело: будущее за системами 3d - векторной графики, но, на первых порах, это будет 2д аля флэш.
     
  4. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Все можно было проще сделать.

    Такие "ОСи" применяют для создания сложных web-ориентированных приложений, в основном в интранете.

    Я делаю так:
    1. Определяю 2 аспекта загрузки
    a) Системные тесты (1)
    b) Создание необходимых объектов (1)
    c) Определение Основной подсистемы (2)
    2. Прохожу тесты, создаю объекты и передаю управление базе.

    Код (Text):
    1.         var display=document.getElementById("display");
    2.         document.getElementById ("dxc").style.background="black";
    3.        
    4.         var HTTPClient;
    5.         var HTTPClientBridge;
    6.         var LoaderCounts=0;
    7.         var LoginForm;
    8.         var ClientMain;
    9.        
    10. display.style.color="white";
    11. display.style.background="black";
    12.  
    13. function addHT(re){
    14. display.innerHTML+=re;
    15. }
    16.  
    17. addHT("<b>SilentOS v0.1</b>");
    18. addHT("<br /><br /><b>Определение отсутствия InternetExplorer... </b>");
    19. var ua = navigator.userAgent.toLowerCase();
    20.     var isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1);
    21.   if (isIE){
    22.   addHT("&nbsp;<font color='red'>[ IE ]</font>");
    23.   addHT("<br />Данная система работает только с открытыми продуктами");
    24.   }else{
    25.   addHT("&nbsp;<font color='lime'>[ Отсутствует ]</font>");
    26.   nextBoot();
    27.   }
    28.  
    29.   function nextBoot(){
    30.   addHT("<br /><b>Создание компонента для обмена данными по HTTP протоколу...</b>");
    31.   HTTPClient = document.createElement ("iframe");
    32.   HTTPClient.id="HTTPClient";
    33.   display.appendChild(HTTPClient);
    34.   HTTPClientBridge = document.createElement ("form");
    35.   HTTPClientBridge.target="HTTPClient";
    36.   HTTPClient.style.visibility="hidden";
    37.   HTTPClientBridge.style.visibility="hidden";
    38.   display.appendChild (HTTPClientBridge);
    39.     HTTPClientBridge.style.width="0";
    40.   HTTPClient.style.width="0";
    41.   HTTPClient.style.position="absolute";
    42.   HTTPClientBridge.style.position="absolute";
    43.   addHT("<b>[ Сделано ]");
    44.   addHT("<br /><br /><b>Загрузка основной подсистемы...</b>");
    45.   continueBoot();
    46.     }
    47. ...
    В ContinueBoot создается объект Console, куда копируется содержимое display, затем display уничтожается, устанавливаются шрифты, загружаются изображения (массив), создаются механизмы обмена данными между клиентом и сервером (функции работы с файламми, БД, сокеты и тп), создаются виджеты.
    Это все читается из архива SilentKernel.zip.
    После распаковки SilentKernel определяется формат запроса. Это бинарные данные следующего вида
    Заголовок - 6байт
    Версия 4байта
    Размер структуры импорта 8байт
    далее - Структура импорта
    id - 4 байта
    addr - 4 байта
    nextAddr - 4байта
    После структуры - секция выполнения. Там разные команды реализуются в виде очереди вызовов.

    Это моя альтернатива XML-RPC
    Все запросы именованные, любой можно выполнить из консоли (display)
    Рабочая область - это запущенный запрос Main
     
  5. z_x_spectrum

    z_x_spectrum New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2007
    Сообщения:
    145
    osrootd
    это все в браузере? круто...

    я так понимаю, эта система не работает с самым популярным браузером?
     
  6. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    z_x_spectrum
    Нет.
    Разработчики IE пусть идут и читают стандарт DOM
    W3C им в помощь.
    Блин, ну все браузеры как браузеры, IE выпендрился как мог.
     
  7. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Тут смыл:
    Есть ядро. Оно на сервере. Оно умеет (пока):
    - Работать с ФС
    - Работать с сокетами
    - Работать с БД.

    Есть клиент. Клиент умеет общаться с ядром. Причем, способ общения не очень важен. Ядро принимает двоичные данные (номер ф-ции, параметры, callback).
    Можно по HTTP протоколу. Callback - это у клиента: то, куда ядро запишет результат работы ф-ции.
    Общаться с ядром можно только через callback и больше никак. Однако, я щас думаю над форматом запроса, который бы позволял программировать некоторые функции ядра с клинтской машины (я думаю, все представляют как это). Только типы будут уже другие и функции тоже.
    Завтра как раз тестирование СДО (документооборот) на базе SilentOS.
    Ядро генерирует в любом случае следующий код:

    window.parent.[имя_callback_функции](список_параметров)

    вот пример проверки пользователя и пароля (Все предельно просто ):
    Код (Text):
    1. //callback
    2.      var DL;  
    3.      var LFD = document.getElementById("LFD");
    4. //Ядро пишет false или true в параметр lg_state ф-ции login
    5.     function login(lg_state){
    6.     if (l){
    7. Main.setLogged(true);
    8. LoginForm.setEnabled(false);
    9.   mf.removeChild(NoLogin);
    10. LFD.style.visibility="hidden";
    11. LoadContent();
    12.    }else{
    13. alert ("Неправильный ввод");
    14.    }
    15.     }
    16.  
    17. //Вызов авторизации
    18. function doLogin(){
    19.    
    20.     xform.method="POST";
    21.     xform.action="login";
    22.     var l = document.createElement("input");
    23.     l.type="hidden";
    24.     l.name="l";
    25.     l.value=LoginForm.UserLogin;
    26.    
    27.     var pp = document.createElement("input");
    28.     pp.type="hidden";
    29.     pp.name="p";
    30.     pp.value=LoginForm.UserPassword;
    31.    
    32.     xform.appendChild(pp);
    33.     xform.appendChild(l);
    34.  __syscall(91,xform);
    35.  
    36.     xform.removeChild(pp);
    37.     xform.removeChild(l);
    38.     }
    doLogin динамически создает форму с полями l и p
    __syscall - вызывает функцию 91 (УпаковкаИОтправка)
    ядро принимает l и p:
    Код (Text):
    1.  LOGIN = request.getParameter("l");
    2.        PASSWORD = request.getParameter("p");
    3.    
    4.        
    5.         dbproc dbp = new dbproc ("SELECT * FROM users WHERE login=\""+LOGIN+"\" and password=\""+PASSWORD+"\";");
    6.          ResultSet RS = dbp.executeAndGet();
    7.          try {      
    8.    
    9.          
    10.                if (RS.next()){
    11.                out.println("<script>" +
    12.         "window.parent.login(true);" +
    13.         "</script>");
    14.             }else{
    15.                 out.println("<script>" +
    16.         "window.parent.login(false);" +
    17.         "</script>");
    18.             }    
    19.                    
    20.         } catch (Exception ex) {
    21.        }
    22.    
    23.  
    24.         out.close();
    Всего-то делов.
    Ajax тут нет, но страница не перезагружается. Вместо XMLHttpRequest используется скрытый фрейм.
     
  8. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    А вот вы говорите, что будущее за 3D.

    Интересно, а будет ли иметь хоть какую-нибудь популярность проект сайта на OpenGL?

    Это ведь реально! Но тут размер страницы будет как минимум метр.
    И плагин. Он 1 раз качается, но займет: 24+7 мегабайт
    24 - это или BlackBox или IcedTea, 7 - сама OpenGL
    Но зато эффекты...
     
  9. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Это там опять джава мерзкая используется?
     
  10. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    Ну давай на ассемблере плагин NS пиши!
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Есть 3д под флэш. Не помню как называется. Быстродействие терпимое, размеры тоже.
     
  12. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    3D под флэш пока убогое, чисто самопальные движки наподобие alternativa3d. И внедрять полное аппаратное 3d во флэше вряд ли будут (не в ближайшее время точно), хотя в 10 версии уже получше с этим делом. Все упирается в кроссплатформенность.
     
  13. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    keYMax
    Ну так кто спорит. В кроссплатформенность, в кроссброузерность, в кроссбоузерверсийность итд. Имхо эту болезнь веба в лоб не преодолеть. Кросс пытаются сделать уже давно (>10 лет), но все попытки накрываются медным тазом, тк выходит новая версия или новый поп броузер и на ровном месте выростает куча глюков. Жаба - не выход, иначе за >10 лет активной рекламы распространилась бы больше.
     
  14. slavanap

    slavanap Вячеслав

    Публикаций:
    0
    Регистрация:
    10 сен 2008
    Сообщения:
    300
    Адрес:
    Смоленск, Россия
    По-моему, будущее в грамотно написанном ActiveX.
    Еще плюс ASP можно на серваке юзать, жаль немногие хостинги сию вещь добровольно предоставят, поэтому, если и создавать перспективный сайт, то на своем компе с выходом в инет.
     
  15. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    slavanap
    Все это старые и очень старые технологии. Ихнее будущее - настоящее настоящее. Перечислите на бумажке их текущие временные недостатки и неудобства. И вы получите список их абсолютно непреодолимых ограничений.
    Наиболее интересна идея у жабы. Но только идея, да и то не полностью. Также интересно, что делают процы с аппаратной жабой. Но тк разрабы больше внимания уделили фронтендовой части - имхо, жаба глухая ветка.
     
  16. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    У нее второе дыхание открылось с проектом java.net

    А глухая она из-за коммерции. Из-за флеша. Флеш весит 7 метров. Java >24.
    Флеш удобней, на нем быстрее писать. Можно рисовать. Java сложнее но возможностей в 100 раз больше.
    Java нет для x64
    Java.net есть для x64, но нет для Windows:) Скоро будет.
    На флеш давит Microsoft. Помогает развиваться. Java.net крышуется OpenSource, которое красиво отобрало коммерческую лицензию у SUN.
    И еще 1 аспект. Всем тварям нужна скорость разработки. Флеш - нарисовал баннер и готово (+скрипт). В Java надо знать геометрию, арифметику, алгоритмы, буферизацию, устройства вывода графики ( метод getGraphicsDevice() ) и прочую программерскую утварь.
    Java3D - не то что надо. Это просто набор алгоритмов для работы с тремя измерениями. JOGL - OpenGL с Java. Вот это стоит поюзать.
     
  17. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
  18. keYMax

    keYMax New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2003
    Сообщения:
    276
    Адрес:
    Новоуральск
    Ага, и так уже покусала. Причем чем дальше топает тем более неповоротливей становится. Вот firebug в нем весчь, это да.
     
  19. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    osrootd
    сравнение весьма левое: у флэша нет того богатства либ, что в явике.
    опять же неверно: флэш даёт выбор в разработки - "мануальная терапия" либо же программная реализация, но во втором случае нужно тоже, что и в явике:
    насчёт того, что ie убог тоже не соглашусь: делаю сейчас сайт с флэшем, externalinterface.call нормально пашет в разных бравзерах и в осле тоже, а вот с оперой упёртость какая -то - пахать нормально не хочет.
     
  20. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    osrootd
    4 вынь only? Какое-же это второе дыхание? Выни от робингуда скоро пропадут.