| (Эта тема расположена в архиве и закрыта для обсуждения.) Версия для печати (стр. 1) | |
| Конференция: | Конференция iXBT.com (http://forum.ixbt.com/) |
| Форум: | Программирование (http://forum.ixbt.com/?id=26) |
| URL: | http://forum.ixbt.com/topic.cgi?id=26:39751 |
| Vladimir Rybinkin, 08.07.2009 15:41 |
Прошу прощения за название темы - плохо представляю, как ее назвать. Суть: хочется обсудить некоторые нюансы идеологии программирования софта для работы на компьютере клиента (именно идеологии, а не собственно программирования, с самым общим кодом принципиальных моментов). Крайне желательно без "наворотов" типа ActiveX или там DHTML, т.е. примерно с возможностями JS образца IE3). Основная задача - разгрузить серверное ПО (все, что можно делать на клиенте, нужно делать на клиенте). Иными словами, что в принципе можно выжать из JS. Я очень мало (и давно) программировал для броузера, но некоторые наработки остались. Общие впечатления от тех времен: большинство возможностей JS на фиг не нужны, но именно они почему-то чаще всего встречаются на веб-страницах Примерный перечень задач (тестовые): - перепись кадра из себя и из дочернего кадра (сына, внука). - установка (удаление, переименование) объектов и их полей. - создание поля со ССЫЛКОЙ на другой объект (а не КОПИЕЙ самого объекта). - итерационный обмен с сервером(ами) из разных фреймов, обмен данными между ними. - диалоговая настройка параметров страницы (количество и расположение фреймов, палитра). - вывод "вражьей" (запрошенной из Инета) страницы в своем формате. Собссно, нужен доступ к тексту страницы (фрейма) как к строке (загоняем в невидимый фрейм, парсим, и выводим "как надо"). - установка (удаление, переименование) обработчиков событий клавы и мыши. - генерация событий (нажатие клавиш на клавиатуре или мыши, перемещение мыши) вместо юзера. - модификация защищенных от записи полей объектов. Вот что навскидку получилось. Что упустил, что лишнего нагородил, где наврал? |
| 1. arsa, 08.07.2009 16:48 |
Vladimir Rybinkin хм... ну с IE3 вы загнули. зачем изобратать колесо? Если вам нужно нормально писать на клиенте в javascript, то используйте библиотеки. То, что вы написали это действительно уровень примерно 1999-го года. И вообще, в принципе не очень понятно что вы написали (что значит "перепись кадра" например). Поставьте нормально задачу. В общем есть два уровня библиотек: jQuery (и подобные) - обычные операции с элементами страницы, а так же с сетью ExtJS, jQuery UI (и подобные) - для визуальных элементов |
| 2. Vladimir Rybinkin, 09.07.2009 10:42 |
arsa цитата:Чтобы не плодить лишние сущности. цитата:С удовольствием. Какие библиотеки реализуют указанное? цитата:Ха-ха-ха! Тем более. цитата:Ну, здрассьте! Так что ж Вы про библиотеки? Переписать - значит изменить текст. Скажем, выдать в иной палитре, с иными расположением фреймов. Так как получить доступ к тексту страницы, как к строке? |
| 3. arsa, 09.07.2009 16:15 |
ох... так это вы так frame перевели в принципе всё делается через DOM, через document.getElementById , да и в общем остальные вещи что вы написали тоже. честно говоря я и сам не думал что через jQuery будет сильно проще, но однако сильно упрощает. главный в общем момент - фреймы в современных браузерах не нужны - их спокойно заменяют div-ы и динамическое их наполнение через javascript (например jQuery UI Tabs умеют загружать страницы сами). фреймы только усложняют излишне структуру. |
| 4. Skip, 09.07.2009 18:15 |
цитата:Я бы сказал, что требования несовместимы. JS образца IE3 не умеет практически ничего. И уж точно ничего из того, что Вам нужно. Вы вообще себе, похоже, слабо представляете принципы работы клиент-серверных приложений. Если хотите разгрузить сервер - клиент должен быть толстым. А для этого ограничиваться JS более чем десятилетней давности - абсурд. Тут надо писать полноценное приложение. Если хотите клиента в браузере - очень советую проникнуться мыслью, что сервер в этом случае разгрузить не удастся. Когда определитесь, чего хотите - выбирайте архитектуру и будем обсуждать. |
| 5. arsa, 09.07.2009 19:04 |
Вполне реально написать толстого клиента на JS, сам этим занимаюсь (например на ExtJS). Даже можно хранение данных привинтить через Gears/AIR/HTML5 - некоторые демки ExtJS являются законченными приложениями вообще без общения с интернет. Другой вопрос зачем это делать в браузере. На данный момент это создаёт множество проблем, так как всё таки средства разработки нормальных приложений намного более гибкие - в них можно сделать всё что угодно, и есть большой выбор языков, сред и специалистов. Написание сложных больших проектов на javascript на данный момент усложнено. Но всё таки есть класс приложений которые должны быть в "облаке" - я считаю что это практически все приложения, работа которых сводится к вводу данных в формах. Основная мотивация - приложение будет в основном работать через интернет (простота доставки, обновления), и хочется кросс-платформенности. см. google, SaaS и.т.п. |
| 6. Vladimir Rybinkin, 30.07.2009 09:45 |
Еще раз по теме (после вынужденного перерыва): По содержанию предыдущих ответов я пришел к выводу, что меня просто не поняли. Совсем не поняли. Тема мне представляется важной, так что попробуем еще раз. 1. По поводу "использования библиотек". Согласен, при условии, что для интерпретатора (то бишь JS) библиотеки и есть ТЕКСТЫ функций. Ничто другое меня не интересует, меня интересует ИДЕОЛОГИЯ программирования на JS, т.е. не продукт, а инструмент для его получения. Максимально использующий все возможности языка. 2. IE3 взят сознательно, поскольку это более ранние, более простые, более отлаженные, и даже более важные (по крайней мере, на момент разработки языка) возможности. Именно эти возможности я и хочу в первую очередь "выпотрошить". Использовать же то, что появилось после примерно 1999-го года, по-моему, нужно лишь в случае невозможности простого решения, реализуемого для IE3. Тем более, что фразы типа JS образца IE3 не умеет практически ничего без смеха читать нельзя. Равно как и про абсурдность использования "неполноценного" ПО более чем десятилетней(!) давности. Извините, господа, но для меня подобные фразы свидетельствуют лишь о квалификации автора. И не стоит меня уверять, что с "примерно 1999-го" по примерно 2009 в программировании произошла революция - произошла скорее ДЕГРАДАЦИЯ!. 3. О фреймах: я допускаю, что "фреймы в современных браузерах не нужны", но на слово никому не верю. Если действительно "их спокойно заменяют div-ы", то мне нужно знать, ПОЧЕМУ ИМЕННО фреймы хуже. "Динамическое их наполнение" или "умение загружать страницы" не предлагать - фреймы, по моим данным, тоже прекрасно все это умеют. Кроме того, в моем понимании, фрейм - это: 3.1. HTML-код, интерпретируемый броузером для выдачи юзеру. и/или 3.2. набор функций JS для каких-либо действий на клиенте. и/или 3.3. набор данных, над которыми эти действия выполняются. и/или 3.4. место для хранения HTML-кода, функций и данных (важнейшая вещь!). и/или 3.5. автономно работающий ПРОЦЕСС в рамках единой задачи (окно броузера). Поэтому мне совершенно непонятно: - чем может кого-то не устраивать такая прелесть? - что здесь может быть сложного? - чем это вообще можно заменить (что могут предложить неведомые мне div-ы)? - и, если даже и можно - НА ХРЕНА?! 4. Про серверное ПО, тонкого и толстого клиента. Клиент не просто тонкий, а тончайший - голый броузер. Но должен при необходимости "косить под толстого", подгружая (прозрачно для пользователя) нужные методы, классы, структуры. Серверное ПО разгружается автоматически, поскольку ему не нужно выполнять любые задачи, которые могут быть сделаны на клиенте. Скажем, заниматься оформлением страницы (а это иногда намного больше половины кода). Или фрагментировать выдачу, возложив на клиента итерационные запросы (например, при работе с СУБД). Иными словами, возможность динамически подгружать необходимый инструментарий (и удалять ненужное) снимает проблему "толщины клиента" напрочь. Возражения? 5. JS есть интерпретатор. Более того, у него даже int/float, по слухам, отсутствуют (руки бы оторвал). Т.е. имеем всего-то тип данных STRING, да две группы: ARRAY и OBJECT. Любой метод - тот же STRING. В головном (FRAMESET) кадре храним классы и методы - доступны из любого верхнего. Остальные - перезаписываемые при необходимости (даже если он один) - могут модифицировать базовый инструментарий, при желании иметь свой. Т.е. итерационный обмен с сервером, смена палитры, и прочая Query/UI получаются чуть ли не автоматически. Во всяком случае, ПРОСТО. Ну и на закуску программирование в объектах и событиях под рукой (при наличии совсем малого числа базовых функций, вряд ли более 20). Где я неправ? Теперь даю мои взгляды на идеологию программирования на JS, параллельно приводя в порядок старые эксперименты и проверяя концепции. Типа, поток сознания. Надеюсь, это позволит лучше понять, что я хочу от этой ветки. Мне уже говорили (даже здесь), что JS/IE3 устарелый, беспомощный инструмент. Не могу согласиться, по одной простой причине: там имеется eval, т.е. аналог указателя, со всеми вытекающими. Это же инструмент ЧУДОВИЩНОЙ силы! Если бы не было eval - согласен, язык и был бы как раз тем самым дерьмом, как меня здесь уверяют. Да и я бы не дергался. Но eval-то есть... Ой, мамочки! Завалялся тут у меня набор примеров, как надо писать на JS - старенький, от 2003 года. "The best software you can imagine", так сказать. Чего-то там прыгает, тикает, в Инет лезет, броузер детектирует... Решил я глянуть, как они eval используют. И просто со стула рухнул: на 37 файлов учебных примеров eval не используется НИ РАЗУ!!! Охренеть! Господа! Если и вы ТАКОЙ технологией программирования на JS пользуетесь, то я теперь понимаю, ПОЧЕМУ вы мне ТАК отвечали. Но это же детский сад - прости, Господи! Ау, господа - скажите, что это не так, что вы eval активно используете. Ведь в противном случае мы вообще на разных языках говорим... Тады - ой. Тады "дайте мне eval, и я переверну Землю". Планируемая технология: берем головной кадр (index.htm), ставим туда FRAMESET (на один фрейм). Там по onLoad вешаем функцию инициализации, которая создает на родителе (в том самом index.htm, который и нужен-то исключительно для хранения) базовый набор методов, и переписывает фрейм (сама себя, она больше не нужна) на любой другой (рабочий). Или тоже на FRAMESET, если рабочих кадров больше одного. В любом рабочем кадре повесим на какое-нить событие (тот же onLoad) функцию, которая ИСПОЛЬЗУЕТ этот самый набор. Проверяем - все данные, все методы живы и здоровы. Ура! Теперь из любого кадра можно пополнять, удалять, модифицировать этот набор, т.е. мы автоматически имеем хоть толстого клиента, хоть тощего, динамически худеющего или толстеющего, как нам заблагорассудится. Вешаем нужное количество фреймов (в т.ч. невидимых), раздаем им задания, и наслаждаемся жизнью. Обмен данными - тривиален, мультизадачность - реализуема, настройку всяких там палитр юзеру и отдадим - нехай ковыряется. Что остается? Программирование в объектах и событиях. В объектах у меня уже все работало именно так, как я и хотел бы в идеале (привираю, естественно), в событиях - пока хреновенько. Господа, ну это же сказка! Поработаем малек? Ах ты сволочь, ах ты падла-то вонючая! "Не могу выполнить программу из освобожденного сценария". Переменную могешь, а функцию нет?! Переменную, стало быть ты присваиваешь, а вместо тела функции указатель на нее втихаря лепишь. Тело функции тебе в переменной интерпретировать влом, тебе файл обязательно подавай. И какая, в зопу, разница?! На один кусок ОЗУ мы указатель могем поставить, а на другой нет? Вот паскуда, все настроение испортила! Ах, ну да - тебе ж нужно обеспечить возможность использования встроенных функций по указателю, а это куда важнее. Так, остынем, подумаем. Очевидно, что я был неправ - существующая технология неизмеримо лучше. Итак, судя по всему, переменные "на морде" все-таки хранятся, хоть она и FRAMESET. Стало быть, тексты функций можно залепить именно туда. Упс! А вот этого как раз делать и нельзя - теряется динамика "толщины клиента". Иными словами, фрейм с инструментарием перезаписывать нельзя, и не перезаписывать тоже нельзя. Хоть заводи еще один промежуточный FRAMESET для хранения уже текстов функций (динамического набора и ре-инициализации опирающихся на них методов). М-д-а-а. Грустно. Впрочем, почему бы и нет - ведь это всего лишь неудобства, но не функциональные ограничения. Ладно, допустим - базовых функций кот наплакал (их и храним на морде), а основные методы будут сосредоточены на технологии программирования в объектах - так, собссно, и планировалось. Далее: переменные, представляющие собой тело функции, тоже ведь заводить не запрещается. И, если мы динамически сгенерим страничку, запишем туда содержимое этих переменных, то эта гнида обязана (надеюсь!) посчитать их за настоящие функции. Таким образом, какая-никакая динамика даже по набору функций все же возможна, хоть это и левой ногой правое ухо. Детям, к тому же, помимо собственных текстов, доступны и родительские. Продолжение следует... |
| 7. lvqcl, 30.07.2009 14:14 |
По-моему, эта тема уже для палаты № 26. Хочу комментов dozen'а. |
| 8. Vladimir Rybinkin, 30.07.2009 15:34 |
lvqcl Конечно, конечно Продолжаю "поток сознания": Черт, еще одна неприятность - кажись, удаление объекта по указателю не работает. По технологии "левой ноги", стало быть, нужно сгенерить дочерний фрейм с приказом удалить объект, а затем убить и сам фрейм? Весело... Та-а-ак! А куда же повесить инициализацию на морде, чтобы она сработала до FRAMESET? Инициализацию запустить можно, наскоко я прнимаю, только из BODY, а FRAMESET еще в хидере. Таким образом, ребенок может запуститься раньше, чем завершится инициализация. И помешать этому лично я не вижу никакой возможности. Да, начинаю понимать, ПОЧЕМУ фреймы могут не нравиться - лезут поперед батьки в пекло. И как же мы раньше это обходили? Ах, да - у нас толщина клиента не менялась... Что же делать? Ага! А если флаг поставить? Вот зараза! Флаг ставится, флаг виден, без FRAMESET по окончании инициализации снимается, а вот вместе... видимо, фрейм перехватывает управление, и не дает завершить инициализацию. Господа, а что там вместо onLoad можно предложить? Что-то я слыхивал про передачу фокуса... Ах, нет - все еще хуже: сам факт наличия FRAMESET в хидере уже есть основание "положить" на BODY. Оригинально! Еще раз формулируем задачу: нужен один "вечно живущий" фрейм (я уж буду пока использовать этот термин), предназначенный исключительно для хранения инструментария (методы, классы, тексты основного набора функций). Над ним (вынужденно, поскольку тело функции внутри переменной непригодно для ее вызова) - второй (уже перезаписываемый) фрейм для хранения тел функций переменного состава (толщина клиента). И уже над ними - рабочие фреймы, состав которых определяется конкретной задачей. Вопрос: как это реализовать? Ах, да - до "появления на свет" второго фрейма, первый должен завершить инициализацию. Пока суть да дело, попробуем сосредоточить тела функций на морде, а инициализацию провести из ребенка. Ух ты! Неужто работает? Ребята, а ведь это, кажись, альтернатива! И после перезаписи "толщины клиента" ре-инициализацию тоже можно выполнять из ребенка... В обчем, тьфу-тьфу. Теперь попробуем скроить что-нить читабельное из броузера. Что нам нужно? Пока что заведем три основных объекта: c(CLASSES), d(DATA) и m(METHODS). Извиняюсь за мало прорубаемую нотацию - вся эта кухня у меня предназначена для генератора, а там все подробно излагается. Для броузера же нотация вполне съедобна - ничуть не хуже, чем любая другая (разве что компактнее). Для затравки - перечень раннего "барахла" (просьба уточнять, дополнять, модифицировать). Методы: - анти-eval - закрытие окна (Close/Delete) - открытие окна (Create/Open) - передача фокуса - перечень методов/свойств объекта - получение индекса объекта в массиве - получение значения поля/удаление поля - прорисовка (конструктор) объекта/класса - прорисовка окна/фрейма, перемещение окна - создание класса/объекта по существующему классу Классы: button, checkbox, form, frame, hidden, image, link, option, password, radio, select, table, text, textarea, textbutton Теги: BODY, CSS, END, HEAD, HTML, MAIN, META, SCRIPT, TITLE Что нам нужно из методов-функций? Начальный "джентльменский набор": eval, document.close/write, new Array/Object, indexOf, substring. Плюс парсер для работы в объектах. Из данных - разделитель параметров строки объектов. Из классов... Вау! Пока ваще ничего - эта хреновина уже рисует страницы. Короче говоря, в первом приближении старые наработки восстановлены. Раньше вся эта кухня меняла набор фреймов и палитру, как перчатки, делала итерационные запросы в зависимости от текущих данных и т.д. Теперь аккуратненько все проверим, расставив данные по нужным файлам, и займемся, наконец, классами и методами на объектах. Второй фрейм пока не нужен - затирается. Что-то мне подсказывает, что он вообще не понадобится: объем базовых функций ничтожен (на данный момент - стыдно сказать - 478 байт), и я не вижу решительно никаких поводов для его сколько-нибудь серьезного увеличения. Продолжение следует... Добавление от 31.07.2009 09:23: Ну что молчим? Как там с "изобретением колеса", "номерами палат", "дохлыми" возможностями JS/IE3, "излишне усложненными структурами", "уровенем примерно 1999-го года", "слабыми представлениями принципов работы клиент-серверных приложений", толстыми и тонкими клиентами, "полноценными приложениями", супер-пупер-библиотеками? Что ж вы, черти, приуныли? код:Первый alert генерит ошибку, и прекращает выполнение программы - дескать, "не определен объект pal". Если же его убрать - второй прекрасно работает, т.е. видит не только саму переменную, но и ее поля "внутре" (в данном случае выдает цвет фона). Отлично! Хм. А на хрена нам вообще этот объект? Пущай все палитры в классе и сидят как массив. Не, это уж совсем неприлично. Да и неудобно с индексами. Положим-ка мы их в DATA, а то там окромя разделителей ни хрена нет. Штучки три - с белым, черным и синим фоном. И в BODY по умолчанию - с белым. Упс! Парсер написан неправильно. Точнее, рекурсивный вызов работает, сопрограммы без рекурсии - тоже, а вот вместе... Ладно, не горит. Опосля как-нить, устал я что-то. Продолжение следует... |
| 9. Vladimir Rybinkin, 03.08.2009 11:11 |
Так я что-то не понял: здесь вообще живые люди есть? Программисты, в смысле? Или только эти... распальцованные? Способные лишь на советы типа "использовать библиотеки" - потрясающая мудрость! Али тема неинтересна? Смешно - это и есть тема всей конфы. Ладно, подождем еще малек - вдруг чудо... Продолжаю "поток сознания": Нет, так дело не пойдет - неудобства с вызовом будут только нарастать. Нужно разобраться с парсером и сопрограммами раз и навсегда. А, понятно - я же использую программный стек, а каждая из сопрограмм должна работать на своем собственном. Значицца, две функции требуют серьезной переделки... Ух, и неохота! Да и жалко однопоточный парсер, честно говоря. Программный стек, опять же, "на самообслуживании"... От программного стека, разумеется, придется отказаться - безнадежно, это мы уже проходили. А вот парсер, кажись, можно сохранить. Только ему вместо "сопрограммного" перехода нужно научиться управлять стеками. Блин, что ни делаешь - все равно пулемет получается, то бишь SINT. Значит, нам нужно: рекурсия внутри одного потока (call/return), переключение управления между потоками (сопрограммы) - при этом первый поток всегда управление (шаблон), второй - данные, требующиеся этому шаблону. Заодно неплохо бы сделать "двупоточную рекурсию" - второй поток становится первым, а вторым ему подсовываются его "персональные" данные - тогда виртуальное число потоков может быть любым (при двух стеках). Ну что же, попробуем... Вначале промоделируем мысленно управление потоками (чтобы потом не было мучительно больно). Итак, генерация страницы. Первый поток - шаблон, второй - данные (для простоты - из двух частей, скажем, содержимое тега TITLE, а затем - BODY). Все оформление страницы, допустим, лежит на шаблоне. Тот начинает: <HTML><HEAD... Нет, HEAD пущай будет самостоятельной строкой методов (в терминологии SINT - очередь). Тогда - ныряем в стек очередей первого потока. <HEAD><TITLE... ныряем еще раз. <TITLE> а теперь прыгаем на второй поток: TEST и снова на первый </TITLE> - данные закончились, "выныриваем". <META...<STYLE...</STYLE><SCRIPT...src=" Ага! Нужны данные из потока, но НЕ ТЕ. Стало быть, SCRIPT - это тоже отдельная очередь. И не просто очередь, а очередь со своими собственными данными. Значит, ныряем в оба стека: сначала переустанавливаем стек данных (второго потока), затем по обычной технологии ныряем в первый стек. PUSH (строка с именем(ами) включаемых файлов) <SCRIPT language="JavaScript" src=" - прыг! test.js - скок! " type="text/JavaScript"> POP - восстанавливаем стек данных </SCRIPT> - вынырнули </HEAD> - еще раз вынырнули <BODY BGCOLOR=... стоять! Выдача палитры должна быть еще хитрее. Ныряем: PUSH (очередь метода выдачи палитры) BGCOLOR=" А теперь смертельный номер: метод выдачи цвета - это шаблон (т.е. ПЕРВЫЙ поток), но лежит он в данных (во ВТОРОМ потоке). Значит... Надо же! Ничего "смертельного" чтой-то не просматривается - обычная рекурсия. w"BGCOLOR="_c.p.cw" TEXT="_c.p.cw" VLINK=... - шаблон wb.p.bwb.p.twb.p.v... - данные. Неужто так просто?! Да уж, "просто"! Ручками написать такое - 5 секунд, а я уже второй день маюсь. Да и "смертельный номер" наверняка в будущем понадобится. Что же в награду? А в награду - возможность выдачи страниц каждому юзеру в "его собственной" палитре. Не так уж и мало! Не говоря уже про "бесплатное приложение" в виде базовых функций и методов инициализации. Если, конечно, все это вообще работает. А ну, господа, поделитесь, как там "с использованием библиотек" полагается менять палитру на странице? Вот смеху будет, если хваленые библиотеки даже этого не умеют. А ведь не умеют - зуб даю! Впрочем, я пока что тоже не умею. Продолжение следует... |
| 10. Sioln, 03.08.2009 11:36 |
Vladimir Rybinkin Извините, Владимир, но я почитал-почитал... и ничего не понял.. Вы чего хотите то? В одном предложении, пожалуйста. |
| 11. Vladimir Rybinkin, 03.08.2009 15:58 |
О! Провокация на ответ удалась. Sioln В одном предложении... А разве это будет легче понять? Продолжаю "поток сознания": Значит, нам понадобится массив стеков на BODY (вдруг больше двух потребуется), каждый из которых тоже массив, но уже строк. Там же индекс текущего стека для ориентировки, где находимся. Инициализируем стек шаблонов стартовой очередью, и вперед (второй стек уже в парсере и изготовим). Во дела! Никак не думал, что так легко пойдет. Шарахнул контекстной заменой, и всего-то пара ошибок по невнимательности. Так защищаться можно! Так, понятно - не хвались, едучи на рать... Чо-то я ваще ни хрена не понимаю: если я завожу элемент массива с индексом, равным его длине, то длина, как и положено увеличивается на 1. А если я этот элемент УДАЛЯЮ, то длина НЕ МЕНЯЕТСЯ! При этом элемент становится undefined, а следующему за ним хоть бы хны! Оба-на! А если внаглую length--, то все путем?! Я хренею, дорогая редакция! Ну... допустим - бум надеяться, что это хозяйство работает ПРАВИЛЬНО. Хотя дырявые массивы смотрятся несколько странно. А вот за goto я не только руки, но и ноги бы повыдергивал. Пижоны! Из-за этого (и невозможности удаления объектов по указателю) приходится код дублировать. Ладно, особого сопровождения не предвидится - потерпим. А куда ж ты на фиг денешься! Еще раз формулируем технологию. Вначале - инициализация "морды". Минимально необходимая - функцией по onLoad, затем - строкой методов. Функция на текущий момент - это (260 байт все удовольствие): var r="parent.";function _(){var x,y,z="bcdm";for(x=0;x<z.length;x++) {y=z.charAt(x);eval(r+y+"=new Object");eval(y+"="+r+y);}m.e=eval; z="afios_";for(x=0;x<z.length;x++){y=z.charAt(x);m.e("m."+y+"="+r+y);} b.s=m.a();b.s[0]=m.a();b.i=0;d.D="";b.s[0[0]]=I;m._();} Лана, дам уж комментарии от генератора, а то и свихнуться недолго. код:Таким образом, все глобальные объекты заведены, все тексты (неизменяемых) функций морды переведены в методы. Теперь инициализация в парсере: создаем стек данных, код перехода на сопрограмму (коды разделителей на всякий случай хранятся как данные - вдруг динамическая замена потребуется). Затем инициализация необходимых встроенных функций (типа alert или document.write). Затем наполнение объектов CLASSES и DATA, установка текущих параметров на BODY, и... все - перерисовка на рабочий кадр. Приступим. Стек данных завели... встроенные методы тоже... палитру (класс) с конструктором... шаблоны страницы, HEAD и TITLE... указатели на них из BODY... двухпоточный запуск... псевдо-рекурсия... переход на сопрограмму... псевдо-return... Работает! Честно говоря, думал, что быстрее получится. Старею. Уф! Готов первый тест для броузера. Кому интересно - в аттаче. Еще бы теперь научиться выполнять document.open/read, и тогда нам сам черт не брат! Так хто там бочку катил на JS/IE3?! Продолжение следует... К сообщению приложены файлы: 1.rar, 2Кb |
| 12. Sioln, 03.08.2009 16:09 |
Vladimir Rybinkin хочу инструментарий на JS/IE3, позволяющий с максимальными удобствами реализовывать все, что нужно конечному пользователю (в идеале - пользователю СУБД). Эм... т.е. проверку прав тоже на клиенте делать будем? Или Вам не инструментарий, а GUI надо? Добавление от 03.08.2009 16:16: Перечитываю и ещё больше не понимаю.. Вам IDE на JS хочется? Добавление от 03.08.2009 16:17: Запустил ваш "тест" код: |
| 13. Vladimir Rybinkin, 04.08.2009 10:03 |
Sioln цитата:Почему на клиенте? Какие вообще проблемы с проверкой прав? цитата:Инструментарий. В том числе для GUI. цитата:А что такое IDE? цитата:Из архива, что ли? У меня прекрасно запускается... Или у MSIE 8.0 (у меня 5 или 6 - не помню) какие-то навороты? Или NT 6.0 (98) чего-то надо? Или настройки чего-то не позволяют? Там же (в тесте) НУ НИЧЕГО нет! Продолжаю "поток сознания": Что-то все-таки не то. Даже сформулировать не могу. Периодически происходит нечто странное: выскакивают ошибки типа "неопределенная ошибка" (детектировать, стало быть, можно, а понять, чего именно поймал - ну никак низзя!) или "неожиданный вызов функции" (раз двадцать вызывалась без проблем, а потом бац - и глаза на лоб). При этом дальнейшая работа то абсолютно правильная, как будто никакой ошибки и не было, то аварийная остановка. Такое ощущение, что всякие генерируемые теги script начинают жить своей жизнью (интерпретироваться раньше времени). Впрочем, не уверен. Но раздражает. Текстов-то с гулькин нос, интерпретируй не хочу - чего выеживаться? Что же нам делать с document.read? Не видать чтой-то такого сервиса. А чего у него вообще есть? Вот зараза, не показывает! Ух ты! clipboardData="[object]" это что за зверюга такая? dropEffect... effectAllowed... Ни хрена не понял! document="[object]" - Ну?! А этот "object" покажешь? Ах ты гнида! А почему?! А, ну конечно - "неопределенная ошибка" - куды уж тебе разобраться... Чо только не придумают! onbeforeprint, onbeforeunload... Вау! window.body - пустота, а на window.document.body... Ой, скоко ж тут дерьма-то всякого понавалено... canHaveChildren... и как они сами-то в таком кошмаре разбираются? Ага! innerHTML, innerText - это уже интересно... Но не совсем то... nodeName="BODY" - О! Верно! Теплее, теплее... outerHTML, parentElement, parentNode, readyState="complete" - одуреть! Так, стоп! А почему ошибки на этот раз нет?! Ага, зараза! От нас не скроешься! О, Господи! Очередная порция, так сказать, параметров. Длиной в километр. activeElement, applets, childNodes, documentElement, protocol, scripts, security... Господа, тону! Кто здесь плавал - помогите! Теперь я понимаю броузер - где ж тут определиться с ошибкой - сам черт ногу сломит! Тем не менее, доступ к телу (BODY) в виде HTML и в виде текста получен - ура! Теперь бы еще к HEAD. Ну, к TITLE - понятно... Впрочем, чего я страдаю? С HEAD как-нить на досуге разберемся. А все остальное принципиально имеется - все, что и хотелось: переписывать кадр умеем, с полями объектов проблем особых нет, ссылки худо-бедно эмулирем, обмен данными между фреймами моделировали, доступ к телу "вражьей" страницы обозначился... С событиями еще не работали, но особо пока и не требуется. Теперь остается техника - как именно лучше всего реализовать текущие требования. Ау, господа - навалимся гурьбой? Для полного счастья нужно: обсудить и отладить структуру паспортов для выдачи таблиц, списков и разных прочих промптов, методы обмена данными (в т.ч. с Инетом), оформления страниц, разных полезных вкусностей. В этих моих "учебных" примерах приводится какая-то абсолютная хрень - прыгает чего-то, мельтешит... А какой внешний (оформительский) инструментарий НА САМОМ ДЕЛЕ нужен? Идеальный, для ПОЛНОГО счастья, поскольку принципиальных ограничений по возможностям лично я УЖЕ не вижу (кто знает - вэлкам, тоже важно). Так какая для этого нужна БИБЛИОТЕКА? Поток сознания закончился. Теперь - техника. Во-первых, а не зря ли я программный стек отменил? Вызов-то удобнее. Да и какое дело прикладнику до стеков (тем более, до стеков очередей)? В SINT у меня сделано хитрее... Ладно, попробуем: Имеем: системный объект (с паспортом), стеки очередей и парсер, по ним ползающий. Из прикладного уровня не вызываемый (не в смысле недоступный, а по соглашению). Вызывается же он из прикладного парсера, либо из двухпоточной зарядки, либо из строки методов. Тогда стартовая инициализация должна выглядеть примерно так: Во-первых, морда. Предположим, что на сайте допускается сразу два типа обслуживания: с постоянной (скажем, index.htm) и переменной (index.html) толщиной клиента. Оба входа предназначены исключительно для хранения глобальных объектов, методов и текстов глобальных функций. Во втором случае предполагается промежуточный дочерний фрейм для хранения текстов функций переменного состава. Сын же index.htm (или внук index.html) - это уже головной рабочий кадр. Если и он фреймообразующий, рабочими становятся уже внуки (правнуки). Дальше в "генеалогию" лезть как будто незачем. Поскольку инициализация (да и работа) по любому входу во многом совпадает, инициализацию запустим по общему алгоритму, при этом тип обслуживания будет определяться по идентифицирующей переменной на морде (по самому факту ее существования) - см. аттач. Загрузочный фрейм (всегда сын) создает и инициализирует объекты на морде, после чего переписывает себя либо на рабочий кадр, либо на кадр хранения текстов переменного состава. В последнем случае... нет, что-то лень мне заниматься тем, что может вообще не понадобиться. Короче, ответвление обозначено, реализация - в случае возникновения потребности, принципиальная возможность имеется - проверено. Рабочий кадр любого уровня иерархии получает доступ к данным и методам через единственное определение r="parent.[parent.][parent.]..."; В остальном тексты кадров разных уровней неотличимы (если, конечно, выполняют ту же работу). Обмен данными между фреймами либо непосредственно по имени, либо через кого-то из родителей (уж морда-то всякому родитель). Перечень основных функций (аттач, файл a.j) неизменен, приложение к морде. Это по определению наиболее важные (оптимизированные, отлаженные) функции, посему просьба критиковать и состав, и содержимое. Начальная загрузка (файл a.h -> b.j): создание объектов и методов (той самой пресловутой "библиотеки"), загрузка начального рабочего кадра (то бишь "настоящего" index.htm, предназначенного для посетителя сайта), и обеспечение доступа к этой библиотеке создателю странички (прикладнику). Никакого контроля за деятельностью прикладника не проводим (не транслятор, чай), считаем, что он и сам соображать должен (тем более, что "прикладник" - это я и есть Для затравки: я тут грозился arsa сотворить клиента для google (сервис для уточнения запросов). Попробуем, что ли? Снова прошу перечень ваших (обсуждаемых в этой конфе) проблем. А то у меня появляется нехорошее ощущение, что я уже умею все, что душе угодно. Продолжение следует... К сообщению приложены файлы: 1.rar, 2Кb |
| 14. Sioln, 04.08.2009 11:16 |
Vladimir Rybinkin Из архива, что ли? Нет, распаковал. У меня прекрасно запускается... Могу только поздравить |
| 15. Vladimir Rybinkin, 05.08.2009 09:49 |
Sioln цитата:Странно... цитата:Не, это я Вам могу посочувствовать. all Похоже, последний тест: все прекрасно работает, и мне уже просто лень что-то вылизывать (скажем, по нормальному надо бы данные на морду отправлять в динамике и т.п.). Так что слеплено несколько топорно, но все-таки: целый сайт в одном флаконе (он же страница - см. аттач), общим весом в... ща... 620 виртуальных страниц. Ха! И сайт-то не маленький! И не хило перевязанный. Так хто там забижал JS?! Кстати, технология работы называется "ни шагу назад", поскольку эта придурь (которая броузер) умудряется каким-то образом вести "историю" посещенных страниц ( Некоторые пояснения: буквально любое слово текста (кроме разве что заголовков) есть ссылка. К сожалению, показать, что это именно ссылка я пока не умею: если поставить HREF, ручки шаловливые броузера немедленно куда-то лезут ("невозможно отобразить страницу"). Хотелось бы выделять эти ссылки цветом (всегда) и подчеркиванием (при наведении мыши). Далее. Специально обозвал кнопку "Home" как "Ремонт" (то бишь перезагрузка index.htm вместе со всем инструментарием) - своего рода защита от "интеллекта" этого козла. Ну и игрушку с палитрой повесил - для симметрии. Кстати, а что это я фигней занимаюсь? Второй фреймообразующий кадр нужно сделать ОБЯЗАТЕЛЬНЫМ (как и первый). Тогда третий кадр всегда рабочий, при желании их может быть скоко угодно (в т.ч. невидимых), а второй кадр "по совместительству" может хранить переменную толщину клиента. Четвертый уровень - для временных кадров (для экзотики). Стройненькая такая система получается... Ну что, займемся делом? ИДЕАЛЬНЫМИ классами? Которые не просто строки, а структуры, с пользовательскими атрибутами, с методами, сами методы... Навскидку - желательно бы иметь постоянно висящее меню (возможно, выпадающее), и отдельный фрейм "Настройка" (возможно, временный). Сервис "Игрушка" - диалоговая модификация данных и их структуры (переделка полученных с сервера(ов) страниц, сборка собственной БД, сохранение и восстановление у себя (типа config). Чо бы еще придумать? Присоединяйтесь, господа бароны, присоединяйтесь! Ах, да - забыл сам тест прилепить. К сообщению приложены файлы: 1.rar, 7Кb |
| 16. Vladimir Rybinkin, 06.08.2009 11:42 |
Ну что, снова все замолчали? Насчет последнего теста я, конечно, погорячился. Надо бы еще БД попробовать. Не ту кастрированную и однородную, как в предыдущем тесте, а... Во! Возьмем-ка мы "Борей", он же "Northwind", он же учебная БД для MS Access - там наверняка пользовательские классы понадобятся. Оригинал валялся где-то на microsoft.com (думаю, и сейчас валяется). Предварительно отрежем неанглоязычные ресурсы, шоб глаза не мозолили (в смысле, использующие не латинские символы). Да подрихтуем малек схему БД, а то совсем уж позорище. Учителя, блин! Да... В этом дерьме тоже повозиться придется... Да выдачу обдумать. Но меня просто убивает мертвая тишина в ветке. Неужели программистов вообще не осталось? Чем вы ваще занимаетесь в этой конфе? Так... Судя по заголовкам - ничем |
| 17. Sioln, 06.08.2009 12:55 |
Vladimir Rybinkin Тебя уволили чтоли? |
| 18. Биомеханик, 06.08.2009 13:11 |
Vladimir Rybinkin, тебе поговорить не с кем что ли?! |
| 19. Vladimir Rybinkin, 08.08.2009 12:05 |
Sioln цитата:Нет. Биомеханик цитата:Вот именно - не с кем. Тема, на мой взгляд, исключительно важная. Уровень же участников ветки - нулевой (мой - тоже). Неужели профессионалы никогда не занимались клиентской частью? |
| 20. Vladimir Rybinkin, 10.08.2009 09:32 |
Да ужжж... Тишина даже и не удивляет. Мож, пользователи какие забегают сюда? Разобрался я с "Northwind". Отрезал неанглоязычные ресурсы, изменил схему БД. Пользовательские классы (старые, с модифицированной структурой - убрал всякую муть типа Discontinued, кое-что вынес в отдельные классы): Categories, Customers, Employees, Order Details, Orders, Products, Shippers, Suppliers. Пользовательские классы (новые): Address, Company, Person, при этом Address развернул в дерево (City, Country). Кое-какие поля (должность, скидка, ...) сделал перечисляемыми - для разнообразия. Редактирование пока не планирую, да и вряд ли вообще притронусь - техническая реализация элементарна, а вопросы удобства в работе и организации контроля по определению лежат на юзере - пущай у него голова и болит. А, черт! "Персонал" недосмотрел - еще подрезать можно... англоязычные товары неанглоязычных производителей - на фиг... их потребителям, соответственно, облом... из заказов тоже вышвыриваем... "опустевшие" и "чужеземные" заказы туда же... перевозить их не нужно... сопровождать тоже... заказчиков, оставшихся вообще без товара... Блин, надеюсь, они не очень "интернационализмом" увлеклись - что-то в базе все же останется? Теперь - как хранить все это барахло на странице? Вообще говоря, глаза разбегаются: можно как "отношения" (опять же - массивы строк или массивы объектов), можно с атрибутами в качестве имен полей или значениями аналогичных полей класса, можно... А что проще? Думаю, так: единый массив строк на все про все, пользовательские атрибуты в классах, имя класса в элементе, интерпретация данных элемента (поля значений, ссылки) - "классовыми" методами, доступ к элементу - по индексу. Ну, можно еще "реляционный", по ключу (если индекса под рукой не окажется). Что еще? Внешний вид (виртуальной) страницы определяется классом текущего элемента - либо "персональная" на элемент, либо на всю группу класса. Хотя... это все проблемы шаблона. Ну и время от времени надо бы заставить ее чего-нить посчитать. Приступим... Так. Шаблончиков у нас будет... чтой-то до хрена... Ладно, пущай - и мне надо малек руку набить на JS, и вас, обормотов, поучить, как надо программы писать. Посмотрим, что можно выжать из этого дела. Классы: Persons FirstName, LastName, Title, косвенно - Company и ее вид (Customer, Supplier). Скучновато... Используем для фона - более обширная информация о компании, и только. Employees Тот же Person, но более развернутый - Address, HomePhone, BirthDate и прочая хрень. Ах, нет - они связаны с заказами, и между собой какая-то система подчинения. Ok, заслуживает персональной странички. Products QuantityPerUnit, UnitPrice... Ага! Это уже интересно - движение товаров и денег (подробности в Order Details). Аналогично - Categories: тот же Products, но более общий. И то, и другое заслуживает персональной странички. Addresses Тоже просто дополнительная информация о компании или человеке. Однако City и Country, бесспорно, претендуют на персональную страницу. Companies Три вида: Customers, Suppliers и Shippers. Надо же - не пересекаются: одни только производят, другие только потребляют - примитив! Зато можно в качестве обобщенных компаний использовать City и Country - эти наверняка пересекаются. Заслуживают "кармана" (для денег), и... объемная страничка получается на каждого: товары, поставщики, потребители, заказы... Orders (Order_Details) О! Тут еще движение товаров и денег ВО ВРЕМЕНИ! Даже самому интересно стало, что получится - не как программисту, а как пользователю. И чего у нас творится с датами? О, Господи! BirthDate=8.12.1998, HireDate=1.5.1992 - что бы сие значило? Ладно, хрен с ними... Ого! Почти 500 уникальных - есть, где развернуться. 24 месяца трех разных лет, обычно полсотни событий в каждом (от 7 до 131). Здесь совершенно потрясающую игрушку можно сделать. Графики изменения содержимого карманов во времени рисовать - это, конечно, слишком, но... А это что еще за бред?! UnitPrice в Order Details в точности повторяет его же в Products. Ну и на хрена он такой хороший там нужен? Поганой метлой! Так, а скоко у нас всего ресурсов? 1705, из них на страничку претендуют... всего-то 246! Или 714, если заказам подарить по страничке (не фиг баловать, хотя реализовать и просто, и дешево в смысле объема). Кстати, а объем? До 64К малек не дотягивает. Правда, он еще подрастет где-то на треть. Но все равно - страничка по нынешним меркам легкая. Но по моим наполеоновским планам должна драть Access по функциональности, как кота. Посмотрим... Теперь - как все это хозяйство должно жить во времени. Производители товары производят, покупатели потребляют, перевозчики перевозят, деньги движутся в обратную сторону. Каждая компания (а также город и страна) имеет собственный "карман", в котором изначально 0 (американских) рублей. При каждом событии (ShippedDate) заказчик платит производителю, скажем, Product * Quantity * (100% - Discount) * UnitPrice, а перевозчику... понятия не имею... пущай будет Freight. При этом за дострочную поставку (ShippedDate < RequiredDate), допустим, даем премию в 5%, а за каждый день просрочки - штраф 0.5%. Города и страны суммируют доходы и расходы своих предприятий. Таким образом, от события к событию карманы участников как-то изменяются - это динамика во времени. Меняется, кстати, и количество связей между поставщиками и потребителями, объем товарооборота между компаниями, странами, городами. Что еще? Популярность товаров и категорий товаров по объему товарооборота... И посмотреть все это можно для любого предприятия, города страны, товара или категории за любой период времени - это просто фильтр. Впрочем, чего гадать? Хрен ли думать - трясти надо! Уже вполне можно подвести некоторые итоги. Итак, возможности JS в плане написания клиентской части ОГРОМНЫЕ! Я ожидал гораздо худшего. И не используются они, судя по всему, вообще никем, и никогда - вот уж этого тем более не ожидал. Так что, как говорил Аркадий Райкин, гляжу я на вас и думаю: ну и дураки же вы все! |
| 21. dozen, 11.08.2009 18:15 |
Sioln Вы чего хотите то? Обычная для него публичная мастурбация. Он получает удовлетворение от процесса, а не от результата. Тему надо в 26-ю конфу, там энтузиасты всё в подробностях дяде Вове объяснят. Начнут, пожалуй, с CSS. Ему, наверное, кто-то подарил подшивку журнала Хакер за 2003-й год (покупать свежий ему не по карману) , откуда он узнал про JavaScript. До AJAX он еще не дочитал, это в декабрьском номере, а он пока на февральском. P.S. "Палитры" он меняет, я щас штанишки описаю! |
| 22. Vladimir Rybinkin, 12.08.2009 09:39 |
dozen А, черт! А я как раз пригласил в "Крошке"... Впрочем, а не зря ли? All Финиширую с базой: еще малек подрезалась, да оптимизировались индексы. Кроме того, решил все-таки пожалеть клиента: дать элементам необходимые ссылки окружения (чтобы не искал тупо, как в прошлом тесте). Получается такая структура: Морда (Northwind). Дети - группы (массивы) объектов одного класса: Cities, Companies, Countries, Customers, Employees, Orders, Persons, Products, Shippers, Suppliers. Каждая группа - виртуальная страница с собственным форматом выдачи. Не уникальным - скажем, Customers или Suppliers принадлежат классу Company и, разумеется, имеют его формат. Некоторые классы (например, Addresses, Order Details) вообще не имеют собственных страниц - ни персональных, ни групповых. Класс Persons (а в первоначальном замысле и Orders) имеют лишь групповую странцу, остальные - оба вида. Классы имеют (как правило) два формата выдачи: краткий (для форматирования объекта на "чужих" страницах) и развернутый (на своей "персональной"). Объектам класса Order разрешил все-таки иметь персональную страницу. Как же все-таки эту скотину заставить использовать HREF только для STYLES? Классы - от простого к сложному (впрочем, особо простых что-то не просматривается Persons Только группа, персональных страниц не имеет. Заголовок (Persons) - ссылка на морду. Одна таблица детей формата: LastName, FirstName, Title, Company (CompanyName, ссылка, для Employees - морда). Orders Группа объектов с персональными страницами. Заголовок (Orders) - ссылка на морду. Одна таблица детей формата: OrderID (ссылка), Customer (CompanyName, ссылка, фильтр), Employee (FirstName+LastName, ссылка, фильтр), OrderDate (до начала указанного диапазона дат строки таблицы "подкрашиваются", после диапазона - не выводятся). Order Персональная страница объекта класса Order. Заголовок (OrderID) - ссылка на группу Orders. Выводимые данные: Customer (CompanyName, ссылка), Employee (FirstName+LastName, ссылка), Shipper (CompanyName, ссылка), OrderDate, RequiredDate, ShippedDate, Freight. Имена атрибутов - ссылки на групповые страницы (если они существуют). Одна таблица детей формата: Product, (ProductName, ссылка), Category (CategoryName, ссылка), UnitPrice, Quantity, Discount, Sum (считается в процессе генерации страницы). После таблицы - расчетное значение TotalSum (включая Freight с премией или штрафом, как было указано выше по ветке). Employees Группа объектов с персональными страницами. Заголовок (Employees) - ссылка на морду. Одна таблица детей формата: Name (TitleOfCourtesy+FirstName+LastName, ссылка), Title, HomePhone. Employee Персональная страница объекта класса Employee. Заголовок (TitleOfCourtesy+FirstName+LastName) - ссылка на группу Employees. Выводимые данные: Title, Address, HomePhone, BirthDate, HireDate, Chief (TitleOfCourtesy+FirstName+LastName, ссылка), Notes. Одна таблица детей. Формат таблицы - как для Orders (без столбца Employee). Products Группа объектов с персональными страницами. Заголовок (Products) - ссылка на группу Categories (не на морду!). Одна таблица детей формата: Product (ProductName, ссылка), Category (CategoryName, ссылка, фильтр). Categories Группа объектов с персональными страницами. Заголовок (Categories) - ссылка на морду. Одна таблица детей формата: Category (CategoryName, ссылка). Companies Группа объектов с персональными страницами. Заголовок (Companies) - ссылка на морду. Одна таблица детей формата: Company (CompanyName, ссылка), City (CityName, ссылка, фильтр), Country (CountryName, ссылка, фильтр). Cities Группа объектов с персональными страницами. Заголовок (Cities) - ссылка на морду. Одна таблица детей формата: City (CityName, ссылка), Country (CountryName, ссылка, фильтр). Countries Группа объектов с персональными страницами. Заголовок (Countries) - ссылка на морду. Одна таблица детей формата: Country (CountryName, ссылка). Персональные страницы Product, Category, Company, City, Country - там совсем сложно получается. Как-нить на свежую голову. |
Тема перенесена 12.08.2009 10:49 moderator-Bio из форума "Программы: Интернет" |
| 24. Джамаль, 12.08.2009 11:07 |
Кто здесь? |
| 25. dozen, 12.08.2009 17:02 |
Не для ВР, а для общего образования любопытных, расскажу немного о GWT (Google Web Toolkit). Эта библиотека необычна тем, что включает в себя компилятор байт-кода JVM в Javascript. Буквально. То есть код страницы пишется на Java -- есть кучка классов, описывающих Layouts и элементы ввода. Затем получившийся Java-code пропускается через GWT-compiler, и тот создает идентичный Javascript-code. Что интересно, если не нужны вызовы к серверу (AJAX), то получившийся набор HTML/JS можно деплоить на любой голый web server (т.е. без жабы), и код будет работать. Если нужны, то жаба тоже не обязательно -- достаточно любого тула (например, PHP), способного ответить на JSON. Есть всякие удобства, типа AJAX-методов и интернационализации. Куча народа создает свои компоненты к GWT. Я лично использовал чудные сторонние компоненты построения графиков. Разумеется, есть и ограничения. Не все методы всех жабо-классов поддерживаются, ведь GWT по сути предоставляет JS-версии методов Java (только использованные методы добавляются в конечную "сборку"). Примеры в работе можно посмотреть здесь (http://code.google.com/webtoolkit/examples/) . Я, вообще, не UI-guy. Но с помощью GWT добавил к моим приложениям морды за пару дней. |
| 26. arsa, 12.08.2009 17:10 |
кстати есть Ext GWT - вообще супер библиотека |
| 27. dozen, 12.08.2009 17:14 |
arsa Ext GWT - вообще супер библиотека но стоит денег (http://extjs.com/store/gxt/) однако, ВР, несомненно, стоит ознакомиться (http://extjs.com/products/gxt/) . дабы обрести (недостижимый) идеал. |
| 28. arsa, 12.08.2009 18:03 |
dozen да, если не хочется ввязываться в GPL, то стоит денег. раньше был ещё LGPL (в версии 2 самого ext), но к сожалению он немного не подходит под реалии веба. в результате (если всё делать абсолютно честно) реально не получится разработать прототип на GPL версии, показать начальству, а уже потом купить коммерческую версию. |
| 29. Hedin, 12.08.2009 18:06 |
dozen но стоит денег gwt-ext выглядит вроде не хуже, и под LGPL. Начальство впечатлилось, теперь вот придётся прототип приложения переводить с JSF/RichFaces/SWF на GWT/GWT-Ext. Благо не так много наваять успели. У GWT есть одна существенная особенность - это уже полноценный клиент с RPC получается, в отличии от простого Web-приложения. А трёхзвенку таки сложнее программировать чем двухзвенку... |
| 30. arsa, 12.08.2009 18:38 |
Hedin да, конечно сложнее. но есть несколько упрощающих решений, от asp.net ajax (в смысле классов оборачивающих ajax веб сервисы, уверен что для java тоже есть что то похожее), до Ext.Direct http://extjs.com/products/extjs/direct.php но конечно контракт (веб сервис) всё равно приходится описывать - в базу грязными руками никто не пустит |
| 31. Hedin, 12.08.2009 19:22 |
arsa до Ext.Direct Да сам обмен - это ерунда, я уже gwt-rpc exporter под spring на сервере прикрутил. В двузвенке всё-таки удобно пользоваться долгоживущими сессиями JPA/Hibernate. А в 3-хзвенке: сессия на запрос, заморочки с DTO и т.д. и т.п... Я на прошлой работе хлебнул 3-хзвенки полной ложкой, так было хорошо о ней на время забыть, теперь вот опять вспоминать придётся... |
| 32. arsa, 12.08.2009 19:44 |
Hedin я делал реально хорошо работающий ext->asp.net ajax wrapper->asp.net web service-> OR/M -> sql OR/M можно менять, хоть hibernate хоть что. но в общем конечно акцент в работе с обьектами был на клиенте - на сервере (если нужно) только проверка доступа пользователя к изменениям некоторых полей обьекта (что конечно тоже геморой, но без этого никуда). в частности OR/M который я использовал имел фичу генерации asp.net веб сервисов использующих классы сделанные тем же OR/M-ом - это сильно упрощало расширение системы, то есть буквально создавая новую таблицу в базе я получал новый JS класс на клиенте (по выше описанной цепочке). собственно я довольно много времени провёл подбирая такую цепочку в которой у меня получится RAD решение (за исключением самого UI - тут к сожалению для JS мало чего хорошего пока есть, хотя под Ext есть визуальный разработчик форм уже) |
| 33. Konstantin Mironovich, 12.08.2009 22:48 |
100пудов автор ИДЕОЛОГИЧЕСКИ замышляет что-то типа AJAX. правильные идеи витают в воздухе и приходят не в одну голову.. рано или поздно.. Добавление от 12.08.2009 22:52: помогу-ка автору припасть к идеологическим истокам (http://www.adaptivepath.com/ideas/essays/archives/000385.php) |
| 34. Hedin, 12.08.2009 23:42 |
Konstantin Mironovich 100пудов автор ИДЕОЛОГИЧЕСКИ замышляет что-то типа AJAX. Есть такой вариант, "AJAX для бедных" (на базе iframe (http://ajaxpatterns.org/IFrame_Call) ), наверное что-то типа этого. рано или поздно.. Ну как-то уж совсем поздновато получается. |
| 35. dozen, 13.08.2009 07:47 |
Hedin это уже полноценный клиент с RPC получается, в отличии от простого Web-приложения. А трёхзвенку таки сложнее программировать чем двухзвенку... Мне это больше нравится. Вместо кучи мусора в JSP и сервлетах, где перепутан UI, бизнес-логика и доступ к базе, разделение образуется само собой -- под client.* -- UI, под server.* -- RPC-сервлеты, под business.* -- логика.... короче, есть в этом определенный цинус. В двузвенке всё-таки удобно пользоваться долгоживущими сессиями JPA/Hibernate. А в 3-хзвенке: сессия на запрос, заморочки с DTO и т.д. и т.п... Не понял? А кто мешает использовать "долгоживущую сессию" под RPC? Куку-то все равно браузер передает, так что HTTP-session поддерживается. Или я чего-то не понял в трудностях? Правда, я лично "долгоживущие" не использую. Во избежание перерасхода ресурсов и для актуальности кэша. Konstantin Mironovich рано или поздно.. Hedin Ну как-то уж совсем поздновато получается. Да ладно, у него темп жизни такой. С timezone offset в 5 лет. Пора привыкнуть. |
| 36. Hedin, 13.08.2009 09:32 |
dozen А кто мешает использовать "долгоживущую сессию" под RPC? Мешает само наличие RPC, в частности использование DTO. С ними уже как-то пофиг время жизни сессии. А если без DTO (с detached объектами), то всё равно радости немного, да и на клиенте их не очень хорошо использовать. Главная беда - это строительство полноценного CRUD для сложносвязанных объектов. Длинные сессии интересны не сами по себе, а простотой программирования редактирования объектов в несколько шагов/экранов. Я не говорю, что это в 3-хзвенке невозможно, но жизнь RPC таки отравляет. |
| 37. Vladimir Rybinkin, 13.08.2009 11:03 |
О, Господи! Product Персональная страница объекта класса Product. Заголовок (ProductName) - ссылка на группу Products. Выводимые данные: Category (CategoryName, ссылка), QuantityPerUnit, UnitPrice. 3 таблицы детей. Формат 1-й таблицы: Supplier (CompanyName/CityName/CountryName, ссылка). Формат 2-й таблицы: Customer (CompanyName/CityName/CountryName, ссылка). Формат 3-й таблицы: OrderID (ссылка), Customer (CompanyName, ссылка, фильтр), OrderDate (до начала указанного диапазона дат строки таблицы "подкрашиваются", после диапазона - не выводятся), Quantity, Sum (считается в процессе генерации страницы). После таблицы - расчетное значение TotalSum. Category Персональная страница объекта класса Category. Заголовок (CategoryName) - ссылка на группу Categories. Выводимые данные: Description. 3 таблицы детей. Формат 1-й таблицы: Product (ProductName, ссылка, фильтр), Supplier (CompanyName/CityName/CountryName, ссылка, фильтр). Формат 2-й таблицы: Product (ProductName, ссылка, фильтр), Customer (CompanyName/CityName/CountryName, ссылка, фильтр). Формат 3-й таблицы: OrderID (ссылка), Product (ProductName, ссылка, фильтр), Customer (CompanyName, ссылка, фильтр), OrderDate (до начала указанного диапазона дат строки таблицы "подкрашиваются", после диапазона - не выводятся), Quantity, Sum (считается в процессе генерации страницы). После таблицы - расчетное значение TotalSum. Company Персональная страница объекта класса Company. Заголовок (CompanyName) - ссылка на группу Companyies. Выводимые данные: Address (City, Country - ссылки), Phone, Fax, ContactName (FirstName+LastName, ссылка). 3 таблицы детей. Формат 1-й таблицы: Product (ProductName, ссылка, фильтр), Supplier (CompanyName/CityName/CountryName, ссылка, фильтр). Формат 2-й таблицы: Product (ProductName, ссылка, фильтр), Customer (CompanyName/CityName/CountryName, ссылка, фильтр). Формат 3-й таблицы: OrderID (ссылка), Product (ProductName, ссылка, фильтр), Customer (CompanyName, ссылка, фильтр), OrderDate (до начала указанного диапазона дат строки таблицы "подкрашиваются", после диапазона - не выводятся), Quantity, Sum (считается в процессе генерации страницы). После таблицы - расчетное значение TotalSum. City, Country - по формату Company, но окружение из своего "круга". Так, хватит "теории" - надо же посмотреть, что получится - наверняка многое поменяется. Ах, да - линки... Ну уж это я описывать не буду, скажу только, что число ребер (в графовом представлении) уже не минимально необходимое (как в прошлом тесте), а может быть избыточным (для скорости доступа). Виртуальные ребра (через промежуточные узлы) с той же целью могут заменяться реальными. Короче, собираем БД уже для представления на странице. Не, чо-то страшновато... Соберем лучше в минимальной конфигурации, а потом добавим по мере необходимости. Собрал, имеем: классов - 21, узлов - 1644, ребер - 4834, байт - 59510. Теперь перенесем все это дело на страницу... Так, в чем дело?! Ну и чем тебе эти 4 сотрудника не нравятся? А, вона что - у них кавычки внутре... ну, это мы враз... так, сожрала. Теперь начнем потихоньку открывать выдачу (и инициализировать классы). Начиная с морды. О, я как раз на границе 64К. Надеюсь, неприятностей по этому поводу не будет? Кстати, заведем-ка мы юзеровские классы отдельным объектом. Так, до уровня предыдущего теста мы почти догнали (морду рисует) - перекур! Добавление от 13.08.2009 15:24: Всем спасибо, но... разговор-то идет, но, по-моему, не туда. Да и не очень похоже, что идет - и здесь замолчали... цитата:То есть код страницы пишется на C (точнее, на SINT) -- там есть все, что душе угодно (мало будет - добавим). Затем получившийся exe-файл (в статике - генератор страниц, в динамике... ну, скажем, СУБД) создает необходимый Javascript-code (кому он нужен, голый-то?), вместе с необходимыми ДАННЫМИ (для генератора - из шаблонов, для СУБД - из БД. Ну и на кой хрен нужен этот кастрированный сервис GWT? Чем хороши "AJAX-методы" - я не знаю, "интернационализация" - смешно и говорить, компоненты построения графиков - это да, это интересно. Кто строит-то - сам клиент али сервер? arsa цитата:Ну дык... Я уже просил - слабо сделать на ней сервис для корректировки запросов к Google? Или хотя бы мой третий тест (зуб даю, минимум на порядок код вырастет, если вообще работать будет цитата:Ну дык... В моем случае, по крайней мере, делай, что хошь цитата: цитата:Вот именно! Зато у самого JS много чего хорошего есть. Konstantin Mironovich цитата:Вот уж понятия не имею. Если AJAX и в самом деле "правильная идея" - то возможно... цитата:А, черт! А я в TXT качнул. Но все равно - спасибо. Hedin цитата:Разве? И чего там насчет RPC? Переменная толщина клиента (в терминологии этой ветки) и есть RPC. Даже лучше: P (которая R) вначале транспортируется на клиента, и затем уж она - C, C, C, C, C, C, C, ... В чем проблемы-то? цитата:Ах, вона чего... Ну, дык... В моем варианте держи "сессию" хоть сутками. И безо всяких "заморочек" - получил выборку из БД "на руки", и редактируй до посинения. Затем все "оптом" - на сервер. Поди плохо? цитата:Лана, и это качнем. Хотя... честно говоря, не вижу смысла - у меня полное ощущение, что я УЖЕ умею все, что душе угодно, а вот вы, господа, судя по постингам, как раз имеете какие-то ПРОБЛЕМЫ. Ну и? dozen цитата:Я - тоже. На хрена HTTP-session поддерживать - не понимаю. Мой подход на это дело пилюет с высокой колокольни. цитата:М-д-а-а. Ну, извини - напросился все-таки... Достопочтимый сэр! Ведь мы с тобой не первый год знакомы. Ведь у меня уж тыщу лет насчет твоей квалификации никаких загадок не осталось. И ты это ПРЕКРАСНО знаешь - одной только "малой модели" мне за глаза хватило, чтобы вынести вердикт. А это было еще при царе Горохе. С тех пор диагноз только подтверждался. Ну перед кем ты здесь подпрыгиваешь? Перед публикой? Перед теми, кто в этой ветке на тебя молился (вот приедет dozen - dozen нас рассудит)? Защитная реакция дилетанта, который косит под эксперта? Но это же глупо, мил человек! Ну сам сообрази - приходит сюда чел, который тебя вообще не знает, и читает... ну, скажем, твой первый пост в этой ветке. И какое мнение у него про тебя может сложиться? Ну, кроме: Идиот! Вот и я не знаю... Вот скажи мне, дураку - зачем ты терминами разными бросаешься (что здесь, что в "крошке")? Чтобы продемонстрировать, что ты знаешь, как они пишутся? Или что ты ветку не удосужился прочесть? Или ты полагаешь, что здесь народ собирается глупее тебя? Трудно поверить: скажем, насчет "палитр" я несколько раз все объяснял открытым текстом. Ладно, специально для тебя - повторю, разжую, и в рот положу: палитра есть наиболее простой и наглядный способ ОТЛАДКИ ИНСТРУМЕНТАРИЯ. Сразу видно, работает ли, и так ли, как хотелось. Отлаживал же я управление стеками, динамический вызов методов, перезапись кадров, шаблоны и прочую хрень. Доступно? Я, в принципе, понимаю - тебе это сложно, тебе нужно увидеть знакомое слово, и бежать "штанишки описывать". Но ведь это же только ТВОИ проблемы, дорогой! И стиль твой для незнакомых... Можно подумать, что ты очень озлоблен на меня за что-то, что мы с тобой враги кровные... Дыши глубже - я к тебе давно уже хорошо отношусь. |
| 38. dozen, 13.08.2009 17:56 |
Vladimir Rybinkin Ну и на кой хрен нужен этот кастрированный сервис GWT? Твоя вечная проблема, дядвов, в том, что ты априори считаешь всех остальных тупицами, а их работу -- глупостью, недостойной изучения. В результате ты постоянно изобретаешь велосипед, но кривой и примитивный, потому что по всем тем граблям тебе приходится бегать заново -- и одному. Посему твои потуги и вызывают саркастическую усмешку. P.S. Про палитру уржался еще больше! Какой матёрый петросянище! |
| 39. lvqcl, 13.08.2009 21:30 |
Vladimir Rybinkin Перед теми, кто в этой ветке на тебя молился (вот приедет dozen - dozen нас рассудит)? Это Вы про меня? ( Заставить работать машину клиента!, #7 (http://forum.ixbt.com/topic.cgi?id=26:39751:7#7) ) Боюсь, Вы не совсем правильно меня поняли. Я просто хотел moar lulz. dozen Твоя вечная проблема, дядвов, Думаю, что для его экологической ниши (whatever it is) это не проблема, а просто... особенность. |
| 40. dozen, 14.08.2009 07:45 |
lvqcl Думаю, что для его экологической ниши (whatever it is) это не проблема, а просто... особенность. Даже экологическая ниша "собиратель огрызков на помойке" требует уважения к чужому опыту -- иначе не отсеять заведомо вредные огрызки. А ВР -- это просто ходячий синдром Not Invented Here. Как он существует в мире, где надо кушать испеченный другими хлеб, пить надоенное другими молоко, жить в построенных другими домах, и ездить в собранных другими машинами -- я не представляю. У него же должны постоянно чесаться руки испечь хлеб самому (изготовить плуг, вспахать, посеять, всборонить, поливать, пожать, отмолотить, перемолоть, испечь), надоить (начиная с зачатия будущей бурёнки -- всё сам, всё сам!), построить дом (надеюсь, живет один и в 3-х радиусах падения его дома от прочих построек), собрать копейку из самостоятельно нарезанных гаек и болтов... его знаменитую 386-у он тоже, наверное, сам собрал, аккуратно впаивая самолично вырезанные на глаз из цельного куска кремния микросхемы. Да он Демиург! Теперь вот AJAX созидает... так что на наших глазах, можно сказать, рождается параллельная вселенная. Втыкайте! |
| 41. Vladimir Rybinkin, 14.08.2009 10:14 |
dozen Ну... я ничего другого и не ожидал. Врать не надо. Впрочем... я все сказал уже. lvqcl цитата:Не бойтесь - правильно. С Вами мы ведь тоже не первый раз видимся? По ранее даденнім ссылкам: Hedin Ну и чо там "для бедных", кроме трогательной "Goal Story"? visibility : hidden? Konstantin Mironovich Посмотрим все же на "идеологические истоки". A New Approach - прям так сразу? Я что-то не понял, народ здесь тоже хочет сказать, что старый "Approach" никуда не годится? Now look at Google Maps - да что они, помешались все на этих мапах?! Гуглю не хило бы вначале свой ПОИСКОВЫЙ сервис по-нормальному сделать... with no waiting for pages to reload - Упс! Это ВОТ ЭТО ВОТ они рекламируют?! Неужто и в самом деле профессионалы клиентом не занимались?! Я-то, грешным делом, думал, что это "ясно даже и ежу", а это, оказывается, "new approach to web applications"... Asynchronous JavaScript + XML, стало быть, - и будет табе щастье... Однако! Ajax isn't a technology. It's really several technologies - вах-вах-вах! Figure 1: ну да, именно про это я и говорю. Секундочку! А какого хрена processing только... А чем, собссно, Ajax engine занимается?! А, понял: это я БУДУЩИЙ Ajax изобрел - не доперли исчо товарисчи и processing ему впендюрить... Instead of loading a webpage, at the start of the session, the browser loads an Ajax engine - written in JavaScript and usually tucked away in a hidden frame. Ну, блин, ну один в один! Токо у меня наглости не хватило обозвать это "engine", и уж тем более "really several technologies". И в качестве "hidden frame" у меня используется сам frameset - чего еще надо? Да, кстати - ихто там в начале ветки вякал, что "фреймы в современных браузерах не нужны"?! Не, я просто отказываюсь понимать! Еще где-то в 2002 (или даже раньше) мои орелики, Антон и даже Олег, для системы документооборота (и не только) занимались ровно тем же самым, чем и пресловутый AJAX - асинхронным обменом (и не только). И вы мне хотите вдолбить, что все остальное человечество до сих пор освоило лишь половину этой технологии?! Побойтесь Бога, господа! Konstantin Mironovich, откройте уж ДО КОНЦА глаза, а то у меня просто крыша едет. И при этом какой-то там dozen еще смеет меня учить?! Да я ради такой хрени и ветку бы не завел - у меня задачи посерьезнее. Every user action that normally would generate an HTTP request... Во-во! Задолбали ручонки шаловливые броузера! Чуть расслабишься - реквестится, скотина! takes the form of a JavaScript call to the Ajax engine instead - именно так. Ajax is an important development for Web applications - ну хто бы мог подумать! and its importance is only going to grow - охренеть! following Google's lead ( we've received an enormous amount of correspondence from readers with questions about Ajax - я и обращался к простым юзерам - хоть те-то должны понимать проблему! Ajax isn't something you can download - и это, блин, не ежу понятно, оказывается... Детский сад! Детский сад!! И эти придурки даже еще и не знают толком, что делать с этим "complex JavaScript code on the client" (!!!) Because this is a relatively new approach, our understanding... ( Ну Мироныч, ну удружил! У меня до сих пор челюсть на место не встала... Хотел было заняться тестом, но где уж там - вырубил ты меня напрочь. 100пудов - браво! Не, попробую все-таки хоть идеологию теста набросать - сложновато там что-то получается. Это вам не AJAX несчастный, господа! Итак, имеем: данные - полученная от БД выборка, она же субграф (связей между элементами - до мамы), она же локальная БД (юзеру - не отличить, за энто дело отвечает APS - Ajax Processing Software Хранение элементов на странице - в одной куче (массиве строк), тогда ID элемента есть просто индекс в этом массиве. Классы... ну ладно, для простоты - в ДРУГОМ массиве (метаданных). Там - описание элементов класса: имена атрибутов, типы данных (число, строка, ссылка), возможно - методы... "и все, что понадобится впредь". Имя класса (то есть опять же индекс в массиве метаданных) - в самом элементе (чтобы понять, что за зверюга). Допускаются множественные значения атрибутов (субполя - с 1НФ пущай негры работают), а также служебные (внеклассовые) поля - например, LINKS (если лень распихивать ссылки по атрибутам). Классом определяется формат(ы) выдачи элемента на виртуальных страницах, разрешено ли ему иметь персональную страницу и, соответственно, прописывать ли соответствующий линк для клика (видимо, просто наличием шаблона страницы), необходимость вызова специализированных утилит, типа подсчета денег в кармане или фильтрации данных в таблицах. Ну вот так где-то приблизительно. Остальное бум смотреть "по месту". Тем более, соображать что-то после нокаутирующего удара от AJAX... P.S. ivanhoe (если он меня слышит - стыдно стало гадить в ту ветку) цитата:Я и говорю: JS вообще никто толком не использует. цитата:А позволительно ли будет узнать - почему? цитата: цитата: цитата:Я же русским языком сказал: А если в том, в чью пользу, не использовать то, что ТАМ принято? цитата:Упс! К типизации?! Полиморфизм?! А как насчет type var образца JS? Во типизация-то, во полиморфизм! цитата: |
| 42. Chippy2003, 14.08.2009 10:30 |
Vladimir Rybinkin В моем варианте держи "сессию" хоть сутками. И безо всяких "заморочек" - получил выборку из БД "на руки", и редактируй до посинения. Затем все "оптом" - на сервер. Поди плохо? гениально но сервер принимающий опт ведь уже готов и успешно протестирован на сотне concurrent клиентов, правда же ? |
| 43. evilbloodydemon, 14.08.2009 10:59 |
Vladimir Rybinkin а можно про вашу концепцию прорыва в будущее почитать, скажем, в десяти словах, а не в десяти томах? |
| 44. dozen, 14.08.2009 17:14 |
Vladimir Rybinkin В графовой терминологии - узлы А-а-а-а, понеслось по новой! "Сетевые базы, туда-сюда, всё супер-пупер, реляция не справится (зато JS -- конечно!), я самый крутой, я начальник цеха, у меня и подчиненные есть (угу, ога), вот и офис у меня (здание заброшено за аварийностью), щас вот выложу миллион узлов, вот щас, щас... устал ждать, выключил, пока посмотрите картинку, вот, вот и еще вот, нет, бинарника не дам, нет, параметры с входа не читаем, только что зашито внутрь, и вообще, я устал, меня еще свершения ждут, некогда мне больше глупостями заниматься!" Гуглю не хило бы вначале свой ПОИСКОВЫЙ сервис по-нормальному сделать... ... сказал ВР, у которого каталогизатор ставил (и до сих пор ставит) вместе "катер" и "Екатеринбург" -- да-да, он же сделан по-нормальному, через SUBSTRING. |
| 45. Konstantin Mironovich, 14.08.2009 21:59 |
Vladimir Rybinkin ради одного сраного AJAX я бы и ветку не завел. не помогло.. автор, как всегда, извернулся, "уточнив проблематику". fuzzy logic в действии.. |
| 46. dozen, 15.08.2009 01:05 |
Vladimir Rybinkin К сообщению приложены файлы: 1.rar Решил один раз увидеть, чтобы уши вконец не завяли. Не работает. Почему? А ругается на то, что eval() неправильно зовешь:
Firefox 3.5.2 Ах, да! Для тебя же не новость, что сейчас следует поддерживать как минимум IE, Firefox, Opera, Safari и Chrome? И что между ними есть определенные различия? И что библиотеки, подобные GWT или ExtJS браузер детектят и прикладывают воркэранды, чтобы они вели себя более-менее одинаково? |
| 47. Chippy2003, 15.08.2009 01:46 |
Hedin gwt-ext выглядит вроде не хуже, и под LGPL. Там засада. GWT-Ext это всего-лишь wrapper над обычным Ext JS, а последний Ext JS под LGPL - 2.02 В общем с Ext мутно, ничего лучше вроде как нет, при этом это лучшее - весьма знатный глюкодром, ну и авторы жадные, как дети |
| 48. ivanhoe, 15.08.2009 02:47 |
Надо сказать, темы (и сообщения) Владимира здорово оживляют данную конференцию. :) Vladimir Rybinkin цитата:Потому что уже много лет существует, например, метапрограммирование. Собственно, eval это тоже в некоем роде метапрограммирование, в предельно грубом из всех возможных видов. Соответственно, требующее очень большой аккуратности при использовании, сравнимом с аккуратностью с работой с указателями. Как и указатели, eval не дает никаких преимуществ по сравнению с более прогрессивными конструкциями, но требует, повторюсь, нечеловеческой аккуратности, которой не обладает никто и код получается плохой, ненадежный, дырявый, ... неприличный в общем. цитата:Думаю что server-side javascript явление не такое уж и экзотическое (т.к. входит в значительную часть серверов приложений для Java) и апологеты Java (например, dozen) могут привести массу примеров где оно используется. "Очевидная причина" такая: если дать пользователю возможность исполнять собственный код на сервере, то он сможет сделать с этим сервером все что угодно и это плохо по определению, т.к. могут найтись (и находятся) злоумышленники, которые, например, взломают сервер и будут рассылать через него спам. цитата:Думаю любому, кто хотя бы видел примеры интерпретаторов и на том и на другом. По компактности кода haskell проигрывает разве что какому-нибудь K (http://en.wikipedia.org/wiki/K_(programming_language)) или иному потомку APL (при этом код на APL-подобных языках совершенно нечитаемый, в отличии от). цитата:А ТАМ ничего не принято, кто как хочет, тот так и пишет. Из более-менее стандартного есть штук пять генераторов парсеров и примерно столько же комбинаторных библиотек. Если писать вообще полностью свое собственное, то вполне функциональная библиотека комбинаторов для парсинга на Haskell пишется за полчаса и занимает 15-20 не слишком длинных строчек. Могу свою показать, писал много лет назад в учебных целях. цитата:Владимир, Вы, однако, проспали и все уже обо всем договорились. Во-первых в JS типизация динамическая, причем образца 70-х готов 20-го века. Если учить ребенка современным веяниям в динамической типизации, то его надо учить perl и Moose. Во-вторых основное развитие по части типизации сейчас происходит в типизации статической, когда максимум возможного контроля делается в период компиляции, а не во время исполнения, как в динамических языках. И учить этим вещам на примере динамических языков можно только одним способом: реализовать на JavaScript статически типизированный язык и уже на примере этого языка показывать что такое типизация, настоящая и развивающаяся. Остается вопрос: не слишком ли это будет сложно и зачем тогда вообще нужен JavaScript? цитата:Кроме концептов (которые, кстати, очень похожи на классы типов из Haskell) все упомянутое в моем постинге уже устаканилось. цитата:Ну как-то странно вот так ставить такой вопрос не имея представления о предмете. Ссылки для вхождения "в тему": * классы типов и ad-hoc (параметрический) полиморфизм http://en.wikipedia.org/wiki/Type_class * полиморфизм вообще http://en.wikipedia.org/wiki/Polymorphism_(computer_science) * типизация http://en.wikipedia.org/wiki/Static_typing P.S. Неужели Вы теперь используете СУБД?!? P.P.S. Не советую экспериментировать с гуглом. У меня один коллега (большой фанат гугла) доэскпериментировался, гугл напрочь забанил его домашний IP. |
| 49. dozen, 15.08.2009 05:50 |
ivanhoe Думаю что server-side javascript явление не такое уж и экзотическое Вполне не экзотическое. Когда народ пишет софт, который деплоится у разных заказчиков, и код надо кастомизировать под каждого (включая и поведение, а не только вид) -- вот тогда динамические языки и прикручивают. Но Javascript не особо популярен, IMHO, больше всякие Groovy. Хотя где-то видел систему, где кусочки кода могли исполняться как на клиенте (браузер), так и на сервере -- по настройкам. Кусочки были, разумеется, написаны на JS по такому случаю. Добавление от 15.08.2009 05:52: ivanhoe Добавление от 15.08.2009 05:55: Chippy2003 |
| 50. ivanhoe, 15.08.2009 07:57 |
dozen цитата:Скорее просто БД (без СУ), т.к. СУ подразумевает все-таки некую отчуждаемость от конкретно-написанной БД. цитата:Ну где-то (говорят) в параллельной вселенной живет компания IBM и ее Кастомеры. В этой вселенной есть Майнфреймы, Сетевые DBMS и Программисты, пишущие миллиарднострочные Проекты на самом Серьезном Языке Программирования (COBOL). Там же существует много других технологий инопланетного разума, недоступных пониманию нормального человека (SNA-сети, терминалы 3270 и пр.) Но Владимир конкретно упомянул MS Access и базу данных "Борей". Прям ностальгия накатила, я ведь "Бореем" тоже вдохновлялся N лет назад и даже использовал в MS Access качестве фронтенда к PostgreSQL/*nix. P.S. А вообще с нереляционками активно мучаются сильнораспределенные товарищи (google, facebook и пр.), см. например, http://blog.oskarsson.nu/2009/06/nosql-debrief.html Правда (т.к. не силен в теории нереляционок) не знаю как называются ихние модели, ассоциативные м.б? |
| 51. arsa, 15.08.2009 17:47 |
ivanhoe eventual consistency |
| 52. Chippy2003, 15.08.2009 20:43 |
dozen Не хочешь платить -- девелопь то же самое сам. Откуда уверенность, что если заплатить - не будешь девелопить тоже самое ? Ext не относится к числу библиотек, которые взял и они заработали как есть. Рано или поздно большинство их классов так или иначе обрастают наследниками/хаками. И тут уж вопрос что лучше, основываться на стабильной LGPL 2.0.2 или на нестабильной Commercial 3.x которая ничего особо нового и не принесла. ЗЫ: как дети, этот попытка запрета использовать 2.0.2 по причине появления классной новой и GPL/комерческой 2.1 или 2.2. Представь, что springsource сейчас объявит: так ребятки, Spring 3.0 стоит теперь 10К$ per CPU, а 2.x мы вообще удаляем с сайта и его нельзя использовать, так как теперь есть супер-пупер 3.х |
| 53. ivanhoe, 15.08.2009 22:51 |
arsa Я имею в виду модель данных, а не модель целостности. Не уверен, впрочем, что у нее вообще есть какое-то название. |
| 54. arsa, 16.08.2009 02:21 |
ivanhoe ну понятно что почти все они хранят просто key-value, кстати недавно читал что реализовали postgres поверх hardoop (гибриз точнее) http://dbmsmusings.blogspot.com/2009/07/announcing-r…oopdb-longer.html |
| 55. dozen, 16.08.2009 08:38 |
ivanhoe Правда (т.к. не силен в теории нереляционок) не знаю как называются ихние модели, ассоциативные м.б? Хрен знает, только для типового энтерпрайза они не подойдут IMHO. Они хороши, когда связанные данные легко можно сфедерировать (слово кривое) вместе. Сложные аггрегатные репорты по этим их бигтэйблам как гнать -- я не знаю (то есть в теории конечно map reduce ихний помочь должен, но теория с практикой обычно расходится). С другой стороны... данные аккаунта какого-нибудь в банке хранить вместе на одном хосте -- и доступ быстрый будет... аггрегаты все равно вычислять геморно, зато горизонтально масштабируется -- ну чистый гугль! Но кто ж тогда проценты от продажи тяжелого железа получаться будет, да откаты с них, а? Chippy2003 Откуда уверенность, что если заплатить - не будешь девелопить тоже самое ? Нет уверенности -- не плати. Делай своё. В жадности-то зачем обвинять? А то пользоваться хочу, а платить -- "оне жадные!". Кто тут жадничает еще, а? Ext не относится к числу библиотек, которые взял и они заработали как есть. Рано или поздно большинство их классов так или иначе обрастают наследниками/хаками. Так происходит с любой (ЛЮБОЙ) широкоиспользуемой либой. Ожидать обратного -- несколько простовато, не? Представь, что springsource сейчас объявит: так ребятки, Spring 3.0 стоит теперь 10К$ per CPU, а 2.x мы вообще удаляем с сайта и его нельзя использовать, так как теперь есть супер-пупер 3.х Я всё жду, когда до них допрет, что так и надо сделать. Про "нельзя использовать" -- это ты загнул, лицензия обратной силы не имеет, но вот "убрать с сайта" -- имеют полное право, ибо САЙТ ИХ. Жадные? Обзаведись мортгажем с variable rate, потом суди. Вообще вся их бизнес-модель -- на данный момент глупость. Продажа поддержки -- это продажа себя по часам, а часов в сутках ограниченное число. Итого их бизнес имеет естественные ограничения на рост. Выпуск коммерческих лицензий типа Enterprise позволил бы масштабировать бизнес кратно ("они спят, бизнес идет"). Они начинают туда двигаться, отсюда и появление всяких tc Server да dm Server, но (IMHO) это несколько не то (к тому же они их бесплатно раздают). Это (особохитрожопые сервера) ниша JBoss, и если вдруг SpringSource нароет что-то полезное в этих tc/dm, то оно появится в следующем JBoss как пить дать. Им (SpringSource) нужно именно лицензировать Spring. Включив в Enterprise версию определенные важные фичи, которых не будет в Community version. Тулсы продавать как Spring Workshop за $1000 за место. Или парни так и должны пожизненно на телефонах сидеть, консультировать тупых кодеров, и на конференциях выступать? Незавидная доля для тех, кто считай в одиночку поднял алтернативную к JavaEE модель (и во многом повлиял на изменения в ней). |
| 56. Vladimir Rybinkin, 17.08.2009 09:37 |
О, активность, вроде, есть. Я, правда, догадываюсь, О ЧЕМ она... Только один хрен - ни отвечать, ни даже читать сил нет. Даю последний "отчет о проделанной работе". Тяжеловат получился для одного поста, но что же делать - знать, работал много! Так, отдышались, отсмеялись - "за работу, товарищи"! Самые простой тип данных у нас - одно информационное поле, вообще без исходящих дуг (на них - ссылаются). Это: должности, скидки и... как-то по-дурацки они там называются... короче - обращение (Dr, Mr, Mrs, Ms). Класса им, стало быть, не положено (класс по умолчанию - DEFAULT). К этому же классу можно было бы отнести и однопольные элементы с обезличенными ссылками, но таких у нас в базе и нет - "групповуха" (Cities, Companies, ...) имеет персональные страницы. Значит, этим элементам положен личный шаблон, а объединяются они в класс SIMPLE, который все, кроме шаблона наследует от DEFAULT. Далее: все остальные классы представляют структуры из информационных и ссылочных полей. Стало быть, в классе описываются они... да точно так же! Имя класса (или NULL), имя шаблона (или NULL - признак наличия персональной страницы у объектов класса), обезличенные ссылки на родителей (или NULL), на детей (или NULL), и для каждого поля: имя атрибута (или NULL), тип данных (точнее, тег: ссылка, фильтр, число, строка или NULL - голая строка по умолчанию)... Усе! Не так уж и сложно, оказывается. Шаблончики, стало быть, есть отдельная группа метаданных, на которую имеется (если она вообще имеется) ссылка из класса или даже из самого объекта. Нормально. Генерацию морды, конечно, придется переписать, но это быстро. Так, с групповухой разобрались: пока два класса и 9 шаблонов, но это на всякий случай - думаю, шаблонов будет заметно меньше. Теперь перепишем генерацию страницы. Обработку ошибок делать не будем - мы же супер-пупер-программисты! Или как там dozen говорит? Так, а чего это я дурью маюсь? Классы же у нас вполне себе объекты, и инициализировать их можно сразу по onLoad... Ха! Так ведь и элементы тоже "вполне себе объекты"! Стало быть, транспортируемые данные должны передаваться в подлежащий "расстрелу" кадр инициализации... прилепим пока к b.j - лень думать. Впрочем, чего уж там - ясный пень, отдельный поток данных... Говорил же раньше, что по нормальному надо данные на морду отправлять в динамике. Интересно, а крыша у JS от такой наглости не слетит? Оказалось, что двухпоточная технология часто неудобна: не в смысле двух потоков, а в том, что оба они одинаковые (очереди методов). Удобнее же иногда поток данных иметь чисто пассивным, без методов. И вызов локальных функций отсутствует (в смысле, из очереди). Но это как-нить на досуге - не весь же SINT сразу сюда совать... Как же задолбал он своей тупой "универсальной" диагностикой Предполагается наличие объекта, строка 1, знак 1! Отладчик, панимашь! Уже все заглушил... Ах, вот оно что! Ох уж это Шарик! Помощничек... Надо же! А вот инициализация на удивление легко прошла, с первого тыка - ни фига не видать исходных массивов. А вот массивы объектов появились, и в них... все путем! Интересно, эти друзья хотя бы инициализирующий софт затирают? Или так и висит? Вряд ли - наверняка бы похвастались. А может, его у них вообще нет? Ну, что же - теперь "отложенная" процедура генерации страниц... работает, сучара! Правда, пока по "универсальному шаблону", но у меня и база пока лишь из групповухи состоит. Пополним... Токо вот по-прежнему ссылку от обычного текста не отличить. Эй, dozen, колись - чего ты там насчет CSS пальцы-то гнул? Хм... Так просто не пополнишь - шутки кончились. Слишком уж все повязано. Следующий шаг, стало быть, вся база, все классы, все шаблоны + управление генерацией именно нужным шаблоном. И все это должно быть реализовано одновременно, поскольку одно без другого будет разве что глючить... Перекур, что ли? Не, уж очень лихо все идет - бросать жалко - просто законсервируем версию. Нет, все-таки перекур - тут ТАКОЕ начинается! Токо на свежую голову. Старость - не радость... А мож, все-таки попробовать проинициализировать массивы РАЗНОРОДНЫХ объектов? Это все же попроще с программерской точки зрения (на первый взгляд). А с идеологической это выглядит так (в реляционной терминологии): объект - это кортеж, но из некоторых полей "растут" массивы (поле-столбец). Иногда и из тех элементов тоже чего-то выглядывает ("елочка" такая), но это экзотика. Вот, скажем, Company: 1-е поле - имя (ID) класса (Company) 2-е поле - ID родителя (Companies) 3-е поле - дети. Бр-р-р-р! Пущай-ка их пока не будет - я и сам еще не знаю, что там за детишки такие. В любом случае - массив ID (пусть и нулевой длины). 4-е поле - информационные полЯ - вот он, массивчик (или вложенный кортежик - кому как удобнее). 4.1 - Address - ссылка на объект класса Address. 4.2 - ContactName - ссылка на объект класса Person. 4.3 - CompanyName - строка: "Around the Horn". 4.4 - Phone - строка: "(171) 555-7788". 4.5 - Fax - строка: "(171) 555-6750". Имена атрибутов, разумеется, лежат в аналогичном массиве в классе Company - это я для наглядности смешал все в кучу. Информационые поля тоже могут быть массивами (скажем, несколько телефонов). Вот такая вот "жуть". Ажно страшно программировать Я был тогда куда моложе, И лучше, кажется, я был, И я умел писать. И что же? Все это я почти забыл. Охренеть! Работает!!! Да почти сразу (выход из бесконечного цикла забыл поставить, и еще пару чего-то похожего - считай, с первого тыка)! Ну, робяты... даже теперь не ожидал от eval такой невероятной мощи... Смотрите сами - вот, например, оператор присвоения: код:Поясняю (m.e - разумеется, eval): i-му элементу (динамически создаваемому в цикле по i) массива данных d(DATA), который (массив d) есть поле глобального (т.е. расположенного на морде, т.е. в index.htm) объекта u(USER_DATA), который (i-й элемент массива d объекта u) и сам объект, у которого в цикле по j создается j-е поле с односимвольным именем, которое в настоящий момент принимает значение либо s(SON_LINKS), либо b(BODY_FIELDS), которое (j-е поле i-го элемента массива d объекта u) и само массив, в котором вот прям ща, в этом операторе, создается k-й элемент, в который помещается строка данных, которая есть вырезка из оставшейся необработанной части строки i-го элемента данных исходного массива строк (x), полученных в кадр инициализации из БД, длиной y символов. Уф! Понятно? А это вывод: строка таблицы из одного элемента (заглушка), генерируемая в цикле по детям при генерации страницы объекта u.n - это евойный ID - поле n(currentNode) объекта u(USER_DATA). код:Поясняю (m.w - разумеется, document.write, пробелы, разумеется, не нужны - добавил, чтобы не испортить ЭТУ страницу): i-й элемент массива детей s(SON_LINKS) у u.n-го элемента ("хозяина" страницы) массива данных d(DATA) объекта u(USER_DATA) имеет право на персональную страницу (генерится ссылка на функцию генерации страницы _(), где параметром выступает ID этого элемента. А выводимым значением (по чему кликать) выводится нулевое (заглушка, сил не хватило - надо, ессно, брать из шаблона) поле массива b(BODY_FIELDS) у объекта-ребенка (того самого, чей ID параметром передается) в том же массиве d объекта u. Ну теперь уж точно перекур! Так хто там бочку катил на eval?! Продолжим... Вначале подшлифуем инициализацию. Она зависит от формата исходных данных, который зависит... сервер тоже надо пожалеть... впрочем, его главная проблема - преобразование внутренних ID базы в локальные ID страницы, а от этого никуда не уйти. К тому же, мы неплохо умеем это делать. Так что жалеть особо нечего, все внимание удобству инициализации на клиенте. А это в первую очередь - универсальность формата для разнородных данных. Что означает... Хм, ничего особо не означает: первым элементом обязательно идет ID класса, и дальнейшим алгоритмом (в т.ч. и инициализации) управляет именно он. Так что и универсальность формата почти не имеет значения. Что же, посмотрим еще раз, чо у нас творится в БД... Наличие шаблона в данных. Вообще говоря, экзотика - только чтобы лишних классов не плодить для групповухи. Ладно, заведем соответствующий битик в классе, и тогда шаблон (при установленном бите) всегда пойдет вторым параметром. В инициализированных же объектах на странице он должен попадать в поле с фиксированным именем - скажем, t(Template). Теперь - поля. Это, стало быть, типы данных. Их... всего-то два: строка и ссылка. Насчет фильтра я, конечно, погорячился - какое до этого дело элементу? Ну и признак: единичный элемент или массив. Никаких многомерных массивов, методов, уровней. Господи, как же все упрощается по сравнению с Синдбадом! Тогда "экспортный" формат есть массив строк, упорядоченный по их "будущим" локальным ID, а в строках в общем случае 2 типа разделителей (полей и субполей). Последовательность полей имеет некоторое значение (для повышения универсальности кода на клиенте). Скажем, "девочки - направо" (ссылки), а самые важные данные - налево (чем важнее - тем левее). Но это проблемы уже серверных шаблонов - вне темы, неинтересно. Далее: отцы и дети. Вообще говоря, задача не из простых, ибо иерархий в общем случае может быть несколько (по разным измерениям). Не будем повторять ошибок раннего Синдбада - пусть будут обычными информационными полями (включены в общую кучу). Тогда это всего лишь частный случай (лишние 1-2 поля в элементе), и обрабатывается по общему алгоритму. Шаблон под это дело не подходит - слишком уж специальные метаданные. Нет, на фиг - уберем-ка шаблон в класс - чо нам, классов жалко, что ли? Или совсем уж обнаглеть? Никаких объектов, вся база - трехмерный массив (кортеж, поле, субполе), а нулевым элементом кортежа - ID класса. Данные только в субполях (код даже проще получается), адресация к любому субполю тривиальна. Как и к полю, кортежу, и даже всей базе (которых на странице теоретически может быть несколько штук одновременно, но это явная экзотика). В отличие от всяких там многомерных кубов размеры массивов переменные, так что места особо занимать не должны... работает! Ну, проще уж просто некуда. Смотрим выдачу... Ой, какой кошмар! Ну, правильно - поля класса не соответствуют полям объекта, а про шаблоны я вообще забыл... Да, на некоторое время придется забыть про желание посмотреть на результат. Впрочем, не так уж и плохо: компании всех видов и города выводятся почти правильно, и даже свои персональные странички пытаются генерить (вообще без шаблонов). Верной дорогой идете, товарищи! С форматом все ясно (да и с инициализацией почти все). Осталось определится с полями окружения (какие ссылки давать, как группировать), но об этом я просто понятия не имею - чего там на клиенте понадобится. Так что дадим пока, что под руку подвернется, а дальше как при коммунизме - по потребности. Ага, и потребность уже налицо: узлам групповухи детей не хватает. А детям родителей? Ну, а как же - детям плохо ведь без родителей... Получите! Ну и хватит, пожалуй, на первый раз: дети уже расплодились всех мастей и размеров, а инициализация - универсальная. Посмотрим на нее повнимательнее - дело явно к финишу. Теперь она уж совсем простая стала - даже классы не нужны: вначале всегда ID класса, затем - поля до упора (не кортеж, чай - массив!), субполя - аналогично разворачиваем в массив 2-го уровня. Более сложных конструкций нет, и в этом тесте уж точно не будет. Ха! Даже eval не понадобился - зря выпендривался. Впрочем, не зря - не всегда же так просто будет. Да и здесь пригодится - инициализацию классов и объектов объединить... Я просто дурею от возможностей. А eval прям полюбил всей душой. А через нее - и весь JS (поначалу морщился - ни указателей, ни goto - противно)! код:Где y определяет имя инициализируемой базы данных (т.е. можно инициализировать сразу несколько баз данных и/или метаданных в одном цикле). ФАНТАСТИЧЕСКАЯ мощь! Даже C так не умеет (по-моему). Гляньте, шнурки, которые охаивали здесь JS вообще, и JS/IE3 в частности. О! Дождался - расплакался мой комп: "сценарий замедляет работу компьютера". Что-то он вообще утух, не выдав и тысячи кортежей. Правда, я его на страницу заставил вывести весь протокол инициализации, а это... Пхи! Всего-то 9000 строк! И в чем дело?! Чего, не отформатировать никак?! Ладно, вырубим - умаялся, сердешный! Ах, это я "утух" - даванул на "прервать сценарий". Разберемся-ка до конца и с классами. Во-первых, они описывают структуру элементов, во вторых - имена атрибутов для выдачи юзеру, для организации поиска и прочей дребедени. В-третьих, они ссылаются на шаблоны выдачи, которые уже выделены в отдельную группу метаданных, что пока еще спорно. В-четвертых, они пока что не содержат, но могут содержать методы - как системные (типа контроля целостности данных), так и юзеровские. Что-то меня опять в Синдбада понесло - какие, в задницу, системные - на клиенте-то, да еще в тесте! Таким образом, функциональная нагрузка элементов класса различна, и частенько пересекается... По-видимому, нужно все-таки воспользоваться упрощенной технологией Синдбада: классы (методы, шаблоны, структуры, атрибуты, ...) суть элементы единой базы метаданных, и перевязаны между собой нужным образом. Класс же есть обычный узел этой базы (точка входа в метаданные для объектов этого класса). Следовательно, структура хранения... см. выше для данных - ничем не отличается (как и инициализация). Так и было задумано. Теперь - какое-то подобие языка описания. Нам нужно: уметь ссылаться на кортеж, поле и субполе, на данные и метаданные, прямо, косвенно (по содержимому какого-нить параметра), и по траектории (цепочка косвенных адресаций). При этом связываться с ветвлениями, циклами, скобками и т.д. ну очень не хочется - по крайней мере, в этом тесте. Ой, мама! Так ведь если использовать разделители субполей (а что же еще?), цепочка при инициализации автоматически развернется в массив (как и косвенная адресация), и реальные данные всегда лежат в конце этого массива (для прямой адресации - в нулевом элементе). И ваще по барабану, ссылочное это поле или нет (в крайнем, случае, броузер ругнется). Что-то не верится - какая-то заоблачная универсальность... Обязательно во что-нить вляпаемся: этого не может быть потому, что не может быть никогда. А ну-ка, попробуем... во, для детей группы "города" страну вторым столбцом и прилепим. Во зараза! Забыл, что шаблоны начинают работать сразу для всех классов... но это же для нас, моряков, пыль... радиоактивная, блин... Итак, функция получения краткой информации о ресурсе (если надо - со ссылкой) - это инструмент, между прочим!(с) Куды ее - в строку, али сразу в поток? Сразу, конечно, пока по морде не получим... Полная инфа - подождет... Нет, стоп! А как ее вообще сделать - функцией или очередью? Ладно, пока - функцией... Передается ей... Антон с Олегом в свое время порезвились - там какие-то совершенно жуткие возможности для выдачи, включая обращение к серверу с запросом на выполнение каких-то расчетов, плюс почти непрорубаемый нынче синтаксис. А, ладно - передаем ей пока что просто ID элемента - и пусть выкручивается, как знает... Ффффуууу, заработало! Рубикон пройден - по опыту знаю. Теперь информационная насыщенность страниц всех видов будет стремительно нарастать - токо успевай подсовывать классы, шаблоны, ссылки... Надо бы учет посещенных страниц наладить (для VLINK), историю посещений завести, поскольку этот идиот броузер... dozen, не ты писал? Ну чо, комментарии будут? Или опять воды в рот наберете? Не молчите только - мне ОЧЕНЬ нужна обратная связь (хотя бы на уровне пользователей). Хоть глупости, но говорите - тема же НЕ МОЖЕТ не быть интересной! Ладно, хрен с ними, с "программистами" (которые сами ничего не умеют, кроме как надувать щеки - их "ответы" я и заранее знаю, они никогда не меняются), но хоть пользователи Интернет здесь имеются? В качестве провокации на ответы: Быть глупым или невежественным - это абсолютно нормально, господа. Вот трусом быть - это и в самом деле позорно. |
| 57. Hedin, 17.08.2009 10:06 |
Vladimir Rybinkin Ну чо, комментарии будут? А какой смысл разговаривать с радиоприёмником? Всё равно ведь - один хрен - ни отвечать, ни даже читать сил нет |
| 58. dima.yegorov, 17.08.2009 10:15 |
Похоже на программирование ради программирования... В Firefox 3.5 наблюдаю только надпись Loading... В Internet Explorer 8 (XP) наблюдаю сначала предупреждение системы безопасности. Если согласиться запустить вашу поделку, наблюдаю "<script language=" и всё. Да-да - именно текстом угу. P.S. Это Вам на уровне пользователя обратная связь. В программировании конкретно на JS я не особо силён. |
| 59. Chippy2003, 17.08.2009 10:25 |
dozen Про "нельзя использовать" -- это ты загнул, лицензия обратной силы не имеет Именно обратная сила, и я тут не при чем. К сожалению, логов удаленных и правленных постов Джека (автор Ext JS) у меня, конечно, нет, но лулзы были знатные Тут в кратце, но увы чрезмерно политкорректно, без ярких цитат Джека http://www.jroller.com/sjivan/entry/my_response_to_jack_slocum http://www.gwtsite.com/ext-gwt-gwt-ext-what-now/ здесь же показательная ссылка на ответ Джека Им (SpringSource) нужно именно лицензировать Spring. Включив в Enterprise версию определенные важные фичи, которых не будет в Community version. Это абсолютно нормальная схема. Схема Ext - так юзеров набрали, теперь либо пусть платят, а кто не платит идет лесом, с LGPL правда вышел облом. |
| 60. SERGEY_BIG, 17.08.2009 10:54 |
Читаю я эту тему и "... таблицы и картинки пропускаю, а в пролетарскую суть вникаю..." Конечно, разгрузка сервера БД - дело благородное, только вот то, от чего пытается разгрузить его топик-стартер, серверу - как слону дробина. Ему, бедному, нужно ведь индексацией заниматься, транзакциями там, репликацией, обработкой запросов, штатным обслуживанием данных, причём всё это одновременно и для многих пользователей. От этого, конечно, чтение панегириков конструкции eval (ИМО, вреднейшая конструкция) не становится менее занимательным |
| 61. moderator-Kid, 17.08.2009 15:29 |
[Модератор внимательно приглядывается к данной теме и надеется на вежливое и разумное поведение участников. Иначе - ой.] |
| 62. arsa, 17.08.2009 18:30 |
Chippy2003 я думаю всё логично и я лично не против такой лицензии. LGPL не может нормально существовать в вебе, imho. по этой же причине был придуман AGPL. единственное что меня смущало это реакция авторов addon-ов, но вроде они тоже успокоились |
| 63. dozen, 17.08.2009 18:59 |
Chippy2003 но лулзы были знатные Wow! Каким-то образом этот знатный скриптосрач прошел мимо меня совершенно незамеченным! Добавление от 17.08.2009 19:04: arsa Добавление от 17.08.2009 19:09: moderator-Kid |
| 64. Chippy2003, 17.08.2009 19:57 |
arsa LGPL не может нормально существовать в вебе GPL тоже. единственное что меня смущало это реакция авторов addon-ов, но вроде они тоже успокоились а какие теперь могут быть аддоны ? допустим кто-то написал компоненту под Ext, и пытается ее распространить под GPL кому ? Обладатели GPL версии Ext вряд ли массово существуют в природе, так как разработчики ext требуют открытия серверного(!) кода под GPL. Обладатели же коммерческой версии Ext не смогут использовать эту компоненту, так как она под GPL. Ext теперь вещь в себе |
| 65. ivanhoe, 17.08.2009 20:26 |
Vladimir Rybinkin Владимир, я рад что Вы открыли для себя конструкцию eval, но для приведенных примеров достаточно по-моему обычных ассоциативных массивов, которые бывают даже в C. Eval, кстати, в C/C++ тоже бывает, называется, CINT (http://en.wikipedia.org/wiki/CINT) (почти СИНТ) цитата: Ну пользователю надо уже что-то законченное и работающее. Тесты 1-3 по-моему, ни у кого их присутствующих не заработали. dozen цитата:Вопрос даже не в том, подойдет или не подойдет, а в том насколько это, так сказать, технико-экономически обосновано. На мой взгляд, если хватает большого железа и Оракла (а для энтерпрайза и даже для carrier-grade их хватает в 99.99% случаев), то надо использовать большое железо и Оракл, будет лучше (и дешевле) и разрабатывать и эксплуатировать. На реляционках кстати сильнораспределенные решения тоже строят, у skype например какой-то нехилый (несколько тысяч бекендов) кластер из постресов. цитата:Я читал, прям-таки с упоением. Всегда считал программирование web-морд скучнейшим занятием, а тут столько эмоций, экспрессии... :> |
| 66. arsa, 17.08.2009 20:42 |
Chippy2003 гм. странный аргумент насчёт серверного кода. и да, конечно, определённый серверный код нужно открывать по причине GPL. в своё время я довольно много об этом читал, и в общем то да, это проблема. но проблема только в том случае если вы генерируете динамический javascript код (который потом использует extjs) на сервере. это весьма узкая ниша, которую конечно занимают все GWT и всякие WYSIWYG решения, но честно говоря большинства людей которые просто делают на ExtJS сайт это не касается - они могут спокойно GPL-ить свой javascript (и держать его отдельно), а серверную часть оставить закрытой. http://extjs.com/forum/showthread.php?p=156236#post156236 кстати аддоны вполне нормально пережили переход, даже Livegrid за который я так волновался. они спокойно перешли на ту же dual модель. dozen да, конечно доверие подорвано. вопрос что дальше, есть ли альтернатива. вот например bittorrent, точно так же человек лично за свои деньги писал чуть ли не два года его, и теперь хочет что то получить за это. (и кстати используется похожий аргумент - многие adware просто переделывали oss клиенты, как некоторые компании брали extjs и перепродавали) |
| 67. Chippy2003, 17.08.2009 21:04 |
arsa прямо по ссылке: Suppose you have an index.php that includes Ext JS. According to the FSF, in that case index.php would be also under GPL since it is using ext. Since it must be GPL, it's source must be distributed. Since it is GPL, the "viral" effect of GPL is now in effect and any thing that uses index.php (if anything) on the serverside would also fall under the GPL. Возьмем строгую server-side MVC. index.jsp includes ext js, она заражена, на нее в свою очередь завязаны view resolvers, они теперь тоже заражены, resolverы выводят на конфигурацию всего web-app... gg |
| 68. arsa, 17.08.2009 21:42 |
Chippy2003 я же говорю - js отдельно, я думаю это можно технически реализовать (выделив страницу-загрузчик ext в отдельную страницу или вообще проект - дабы не "заражаться"). к примеру, собственно то приложение которое я писал год назад и из-за которого я знаком с Ext - там вообще не было никакого общения с сервером кроме заргузки javascript и потом json. понимаю что это совсем другая модель разработки (может быть не приятная и не удобная - более похожа на client/server). но мне кажется что намного сложнее уговорить себя выпустить весь свой javascript под GPL, особенно в случае когда в общем то никакой привязки к серверу кроме (обычно достаточно статичного по структуре) json не остаётся. об этом надо думать, а не о технических аспектах "заражения" GPL. Лично на меня всё это производит впечатление хорошее, и не позволяет вендорам закрыть всякую возможность модификации кода, для чего собственно GPL и существует (в том числе). Максимум что они могут сделать это усложнить/запатентовать свой json протокол, я думаю к этому всё и прийдёт (см. ActiveSync). С другой стороны RMS как всегда против |
| 69. Chippy2003, 17.08.2009 23:11 |
arsa я же говорю - js отдельно, я думаю это можно технически реализовать А, так да, согласен. Хотя тоже подрезает сферы использования до фактически "ext application". Максимум что они могут сделать это усложнить/запатентовать свой json протокол уже не помню, кто именно, формы или гриды, не понимают маппинг вложенных объектов, код:зато понимают в извращенном виде: код:уговорить javовский gson выдать по хорошему такой ужас не получилось, пришлось "изнасиловать" через reflection. Правда, подозреваю, что этот формат читается абсолютно случайно, а не так задумывалось. Добавление от 17.08.2009 23:28: arsa |
| 70. dozen, 18.08.2009 07:46 |
ivanhoe Я читал, прям-таки с упоением. Всегда считал программирование web-морд скучнейшим занятием, а тут столько эмоций, экспрессии... :> У меня ребенок, когда смотрит какие-нибудь старые фильмы (которые я смотрел раз 50 уже, конечно) тоже очень экспрессивно делится своими наблюдениями и догадками. Забавно наблюдать ход мысли и сравнивать в голове с "как на самом деле". Вот такое у меня чувство и при чтении опусов ВР. |
| 71. Vladimir Rybinkin, 18.08.2009 10:22 |
Беглый просмотр показывает... Ладно, посмотрим подробнее. Сейчас - ответы на посты до моего вчерашнего. Chippy2003 цитата:Естественно! Чем, собссно, опт от розницы отличается? evilbloodydemon цитата:А ветку почитать слабо? Я формулировал с использованием РАЗНОГО количества слов - на любой вкус: Konstantin Mironovich, например, аж в ДВУХ словах: Ajax Processing. Ох, простите - я на ник поначалу внимания не обратил. Чего изволите? Konstantin Mironovich цитата:Еще как помогло! Спасибо! цитата: dozen цитата: цитата:О-хо-хо... Чего ж тебя так корежит-то? Или мучает, что я программист, а ты всего лишь эксперт? Ладно, объясняю подробнее (специально для экспертов цитата:Умница! Надо же, какой давний пример помнишь - видать, эффектный был. Насчет SUBSTRING ты, конечно, ляпнул не подумавши, но в остальном ты прав на 100%. Именно так: компьютер не имеет ни малейшего понятия (и не должен, кстати), какая моча ударила в голову юзера. Мож, он именно и хочет узнать слова, в которых встречается "катер". Скажу больше: как раз этот софт и показал в дорожке рубрикации на РОМИП... 2004, что ли... самый лучший результат (правда, лишь по точности). Или бушь говорить, что там всякая шваль собиралась (вроде Ильи Сегаловича)? цитата: цитата:Новость! Я стараюсь пользоваться МИНИМАЛЬНО возможным набором средств JS. И что, все равно для каждого из них персональный JS-код требуется? А для каждой версии не просят еще? Программеры, блин! Броузер-то детектить не проблема. Но просто СТЫДНО! Да и вообще - читал бы ты уж лучше свою "подшивку журнала Хакер", что ли - все равно пользы с тебя в этой ветке, как с козла молока. Не, я не гоню - боже упаси - с тобой забавнее. Но... неловко иногда за тебя бывает - ты же явно ИСКРЕННЕ считаешь, что я не знаю, как нужно "правильно" eval вызывать. Кстати, огромная просьба: замени контекстной заменой в том примере, который тебе понравился, "m.e" на "eval". Ежу понятно, что тем более работать не будет, но мне жутко интересно, какими словами он НА ЭТОТ РАЗ будет ругаться. Уважь, а? Chippy2003 цитата:Умница! Золотые слова! ivanhoe цитата:Государь, здесь собрались одни куры. Как же я могу снести яйцо, если я среди них единственный петух? (c)Бирбал. цитата:Отмазка! Чем не устраивает eval? Конкретно, и не прячась за умные слова (тем более - за ссылки). Это трусость, мой дорогой! цитата:Естественно! Любой мощный инструмент требует аккуратности - это же ОРУЖИЕ! цитата:Умница! Я когда-то глянул на JS - а там указателей и нет. Я сразу плюнул - "дерьмо, без вариантов". Потом присмотрелся - ба, eval! Ну я же все уже описывал... цитата: цитата: цитата:См. выше. И вообще, если программист по доброй воле(!) отказывается от использования указателей, тем более, из-за сложности (!!!), дальше его можно просто не слушать. Это - чайник по определению, и чем бы он "в новых, комфортных условиях" ни занимался, этим занятиям есть единственное определение: онанизм. Вариант - выполнение простеньких задач в качестве подмастерья. цитата:Ну... допустим. Я и на сервере буду использовать лишь то, что есть везде и всегда, и отлажено тыщу лет. Таковым я считал и JS, но у dozen, например, даже с динамическим вызовом eval, оказывается, проблемы. Причем - безнадежные: эта возможность была, но ее специально нашли, и вырезали на фиг - во позорище-то! Как же далеко шагнула техника... цитата: цитата:Ну, а Вы, лично Вы, к "любым" относитесь? Тогда почитайте мой ПРЕДЫДУЩИЙ пост. цитата:Ok, я примеры на JS выложил в трех экземплярах. "Компактный" аналог на haskell - в студию! Вот, скажем, для 3-го теста. Там у меня... 619 виртуальных страниц. Компактность... 19223/619=31.054927 байт на страницу (не считая фильтров - иначе наверняка меньше байта на страницу получится). При этом самая большая из виртуальных... цитата:...JS - там же C-синтаксис. цитата: цитата:Не, лучше реализуйте хотя бы один из моих тестов. В учебных целях. цитата:Ха-ха-ха! Про объекты мне точно такими же словами говорили. Вы не оттуда фразу списали, случайно? А копнул чуть - как заспорили! Уже не со мной - друг с другом! цитата:Вот и хорошо. Тогда водились еще программисты, которые не шарахались от указателей, как черт от ладана... цитата:Ну хоть детей-то пожалейте - свои, небось? Впрочем, я очень прошу проявить милосердие даже в том случае, если это дети Вашего злейшего врага. цитата: цитата:У кого-то из нас, извините, уже крыша поехала. Напомню: JS - это ИНТЕРПРЕТАТОР. Какой, в задницу, "период компиляции"?! Пардон, а сами-то Вы знаете, "что такое типизация, настоящая и развивающаяся"? Или "зачем вообще нужен JavaScript"? цитата:См выше про объекты. И, кстати, что же все-таки за зверь "классы типов"? цитата:Ничуть! Именно не имея представления вопросы и ставятся. Более того, у меня очень сильные подозрения, что и Вы сами этого представления не имеете (в противном случае дешевле просто ответить). цитата: цитата:Ни хрена не понял. Где? Почему "теперь"? На хрена? цитата: dozen цитата:Умница! Отвечаю: ЭТО - не использовал, не использую, и использовать не собираюсь. цитата:Почему "монстрики"?! Уж по компактности-то Синдбад дерет кого угодно на порядок. цитата:К сожалению, нет. Силенок маловато. цитата:Тому, кто понимает, что мучения-то как раз с реляционной. ivanhoe цитата:Угу. А вот "СУ" как раз абсолютно плевать на "конкретно-написанную БД". цитата:Нет, это обычное заблуждение: отождествлять "сетевую модель" с "сетевой моделью CODASYL". Еще худшее заблуждение (и куда более распространенное - о CODASYL вообще мало кто слышал) отождествлять DBMS и RDBMS. цитата:А на что? Меня как раз вдохновила потрясающая уродливость схемы, дикая избыточность, куча ошибок (в т.ч. благодаря этой избыточности), практически нулевые функциональные возможности... А Вас? dozen цитата:В смысле, либа сразу такая классная, что незачем ей ничем "обрастать"? Кому это нужно? Нужно: наставить возможно больше дыр, и впаривать доверчивым дуракам версий по 20 этой самой либы. Так что... либо либа, либо не либа (с)Юра Шпеер. А бабки... К сообщению приложены файлы: 1.rar, 5Кb |
| 72. zzf, 18.08.2009 14:04 |
Vladimir Rybinkin К сообщению приложены файлы: 1.rar Что нам должна была продеМОНСТРировать сия поделка? Изменение состояний контролов не производит никаких видимых эффектов. |
| 73. rGlory, 18.08.2009 19:21 |
Vladimir Rybinkin цитата:Я знал, я знал... zzf цитата:Не обращайте внимания, это фирменный стиль ВР - повыкладывать невнятные примеры, почмокать над ними "тут уже почти круто все работает, осталось только допилить чутка", а чуть позже на это ссылаться как "помните, как я вам всем там нос утер своим супер примером, который работал просто на ура". Наслаждайтесь процессом |
| 74. dozen, 18.08.2009 20:25 |
Vladimir Rybinkin: Я не изворачиваюсь "как всегда"... Именно изворачиваешься, и именно как всегда. Твои темы шаблоном генерить можно. А мозги включать не пробовал? JS - это КЛИЕНТСКОЕ ПО, и ему до задач, с которыми "реляция не справится", глубоко... Ты же Борей на JS реализуешь, не я. Про сервер-сайд ты пока не заикался (впрочем, с ним у тебя традиционно проблемы -- сколько лет в твою гостевую безвозбранно постили спамеры, пока ты не нашел радикальное решение -- HTTP 404 (http://www.2bit.ru/cgi-bin/gbb.cgi) ? Для меня же все это, вместе взятое (весь клиент) есть всего лишь технологический прием, чтобы заняться НАСТОЯЩИМ ДЕЛОМ Настоящее дело -- это то, за что сегодня или в перспективе платят настоящие деньги. Тебе не платят ничего. Первый шаг к преодолению профессиональных проблем -- признать, что они есть. Тебе следует сказать себе "всё, что я делаю -- никому не нужно; я бездарно потерял годы жизни на бесполезные трепыхания; я признаю, что я не великий, а всего лишь выдающийся (С) ... " (Синдбадом - НОРМАЛЬНОЙ СУБД, а не этим реляционным убожеством, все заполонившем, и ни хрена не умеющим). 1. Синдбада никто не видел 2. Синдбад ничего не умеет 3. Синдбад никому не нужен Dixi. А сам Синдбад есть всего лишь повод, чтобы заняться СОВСЕМ УЖ НАСТОЯЩИМ ДЕЛОМ (SINT СИНТ -- убогое непортируемое ... СИНТ нечитаем СИНТ никому не нужен ибо вещи там РЕАЛЬНО сложные Да-да, такие сложные, что почти догнал 10% от TurboVision. Я гвоздики выковывал, которыми блоху подковали - там уж никакой мелкоскоп не поможет. Походу, выходил повсеместно железнодорожный пучинный костыль. Мож, он именно и хочет узнать слова, в которых встречается "катер" Да-да! Я ищу "катер", чтобы найти Екатеринбург! Это, что-ли, и есть твое "настоящее дело"? Придется огорчить -- за такой поиск денег не заплатят (и не заплатили, собственно -- поржали на конференции, да и забыли). А гугль со своим поиском миллиардики делает. Но у него не настоящее дело, конечно, так, детсткие игрушки и карманные деньжата. Это у ВР -- настоящее, и бабло в размере 15 рублей в бумажный стаканчик. Что, Билл решил крылышки пообрубать, инструментарий подрезать, чтобы только евойным дерьмом пользовались? Это, вообще-то, Firefox был. Знаешь такой? И что, все равно для каждого из них персональный JS-код требуется? А для каждой версии не просят еще? (До него начинает доходить, вау!) Броузер-то детектить не проблема. Но просто СТЫДНО! Действительно, стыдно выкладывать свои поделки, когда они ни у кого не работают. ты же явно ИСКРЕННЕ считаешь, что я не знаю, как нужно "правильно" eval вызывать О, что ты! Ни в коем разе! Я считаю, что ты практически ничего не знаешь! Кстати, огромная просьба: замени контекстной заменой в том примере, который тебе понравился, "m.e" на "eval". Ежу понятно, что тем более работать не будет, но мне жутко интересно, какими словами он НА ЭТОТ РАЗ будет ругаться. Уважь, а? Кстати, огромная просьба -- стащи себе сам Firefox, и тестируй свою поделку и на нём тоже. И на Opera. И на Safari. На Chrome можешь пока забить, в качестве подарка от меня Чем не устраивает eval? XSS, например. Напомню: JS - это ИНТЕРПРЕТАТОР. Какой, в задницу, "период компиляции"?! Что, интернет (http://ajaxian.com/archives/javascript-jit-the-dream-gets-closer-in-firefox) за неуплату отключали? А каким образом он может вообще узнать о моих экспериментах? Расслабься, ты ему нафиг не сдался. Единственное что, твой каталогизатор у них в комнате смеха висит, вместо кривого зеркала. Почему "монстрики"?! Уж по компактности-то Синдбад дерет кого угодно на порядок. Монстрик -- он маленький, но уроооооодливый! Так что... либо либа, либо не либа (с)Юра Шпеер. Бедный Йорик... в смысле, Юрик. Наверное, икается каждый раз, когда ВР его в свою защиту притаскивает. (Напомню, что именно имя Шпеера стоит в титрах шахматной программы, которую ВР выдает за свою). |
| 75. lvqcl, 18.08.2009 21:25 |
dozen Кстати, огромная просьба -- стащи себе сам Firefox, и тестируй свою поделку и на нём тоже. И на Opera. И на Safari. На Chrome можешь пока забить, в качестве подарка от меня (задумчиво) А под Win98 они работают? А то у ВР, кажется, именно она. |
| 76. dozen, 18.08.2009 21:54 |
lvqcl А под Win98 они работают? А то у ВР, кажется, именно она А почему пользователей должны волновать проблемы Мастера Недоделкина? |
| 77. ivanhoe, 18.08.2009 22:54 |
Vladimir Rybinkin цитата:eval не устраивает тем что сложнее, неудобнее и небезопаснее в использовании. цитата:Ну это Ваше личное мнение, с которым согласны не все. А чтобы подводить "точку" одним своим высказыванием, надо быть каким-то вселенским авторитетом. В программировании таких авторитетов нет, точнее есть, но в каждом течении они свои. :) цитата:Указатель отличается от переменной тем что может указывать в никуда или куда совсем не надо указывать, следовательно, за значениями указателя надо тщательно следить. У переменных этого недостатка нет. Однако есть другой - надо следить за значениями, что они присваиваются какие надо, где надо и когда надо. Поэтому я предпочитаю работать с константами. :) цитата:Но употреблять ее можно по-разному. Одни употребляют на задачу, другие - еще и на борьбу с указателями. Соответственно, первые, при прочих равных, уделяют задаче больше времени и результат, при прочих равных, получается лучше. цитата:А мне казалось наоборот, выполнение сложных и интересных задач в качестве техлида. :) цитата:Хакеры и спамеры это, так сказать, "объективная реальность, данная мне в ощущениях". Напомню, речь шла про калькулятор написанный mike_teplitsky. Я указал на его недостаток, что из него нельзя сделать серверное приложение по причине использования eval, т.к. кто угодно сможет выполнить на сервере что угодно. цитата:Пожалуйста: код: цитата:Хоть что-то осмысленное показывает только четвертый тест (из последнего сообщения) и поэтому только он представляет интерес. Бегло посмотрев, обнаружил, что JavaScript используется для упаковки HTML. Не очень понял в чем смысл этих тестов. Варианты пришли в голову следующие: 1) минимизировать передаваемые пользователю HTML файлы 2) минимизировать размер генератора HTML Какую из этих задач надо решить или какую-то еще? цитата:Вы мои ссылки не прочитали, но убеждение уже имеете, как это прекрасно. :) цитата:Так не бывает. :) цитата:Напомню ход обсуждения. Я сообщил, что сейчас одним из самых интересных в программировании является типизация и все что с ней связано. Поскольку типизация сейчас развивается в основном статическая, поэтому я порекомендовал изучать языки со статической типизацией, а не JS. И, конечно же, я в курсе и что такое типизация и пр. А также в курсе, что разница между интерпретаторами и компиляторами в настоящий момент весьма условная. До недавнего времени, например, отличие между интерпретатором и компилятором заключалось в том, что компилятор компилирует в машинный код, а интерпретатор - в байт-код виртуальной машины-интерпретатора. Однако сейчас появились и JIT, генерирующие из байткода код близкий к нативному и языки Perl, Python и пр. компилируют в машинный код посредством LLVM. цитата:Класс типов - это по простому "тип типов". Например, в Haskell есть стандартные классы: Ord (типы, для которых определены операции больше-меньше-равно), Num (типы, для которых опредены операции сложения-вычитания-умножения) и пр. Например, тип String является экземпляром класса Ord, но не является экземпляром класса Num. А вот тип Complex (комплексные числа), наоборот, является экземпляром класса Num, а классу Ord не принадлежит. Вокруг классов типов есть много всего интересного, они в частности используются при выводе типов, позволяют писать обобщенный и вместе с тем безопасный код, но изложить это в двух словах я не в силах, почитайте, plz, хотя бы википедию. цитата:Узнать может разными способами. Самый простой - если превышен некий порог кол-ва запросов в еденицу времени. Видимо от Вас запросов было немного. цитата:Меня исключительно как пример использования MS Access, подробностей не помню (дело было более десяти лет назад). Поставленная задача (формирование отчетов на основании данных из БД и их печать на принтере) была решена успешно, на чем мой опыт работы с MS Access и закончился. |
| 78. dozen, 19.08.2009 00:21 |
ivanhoe Видимо от Вас запросов было немного. Последний в стране модем на 2400, однако... Добавление от 19.08.2009 00:41: zzf |
| 79. zzf, 19.08.2009 02:46 |
dozen Он туда собственно JS-файл i.j забыл(?) положить. Да копировал я его. |
| 80. ivanhoe, 19.08.2009 02:53 |
Vladimir Rybinkin Кстати, да (к предыдущему постингу). Не очень понятно, почему бы Вам не выкладывать свои тесты сразу на Web, у Вас же есть свой сайт? И никакие файлы никуда не пропадут. |
| 81. dozen, 19.08.2009 05:26 |
ivanhoe Не очень понятно, почему бы Вам не выкладывать свои тесты сразу на Web, у Вас же есть свой сайт? Дык тогда не получиться сослаться, что "забыл файлик положить, а сейчас уже весь код изменил, да и некогда мне, некогда" Добавление от 19.08.2009 05:48: ivanhoe |
| 82. Vladimir Rybinkin, 19.08.2009 10:03 |
Хм. Думал, сейчас-то отвечу сразу, а здеся... Впрочем, это радует... Hedin цитата:Вы, простите, о ком? Это, батенька, МНЕ не отвечают (в частности, лично Вы - на мой вопрос насчет RPC). Но если у меня даже и нет сил, не стоит делать далеко идущих выводов. Отдохну - отвечу. Ищите другие отмазки. dima.yegorov цитата:Возможно - не знаю, что это такое. цитата:Это уже немало! цитата:О! Это интересно - чем же этот друг озаботился? Как перед Богом: ни один из трех тестов, никуда не лезет, ничего не не делает, кроме как перезаписывает сам себя (document.write). Чего это он так обо... испужался-то? Я понимаю еще на заре программированя (для меня это были "монстры" типа БЭСМ-6 или ЕС-1020, "небольшие" компьютеры вроде СМ, и понемногу появлялись первые ПК - ДВК, ХТ и советская пародия на них "Искра" со своей "Альфа-ДОС" - до сих пор в дрожь бросает). Это я еще могу понять: математика толком не отлажена, железо и при безошибочной работе на ладан дышит, а уж если что случится... Чих влево - BIOS накрылся, чих вправо - микросхему спалил (мы с Юрой знали, например, как программно головку дисковода отломать к чертовой матери). Но и программисты росли здоровыми, крепкими, зубастыми. А сейчас... опасность вроде еще меньше, но программистов перепеленали так, что они ни ручкой, ни ножкой дрыгнуть не могут, и кормят с ложечки: Наш мальчик умный, наш мальчик ловкий, наш мальчик все умеет... А ну их, указатели - нехорошие они, противные, они хотят, чтобы наш мальчик нечеловеческие усилия прикладывал... Не будет этого - кыш от нашего мальчика! У нас здесь хорошие конструкции есть, прогрессивные... Агу! Ну и закономерный результат: не только сами программисты, но даже их софт стал беспомощным и трусливым до неприличия. SERGEY_BIG цитата:Да неужто?! 1. Объем передаваемых страниц при такой технологии, очевидно, уменьшается в разы. Облегчение, нет? 2. Пользователь, получая "на руки" уже не страницу, а целый виртуальный сайт, будет ковыряться в нем тоже в разы дольше и, соответственно, беспокоить сервер куда реже. Облегчение, нет? 3. Посылать ему при дальнейших запросах можно уже лишь недостающую информацию, а комбинировать страницы из нового и старого будет уже сам клиент. Облегчение, нет? 4. Немалую часть запросов юзера тоже можно выполнить на клиенте, по имеющимуся ТАМ данным. По моим оценкам, таких "внутренних" запросов должно быть не менее половины. Облегчение, нет? 5. "Одновременности" не бывает, это только видимость. Есть такое понятие "квантование". 6. До "многих пользователей" еще дожить нужно. А если это радостное событие все же случиться - можно воспользоваться хотя бы технологией того же Google: натравить на них здорове-е-е-енный кластер со сворой ощерившихся компов. 7. "Внутренние" проблемы сервера клиентов не волнуют по определению - пущай занимается на здоровье, чем ему там нужно. Это не есть тема ветки. Хотя индексацией заниматься лично я своему серверу не позволю - этой глупостью пущай чужие серверы занимаются. цитата:Я рад, что Вам это занимательно. И по поводу "вреднейшей конструкции" согласен. В самом деле: использовать мощный, гибкий, компактный, эффективный код, да еще безо всяких библиотек?! Да разве ж такое возможно? ivanhoe цитата:Это песня! Во-первых, какое кому дело до того, что "бывает даже в C", даже если там и "бывает" что-то очень хорошее, нужное, важное? Во-вторых, что это за зверь такой "обычные ассоциативные массивы", и чем они "обычнее" eval? И каким боком Вы их собираетесь прилепить "для приведенных примеров" (особенно для первых двух)? В-третьих ЗАЧЕМ?! Вы упростите код, уменьшите объем, увеличите функциональность, еще что-то? цитата: цитата:Вот именно такое я и посылал. цитата:И У ВАС?! Откуда же тогда откровения про то, что для них "достаточно"? цитата:Да?! ЭТО Вы считаете "программированием web-морд"? Ну... в принципе, Вы правы, хотя я бы так назвать не решился. И что, Вы умудряетесь скучать при программировании морды, которая FRAMESET?! Или Вы знаете кого-то другого, кто при этом "скучает"? Или Вы вообще никого и ничего не знаете, а просто так "считаете"? Последний случай неинтересен, а об остальном нижайше прошу возможно более развернутых подробностей. Chippy2003 цитата:Ну какие еще нужны доказательства? Из-за подобной смехотворной осечки приходится кого-то "безуспешно уговаривать", кого-то "насиловать"... Вот, например, у меня в 3-м тесте (фрагмент): "Монтевидео125 3 551","Москва125 3 467","Мраморное525 7 54 223 502", И никого не уговаривал, никого не насиловал, сам придумал, сам реализовал, временные затраты - смехотворные. Погано? Да, погано (хотя этому тесту лучше и не нужно). Для четвертого не годится (пухнет софт, растут тормоза), хотя и ему я уже туеву хучу различных способов организации данных протестировал за какие-то несколько дней - и попробовал бы он у меня хоть один "не понять"! "1265187 Suffolk Ln.83720", Вот что это? Ну, ясный пень, адрес с индексом, но чей? В какой стране, в каком городе, какой компании, и компании ли вообще - мож, "человечий"? А прога (КЛИЕНТ!) прекрасно знает: компания, из тех, которые Customers, в каком-то задрипанном Штатовском городишке (я, по крайней мере, про такой не слыхал). При этом массив третьего теста рабочий (используется в том же виде, в котором получен), а массив четвертого каждый новый инициализатор имел, как хотел - всеми способами. Но "понимание" от этого только увеличивалось. А Вы маетесь с каким-то несчастным city.name:Moscow... Тихий ужас! цитата:Платите! Только шантажисты те похитрее, а вы замечаете лишь сверхнаглых, и при этом еще свертупых. Вона, dozen (а может, даже и всех вас, здесь присутствующих - кто знает?) ограбили средь бела дня (обрезали возможность динамического вызова eval), а он даже после явной диагностики не врубился. Так что будет платить за эту возможность, когда понадобится. Как миленький! dozen цитата:Эка тебя штормит! All Начнем потихоньку - уже не так противно глядеть на код. Впрочем, программировать пока не будем - еще пару дней нужно "отстояться", а в плане идеологии... хотя бы язык описания классов. Во-первых, с "универсальностью" я явно перестарался, там чуть ли не все массивы "лишние" - чего мучить клиента зазря? Поэкспериментировали - и хватит. Один массив бесспорен - "кортежи", остальные - пусть у класса голова болит. Впрочем, нет: второй тоже очевиден - поля. Третьи же (субполя) - по типу поля в классе. Чо там Ваня-то гутарил про "классы типов"? Во-вторых, наследование. Я не уверен, что его нужно здесь вообще давать. А раз не уверен, так и не будем, пока не припрет. Но команды какие-то ввести надо, на всякий пожарный. Хотя бы call. Обязательная вещь - описание структуры. Вообще-то, оно может содержать вложенные описания, но в этом тесте таковых не имеется. Точнее, имеется (по структуре), но это типичное наследование, и мне просто лень этим заниматься. Так что выкинем-ка мы снова шаблоны из классов - гибкости в данном случае не прибавится, а софт усложнять незачем. Наличие ссылки из класса на шаблон страницы, как я уже говорил, есть разрешение элементу этого класса иметь персональную страницу. Тип поля (строка/ссылка, атомарный элемент/массив, имя атрибута) - видимо, такими "триадами", и сделаем. Ну и ссылка на шаблон для выдачи элемента на чужих страницах (то бишь, по умолчанию - если той странице лень использовать собственный). Это: массив выдаваемых полей, в порядке выдачи, и... чо-то перемудрили, кажется, Антон с Олегом - оставим-ка в шаблоне только способ доступа к полю: ID поля в узле, либо маршрут к нему (для полей, расположенных в других узлах). А уж разделители между ними (пробел, запятая или там столбец - TD) - это уж как-нить шаблон страницы должон... [робко] Мож, все-таки прокомментируете? |
| 83. SERGEY_BIG, 19.08.2009 10:56 |
Vladimir Rybinkin Что ж не прокомментировать 1. Объем передаваемых страниц при такой технологии, очевидно, уменьшается в разы. Облегчение, нет? Это уже "украдено до нас" и вполне нормально себе существует. Мало того, сам язык JS был создан именно для этой цели. Однако во всём нужно знать меру. Создание "суперклиента" приведёт к увеличению трафика за счёт кода самого клиента и передачи избыточных данных, они не три копейки весит. 2. Пользователь, получая "на руки" уже не страницу, а целый виртуальный сайт, будет ковыряться в нем тоже в разы дольше и, соответственно, беспокоить сервер куда реже. Облегчение, нет? См. выше. 3. Посылать ему при дальнейших запросах можно уже лишь недостающую информацию, а комбинировать страницы из нового и старого будет уже сам клиент. Облегчение, нет? Как проверить, что имеющиеся на клиенте данные не потеряли своей актуальности? Или будет, как на "Титанике", где радист беспокоился об обеде, когда корабль шёл ко дну? Или же речь идёт, по своей сути, о работе с библиотекой? Про Амазонку, что ли читать? 4. Немалую часть запросов юзера тоже можно выполнить на клиенте, по имеющимуся ТАМ данным. По моим оценкам, таких "внутренних" запросов должно быть не менее половины. Облегчение, нет? Cм. выше. 5. "Одновременности" не бывает, это только видимость. Есть такое понятие "квантование". Про квантование лучше говорить не будем, изучал в своё время на профессиональном уровне. Замечу только, что серьёзное серверное ПО должно обеспечить функциональность работы. Что такое приоритет и очереди задач, время ожидания и т.п. известно? 6. До "многих пользователей" еще дожить нужно. А если это радостное событие все же случиться - можно воспользоваться хотя бы технологией того же Google: натравить на них здорове-е-е-енный кластер со сворой ощерившихся компов. Без комментариев. Если идёт речь о поддержке библиотеки (а судя по всему, только такой вариант хоть как то проходит), она по определению многопользовательская. 7. "Внутренние" проблемы сервера клиентов не волнуют по определению - пущай занимается на здоровье, чем ему там нужно. Это не есть тема ветки. Хотя индексацией заниматься лично я своему серверу не позволю - этой глупостью пущай чужие серверы занимаются. См. выше. Статические хранилища неконфиденциальных (раз они по чужим серверам валяются) данных никому не интересны. Большие деньги, лавры и почёт достаются за обработку динамических данных в режиме реального времени. P.S. На сём дискуссию со своей стороны закрываю |
| 84. Chippy2003, 19.08.2009 10:57 |
Vladimir Rybinkin Мож, все-таки прокомментируете? No |
| 85. zzf, 19.08.2009 11:45 |
Vladimir Rybinkin цитата:Ложь. Добавление от 19.08.2009 12:11: Vladimir Rybinkin цитата: |
| 86. Vladimir Rybinkin, 19.08.2009 15:45 |
zzf цитата: rGlory цитата:Я тоже - почти никто иной даже и не упоминал про SINT. dozen цитата: цитата:Боже ты мой! Еще раз: А мозги включать не пробовал? Я даю на клиента ВЫБОРКУ из БД. В ней - ДАННЫЕ из Борея. Борей же (в худшем случае) - НА СЕРВЕРЕ. Но я его еще и подправил малек, чтобы у юзера совсем глаза на лоб не повылазили. Синдбадом поправил, не JS. цитата:А ты... так, понятно. Ну хоть НАЗВАНИЕ ветки-то прочел? цитата: цитата:Дурак ты - прости, Господи! Только на деньги и смотришь. Вспомни хотя бы Кавендиша - у него этих самых денег куры не клевали. Но он все-таки занимался ДЕЛОМ. С твоей точки зрения, "бездарно потерял годы жизни на бесполезные трепыхания". цитата:Первая строчка - ошибка из-за отсутствия информации. Две другие - ошибки в логике. Ну... дальше не буду комментировать - ты и сам все знаешь. цитата:Не-а. А теперь - и знать не хочу. цитата: цитата:Ясненько, не уважил... Ну и ладно, не очень-то и хотелось. цитата:Чего "XSS", чего "например"? цитата:Что, ты мне рекомендуешь прочесть этот талмуд, ибо там сказано, что JS есть компилятор? Не поверю, и даже читать не буду. По крайней мере, пока ты САМ это не начнешь утверждать. цитата:А это ты Ване скажи - он что-то беспокоится... цитата:Юрик - это Программист. И не просто Программист, а СУПЕР-Программист. Кстати, помнишь - я рассказывал, как опрашивал программистов насчет малой модели? Так вот, вторым опрошенным был именно он. А по поводу "защиты"... ты просто не понял. Он это говорил очень давно, и совсем по другому поводу: в чешской (кажется) хоккейной сборной были два игрока: Либа и Нелиба. Он этот факт и прокомментировал. цитата:О! Раньше на Миража набрасывались. Это что же, признание того факта, что он все-таки хорошая программа? ivanhoe цитата: цитата:Из нынешних?! Да ваще никто! Никто ж и не знает, что это такое. Хотя даже в ассемблере есть: mov ax,[bx+si]. цитата:С какой радости? Я просто НЕ ХОЧУ обсуждать этот вопрос, тем более - в этой ветке. Точка. цитата:Господи, Ваня! Ну нельзя же так, ну нельзя! Переменная - тот же указатель (на участок ОЗУ). Разве что компилятор о ней малек побольше знает, и может нерадивого программера за руку схватить. Да и то лишь в самых примитивных случаях (в сложных он скорее под ногами путаться будет). Да и в примитивных... for (i = 0; j < 10; i++) Проще ведь некуда, не правда ли? Хорошо, если j не описана, а если она тоже используется? Получаем случайный цикл, от нуля до бесконечности, да еще, возможно, нестабильно работающий. На ровном месте. И никакой компилятор не поможет. И не дай Бог, вздумает помогать. цитата:Умница! Так и я обожаю константы, и у меня в SINT константы всех мастей и размеров, с условной трансляцией, с использованием самих же констант для определения других... код:Но противопоставлять-то одно другому зачем?! цитата:Золотые слова! Я бы так здорово не сформулировал. Лично я предпочитаю "употреблять" только на задачу, то есть именно я и есть "из первых". А вот те, кто с указателями борется... см. где-то выше по ветке. цитата:Обман зрения, дорогой! цитата:А, понял - извиняюсь. цитата:Ага, все-таки и у Вас ни фига не видать! Ну, а как он ДОЛЖЕН работать, как он РАБОТАЕТ у меня под 98 с IE 5.00? цитата:ЧЕГО?! Я ж его еще не постил. Ах, ЭТО? Не, это не четвертый, это пара сохраненных виртуальных страниц ТРЕТЬЕГО (через view as HTML). Они НЕ РАБОТАЮТ, они приведены лишь для того, чтобы публика смогла хоть что-то увидеть. И НЕ ДОЛЖНЫ работать, ибо они есть виртуальные, сгенеренные прямо на клиенте страницы. А все данные лежат НА МОРДЕ (которая index.htm, которая FRAMESET). Их туда забросил инициализирующий фрейм a.h, который тыщу лет как умер (на евойном месте они-то и генерятся). цитата:Упс! Вроде, сам писал, но об этом даже не догадывался... цитата: цитата:Дык.. слова-то Ваши я все же прочел... цитата:Ха-ха-ха! Я уж не говорю про монитор SINT, но даже в ЗДЕШНИХ моих тестах есть функция __() - единственная двухсимвольная - из уважения, поскольку тоже какой-никакой монитор. цитата:Ага, спасибо. Попозже я и сам въехал. цитата:Серьезно?! Наконец-то! Надеюсь, движение идет не только в сторону компилятора? Что-то не похоже по Вашему постингу... цитата: цитата:... тоже придут к пониманию, что в сложных случаях никаких Ord, Num и прочих названий не хватит. Не, в вики не полезу - на мой взгляд, мое представление обо всем этом вполне терпимое. цитата: цитата:Ну, это скушно. Откуда ж этому Access знать, что "Alfreds Futterkiste" и "Alfred's Futterkiste" - это одна и та же компания, что компания, перевозившая несколько лет грузы другой, имеет с ней общий телефон (хоть бы налоговую предупредил dozen цитата:Не знаю, о чем Вы, сэр, но i.j лежит во всех трех тестах. zzf цитата:О-хо-хо... И этот знакомое слово увидел... Там тесты СОВСЕМ не об этом. Ну, если уж так уж прям уж интересно... код:Вызов из select, надеюсь, не нужно приводить? код:Проверить, что ли... ежу понятно, что работает. Ладно уж... а, там еще мнемоника чуть другая... но все равно - работает. Как часы. ivanhoe цитата:1. А на кой? Это же тест. 2. А толку? Броузеру dozen все равно не поможет. 3. Нигде ничего не пропало. dozen цитата:Не-а, не обращал. Зачем мне какие-то подозрения? SERGEY_BIG цитата:Вот спасибо. Ну и я того... єтого... 1. Укарадено так украдено - какая разница? А насчет "обїема суперклиента"... взгляните на обїем тестов. Там действительно "не три копейки", там и на полушку не наберется. 3. Ха-ха-ха! А как проверить, что токо что полученніе (вот прям ща) с сервера данніе "не потеряли своей актуальности"? 5. Ну дік... если "изучали на профессиональном уровне" - что ж глупости-то говорить? "Что такое приоритет и очереди задач, время ожидания и т.п." - известно. Известно также, что клиенту на все єто начхать (и правильно). 6. Какая "поддержка библиотеки", о чем Ві?! Блин, комп какой-то с ивритом попался... 7. Ежу понятно, что "Статические хранилища данных никому не интересны". Єто же не повод заниматься онанизмом (индексацией)? цитата: zzf цитата: цитата:Похоже, єто НЕ ВАША ветка, родной. |
| 87. Chippy2003, 19.08.2009 16:06 |
var a="wbl"; function P(s){m.e=eval;b.p=m.e('d.p.'+a.charAt(s-1));m._(d.g);} единственное что не ясно: на фига это творение было пропускать через обфускатор... |
| 88. Tasman, 19.08.2009 16:14 |
Vladimir Rybinkin В целом тема (перетаскивание функциональности на клиента) интересная и в последнее время стала модной (сейчас браузеростроители любят меряться у кого быстре JS). Я честно пытался скачать ваши примеры, но видимо по неопытности я запутался чего где не хватает. Не могли бы вы хотя бы выложить screencast с тем как это должно выглядить и что именно в этом не под силу существующим фреймворкам. Пока абсолютно непонятно. Ещё просматривая приводинмые в ветке примеры из вашего JS, у меня возник вопрос - это какой-то кодогенератор? Код явно сильно подогнан под текущие данные, но вы же не расчитываете на то, что такой код будут писать руками с нуля для каждой новой задачи (а что еще хуже при малейшем изменении существующей). Другими словами говорите ли вообще о каком-то возможном фреймворке или о том как переписав всё руками под конкретную задачу получить некий идеальный результат? Возможность последнего не вызывает сомнений, но на практике это неприменимо из-за высокой цены поддержки и сопровождения этого кода. |
| 89. evilbloodydemon, 19.08.2009 16:26 |
Tasman говорите ли вообще о каком-то возможном фреймворке SINT.js, ага |
| 90. SERGEY_BIG, 19.08.2009 17:07 |
Chippy2003 Это - в перлы, однозначно! |
| 91. dozen, 19.08.2009 17:31 |
Vladimir Rybinkin А я никогда и не писал гостевую, я ее с какого-то Питерского сайта поставил А-а-а, так ты просто script-kiddie? Антон, правда, позже написал свою, но ему тоже глубоко по барабану все эти спамеры, хакеры. Он - Программист, и на тех, кому ручонки почесать нечем, всегда плевал с высокой колокольни. Фэнтази-вселенная ВР: выдумываются всё новые персонажи с новыми, чудесными способностями. Ждем драконов (которые тоже были у ВР в подчинении и Программисты с большой буквы). |
| 92. ErmIg, 19.08.2009 18:30 |
Vladimir Rybinkin Вспомни хотя бы Кавендиша - у него этих самых денег куры не клевали. Но он все-таки занимался ДЕЛОМ. Кавендиш практически не публиковал своих открытий - потому его выдающиеся изыскания во многом оказались бесполезными. Они интересны только с исторической точки зрения. |
| 93. dozen, 19.08.2009 18:47 |
ErmIg Кавендиш практически не публиковал своих открытий Да и хрен по нём. У него бабла изначально было на любые дела и делишки. ВР скромностью не обижен, с кем себя сравнивает... |
| 94. ivanhoe, 19.08.2009 19:56 |
Vladimir Rybinkin цитата:Ассоциативные массивы: http://en.wikipedia.org/wiki/Associative_array Как использовать вместо eval - правильно выбрать структуры данных и менять не код, а только данные. цитата:Упрощу код, сделаю его более надежным. Краткость сама по себе никому не нужна, самые короткие программы, как правило, плохо читаются, модифицируются и дольше пишутся. Вот, например из личной практики: удаление слова из текста, #9 (http://forum.ixbt.com/topic.cgi?id=26:37845:9#9) Вариант 2' короче, но плохо читается и писал я его дольше. цитата:Указатели, конечно же, не отметили. А CINT разрабатывался для двух целей: 1) как скриптовый язык некоего церновского проекта. выбор в качестве языка именно C (а не, например, lua или tcl) был как раз обусловлен возможностью миграции кода из интерпретируемого в компилируемый (у них проект счетный и скороть критична) 2) быстрая разработка и отладка C'шного кода. eval бывает полезен для отладки цитата:Да, и у меня, а что так удивляет. У меня, как обычно, наименее традиционные ОС :) На работе - FreeBSD/x86, личный нотебук - Linux/x64 цитата:Я web-морды пишу крайне редко, в последнее время исключительно тестовые. Фреймов я в них не использую и JS крайне редко. И, таки да, деятельность это довольно рутинная. Поэтому, чтобы не сильно скучать, пробую разные средства разработки. Последние три писал на: 1) Java (Servlets/JSP) 2) Python/Django 3) Perl/Catalyst. Собирался при случае попробовать Ruby-on-Rails, но, прочитав dozen, решил что попробую-таки GWT :) цитата:Я скучаю, поэтому занимаюсь, в основном, системно-сетевыми вещами, а интерфейс с пользователями делают web-разработчики. И у них там как-то поскучнее обстановка на мой взгляд. цитата:Проще и элегантнее сделано, например, на этом форуме, см. исходники любой страницы, например, этой. цитата:Переменная это не указатель и измененяя переменную i в большинстве случаев можно быть уверенным, что переменная j при этом не изменится (измениться она может в случае когда эти переменные глобальные, а программа использует паралеллизм). Что же касается реализации переменных, то совсем не обязательно они будут находиться в ОЗУ, т.к. 1) все компиляторы давным-давно умеют использовать для временных переменных регистры 2) все компиляторы (современные, а не Borland С версии 3.1) используют оптимизации удаления лишних переменных, т.е. довольно часты случаи когда в тексте программы переменная будет, а в исполняемом коде ее не будет цитата:А у меня под FreeBSD (x86) с Firefox 3.0.x он не работает. Кстати тестирование Web'а это довольно трудоемкий ароцесс. У нас в отделе тестирования видел девочку, у которой на компьютере запущено девять разных браузеров и она последовательно пробует страницы под всеми ими. цитата:Движение идет в том направлении, что понятия "интерпретатор" и "компилятор" сейчас уже практически бессмысленны, особенно применительно к языкам. Одна и та же программа на C (или на JavaScript) может выполняться и в интерпретаторе (на этапе отладки) и в виде скомпилированного кода (в production deployment - не знаю как это по-русски). цитата:Надо SPJ об этом сообщить, вдруг он не знает. :) Но, подозреваю, что справится, так как есть пространства имен. цитата:Об этом должен знать программист, а не Access. Нормализацию названий можно делать довольно по-разному и встречается она довольно нечасто, в основном, в задачах data mining и поиска (для которых MS Access не применяется). Встраивать все возможные виды нормализации в универсальную БД: 1) невозможно 2) ненужно, т.к. нарушает принцип "separation of concerns" Но, также, MS Access никак не препятствует делать нормализацию хоть чего угодно, и даже (субъективно) на реляционках это делать удобнее, если требования позволяют. |
| 95. Chippy2003, 20.08.2009 00:58 |
ivanhoe У нас в отделе тестирования видел девочку, у которой на компьютере запущено девять разных браузеров и она последовательно пробует страницы под всеми ими. Когда случайно наткнулся на http://www.lunascape.tv, был уверен, что там будет режим с одной адресной строкой и ie/gecko/webkit тремя столбцами одновременно. Но увы... Видимо таких девочек разработчики броузеров люто ненавидят |
| 96. zzf, 20.08.2009 01:46 |
Vladimir Rybinkin цитата:Конечно, не совсем. Открыть файл с шумом и показать контролы — это уже что-то. цитата:То есть, ты нафигачил такой скрипт, который генерирует у клиента то, что НЕ ДОЛЖНО РАБОТАТЬ? Это как раз то, что надо. Это прорыв, чесслово. цитата:Так о чём там тесты? Внятного ответа пока не было. цитата:Ёж оказался немного туповат. По прежнему не работает. цитата:Как мило. Добавление от 20.08.2009 01:52: Господа знатоки, какой сакральный смысл в последовательности код:? Разве код:не делает того же самого? |
| 97. dozen, 20.08.2009 07:28 |
zzf не делает того же самого? Формальный ответ на этот вопрос -- "нет; в первом коде в объекте m появляется ссылка на eval". Неформальный ответ на "накой хрен вводить alias?" -- если у него там eval через слово, то экономится некоторое количество байт. Правда, непонятно тогда, почему charAt не за-alias'ен... или как раз потому, что про метаклассы не знает? Добавление от 20.08.2009 07:31: То есть, ты нафигачил такой скрипт, который генерирует у клиента то, что НЕ ДОЛЖНО РАБОТАТЬ? ... Это прорыв, чесслово. |
| 98. ivanhoe, 20.08.2009 08:10 |
dozen цитата:Тогда уж логичнее было бы: код:Единственное осмысленное объяснение это то что объект m выполняет (или планирует выполнять) еще и некие действия, а объект m хранит необходимое им состояние. Метауровень типа :> |
| 99. dozen, 20.08.2009 08:18 |
ivanhoe Тогда уж логичнее было бы Ну, логика разная бывает. Я считаю имя "e" -- нелогичным, потому что потом нечитабельно. Но у ВР особенная логика, как известно. |
| 100. Vladimir Rybinkin, 20.08.2009 09:43 |
Ладно, отвечать пока не будем - не то настроение (слишком добрый). Начнем, пожалуй - с утречка оно сподручнее... О! Как я и ожидал - скорость резко возросла: классы завели мгновенно. Интересно, скоко там ошибок? Шаблоны доступа... глаза разбегаются... похоже, нужно давать траекторию по умолчанию - пущай сама рекурсивно в шаблонах вложенных классов ковыряется... Одуреть! Для Employees шаблон проще, чем для Persons. Так, завели... Надо же! Даже старая инициализация без ошибок сожрала! Ну ничего, это ненадолго - ща мы ей покажем, где раки зимуют! Инициализатор объектов уже под управлением классов... Хм, а стоит ли вообще раскрывать шаблоны? А, пущай - вроде, чуть проще... Я просто балдю! Чо ни творишь - а ошибок все нет и нет. Этого ж быть не могет, он же тупее меня - я ж сапиенс, черт побери! И как он в этом кошмаре разбирается? Да и разбирается ли? Ладно, потерпим до выдачи... Не, ну ее на фиг! Рановато начал, перекур маловат - не вынесла душа поэта. Запостить, что ли? Или рано еще? А какая, собссно, разница? Эти друзья один хрен ни черта не увидят... Господа! Ведь ваши компы ВНАГЛУЮ ОТКАЗЫВАЮТСЯ РАБОТАТЬ! И вы это ТЕРПИТЕ!!! Мало того - и меня хотите склонить к тому же. Как же - разбежался! Чтобы какой-нить сраный эксплорер и мне условия смел ставить?! Железяка х... фигова! Ладно, запостим - авось у кого-то завалялась старенькая математика, которая еще в состоянии что-то делать. А, впрочем, хренушки - пусть вначале хотя бы первые три теста увидят. Чо это со мной сегодня творится? Ни хрена толком не сделал, а настроение... ну как у идиота! На классику потянуло: Ко мне пришел водопроводчик И отопление врубил Я ненавижу его очень За то, что взял с меня рубиль. Собирайся, молодец! Поведем тебя мы к шаху На расправу во дворец. Ну-ка, помолись Аллаху, Чистую надень рубаху, Через час тебе... А, понял: это спина (спинной мозг) почувствовала безумную силищу клиентской математики. Потенциальную еще, конечно, но... Усех замочим, господа (и даже не в сортире) - правильно? Добавление от 20.08.2009 09:57: Не, все же чуть отвечу... |
| 101. ivanhoe, 20.08.2009 10:20 |
Vladimir Rybinkin цитата: Да отвечайте, чего уж себя сдерживать. Переживали и не такое. |
| 102. ErmIg, 20.08.2009 10:20 |
Vladimir Rybinkin Господи, да КАКАЯ РАЗНИЦА?! Разница в том, что Кавендиш не публиковал свои великие открытия, а Рыбинкин свои "великие открытия" публикует... |
| 103. zzf, 20.08.2009 13:17 |
Vladimir Rybinkin цитата:Скорость, пардон, чего? Вывода "Loading..."? цитата:Словоблудие. цитата:Насколько я помню, там были города и озёра. Какие ещё Employees и Persons? цитата:Словесная мастурбация. цитата:"Что-то", ага. То, что НЕ ДОЛЖНО РАБОТАТЬ? цитата:С чего бы это первые три "теста" заработают вдруг? Ты полагаешь, что Майкрософт, Опера и Мозилла уже выпустили патчи, которые заставляют работать твои недоподелки? цитата:Ага, себя уже замочил,. Я бы сказал обмочил. Ни концепции, ни работающих примеров, ни описаний предполагаемых результатов тестов. Пообсохнуть бы тебе сначала, великий ты наш концептуал... Добавление от 20.08.2009 13:29: dozen |
| 104. Chippy2003, 20.08.2009 13:30 |
zzf Насколько я помню, там были города и озёра. Какие ещё Employees и Persons? Города нанимают озера для поставки воды, что тут может быть непонятного |
| 105. dozen, 20.08.2009 16:12 |
Vladimir Rybinkin А я всего лишь очень хороший алгоритмист. Да-да, ну просто очень хороший. Помницца, Кнута ниacилил. Добавление от 20.08.2009 17:32: Кстати, All, давайте обсудим проблему SEO для Rich Apps. Если на клиента грузится только скелет, а весь контент подгружается JS, то такую страницу отдавать поисковым роботам -- бесполезно (=вредно). С другой стороны, иметь два способа генерации страниц -- один для браузера, другой для ботов -- накладно. |
| 106. ivanhoe, 20.08.2009 18:30 |
dozen цитата:Папрашу не выражаться :) цитата:Если специально с гуглом не договоришься, будет относиться как к мусору. цитата:Ну вообще-то можно заметить что гугл и другие заходят зарегестрированным гуглботом, а не гостем. А все потому, что зарегестрированный пользователь может поставить себе в настройках отдачу чистого HTML без всякого JS и я имею сильные основания предполагать, что у упомянутых ботов эта настройка включена. :> цитата:С краулингом JS и прочих видов активного контента довольно много проблем. 1) сейчас все поисковики общего назначения используют модель обхода по ссылкам. В rich app довольно сложно понять что такое ссылка, задача в общем случае алгоритмически неразрешима 2) помимо ссылок rich app имеют состояние, с которым a) краулеры работать не умеют b) которое может полностью задавать содержание страницы и быть очень большого размера. Представь себе этот форум сделанный как экстремальное rich app - одна страница со сплошным аяксом, у пользователя в зависимости от состояния то один форум то другой то настройки то результаты поиска. Страница, повторюсь, одна, состояние десять мегабайт. Как на это ссылаться? 3) разбор активного контента это очень ресурсоемкая задача, из личного, так сказать, опыта, даже если в случае частном его можно разобрать. |
| 107. Dilon, 20.08.2009 18:44 |
ivanhoe цитата:Я вообще не разбираюсь в SEO, хотел бы уточнить в каком смысле зарегистрированным? Особые настройки в robots или ...? |
| 108. dozen, 20.08.2009 18:47 |
ivanhoe Если специально с гуглом не договоришься, будет относиться как к мусору Откуда такие сведения? Ну вообще-то можно заметить что гугл и другие заходят зарегестрированным гуглботом, а не гостем. А все потому, что зарегестрированный пользователь может поставить себе в настройках отдачу чистого HTML без всякого JS и я имею сильные основания предполагать, что у упомянутых ботов эта настройка включена. :> Э.... не очень понял про настройки. Гугльбот просто вытаскивает HTML, а внешние JS -- не тащит. В результате, где посетитель видит кучу (динамически загруженного) контента, гугльбот видит
У меня (в пилотном проекте) подход такой:
Вот этот тэг userinfo -- он генерит такой вот кусочек в странице:
и потом, в элементе LazyHTML: код: То есть нашли элемент в странице -- используем, не нашли -- зовем RPC. Требует назначения глобальных ID каждому элементу данных. В результате Google как бы видит данные... но с другой стороны, у них display:none, что, как я слышал, гуглем не одобряется. Можно выставить им класс (CSS гугльбот, вроде, не подгружает). А можно сделать как тут (на форуме):
Тут гуглю уже будет неизвестно, что add_div() создает невидимый div. Я лично планирую несколько упростить систему, а именно вместо коллекции DIV иметь один JS вида
b) которое может полностью задавать содержание страницы и быть очень большого размера. Представь себе этот форум сделанный как экстремальное rich app - одна страница со сплошным аяксом, у пользователя в зависимости от состояния то один форум то другой то настройки то результаты поиска. Страница, повторюсь, одна, состояние десять мегабайт. Как на это ссылаться? Ну, это экстрим, такое делать не надо. Надо по странице на функциональность (то есть для форума -- страница на тему), и уже внутри неё вести JS-активность. Что, собственно, на forum.ixbt.com и сделано. |
| 109. arsa, 20.08.2009 18:50 |
dozen как раз сейчас этим занимаюсь. в общем со стороны google нет решения, и не предвидится, что вполне логично. вот когда они у себя сделают достаточно много API что бы им можно было данные свои передавать (а не наоборот - как сейчас), тогда конечно это дело поднимется сильно. например, у них есть http://www.google.com/local/add/ - пока что в зачаточном состоянии, а мне сильно надо. или google base + product search (бывший froogle), тоже очень ограниченный и не позволяет мне сделать локальный поиск по продуктам. в общем для google индексация web 2.0 это гиблое дело, поэтому они так поддерживают всякие microformats и прочие протоколы обмена данными. для себя я сделал следующее - все важные варианты отработки моей основной страницы так же представлены статичным html. то есть, например, у меня есть поиск по производителям и моделям - я его вывел гуглу (через urlrewrite / ihttpmodule), и он с радостью полез ботом всё это дело индексировать. сейчас закупил базу CBSA, и буду показывать ещё и по метро-районам отдельные страницы. в идеале я собираюсь сделать статичную страницу по каждой комбинации данных что у меня есть далее технически. конечно, человек заходящий на страницу получает тоже статику, я не хочу никого обманывать и перенаправлять на ajax версию автоматом (это не поощряется гуглом, хотя как они это найдут не понятно). зато у меня есть кнопка "buy now" которая уже в свою очередь перенаправляет на ajax страницу, причём с критериями: http://site/script#criteria=blah параметры после # можно довольно просто считать при загрузке страницы и показать что надо (gmail например это делает успешно) |
| 110. ivanhoe, 20.08.2009 18:56 |
dozen цитата:Общеизвестный, особенно в поисковых кругах, факт. Можешь проверить :) dozen, Dilon Объясняю про forum.ixbt.com. Залогиньтесь и зайдите в настройки своего профиля http://forum.ixbt.com/misc.cgi?id=setup. Там есть пункты: 1) Разрешить создание страниц списка тем с помощью Java Script 2) Разрешить создание страниц тем с помощью Java Script Поставьте их в "Нет", как у меня. Посмотрите в исходники страниц после изменения, вместо JS будет HTML. Именно так и обрабатывают forum.ixbt.com и гугл и яндекс и рамблер и все другие поисковики, логинятся ботом (у которого вышеупомянутые настройки выставлены в "Нет"), краулят и индексируют чистый HTML. |
| 111. dozen, 20.08.2009 19:14 |
arsa в идеале я собираюсь сделать статичную страницу по каждой комбинации данных что у меня есть Понимаю, это решение, конечно, но это именно дубликация усилий. Вот я и чешу репу, как можно этого избежать. параметры после # можно довольно просто считать при загрузке страницы и показать что надо В GWT есть встренный листенер, который этот параметр немедленно выдаёт ivanhoe Общеизвестный, особенно в поисковых кругах, факт. Можешь проверить Допуская, что это так, всё-таки хочу увидеть ссылку. Ибо Google уже даже Flash-мувики индексирует. Чего бы это он так JS-константы дискриминировал? А, вот: http://www.google.com/support/customsearch/bin/answe…&answer=72366 Хмм... похоже, моя идея с <DIV> более SEO-friendly, чем с JSON... хоть и более verbose. Правда, есть еще решение: "Provide the textual contents of JavaScript in a noscript tag". То есть можно положить JSON в <script> и тут же тот же контект как plain text в <noscript>. Именно так и обрабатывают forum.ixbt.com и гугл и яндекс и рамблер и все другие поисковики, логинятся ботом (у которого вышеупомянутые настройки выставлены в "Нет"), краулят и индексируют чистый HTML. Иными словами, никакого логина у них нет, просто у fixbt по умолчанию для неизвестных юзеров страница отдается без JS? Щас проверю wget'ом... хмм... 503 Service Temporarely Unavailable... ok, IE без логина... выдал JS. Гугль бот никуда не логинится. Другое дело, что по имени user agent можно выдать плоский HTML... |
| 112. ivanhoe, 20.08.2009 19:24 |
dozen цитата:Flash-мовики индексирует не общий поиск, а специальный - по флеш-мувикам, заточенный под флешмувики специально. И он не индексирует, например, флеш-игрушки или флеш-демки - для них надо специальный поиск писать :> цитата:Да, по имени юзерагента похоже все и происходит. А в принципе я все-таки прав. :> |
| 113. dozen, 20.08.2009 19:27 |
Вот тут чувак summarize Google policies: http://itezer.com/blog/ajax/6-Get-Google-and-AJAX-to-Play-Nice.html Мне, если не отказываться от GWT, то нужно класть в <noscript> тот же контент, что в <script>. Походу, это универсальное правило. |
| 114. ivanhoe, 20.08.2009 19:28 |
P.S. Кстати это имеет прямое отношение к теме Владимира. Vladimir Rybinkin, как мы тут мимоходом выяснили, ваши генеренные страницы не будут индексироваться поисковиками, используйте чистый HTML и всем будет проще и вам и гуглу и клиентам! (и читателям этого форума) |
| 115. lvqcl, 20.08.2009 19:28 |
dozen Гугль бот никуда не логинится. Зайди на http://forum.ixbt.com/ и увидишь: За последние 5 минут конференцию посетило: 1726 (203 участников, 26 скрытых, 1497 гостей) ... а также поисковые роботы: Googlebot, StackRambler, Yandex, msnbot |
| 116. ivanhoe, 20.08.2009 19:32 |
lvqcl Таки это фиктивные пользователи, которыми считаются клиенты, пришедшие с соответствующей записью в UserAgent |
| 117. dozen, 20.08.2009 19:32 |
ivanhoe А в принципе я все-таки прав. :> Так вот, практика выдачи гугльботу не того же контента, что юзеру называется клоакинг, и является основанием попасть в black list. Другое дело, что этот лист, вроде, не автоматический, а human-managed. Как гугль может отдетектить cloaking? Да просто -- зайдя с другим user agent с IP не в домене google.*. |
| 118. Dilon, 20.08.2009 19:32 |
lvqcl Откуда у поисковых ботов логин на forum.ixbt.com? Бота по Agent можно опознать. |
| 119. dozen, 20.08.2009 19:34 |
ivanhoe Flash-мовики индексирует не общий поиск, а специальный - по флеш-мувикам, заточенный под флешмувики специально. Я к тому, что "специальный поиск" может искать и по JS (http://www.seomoz.org/ugc/new-reality-google-follows-links-in-javascript-4930) . "One of the main issues with Ajax sites is that while Googlebot is great at following and understanding the structure of HTML links, it can have a difficult time finding its way around sites which use JavaScript for navigation. While we are working to better understand JavaScript, your best bet for creating a site that's crawlable by Google and other search engines is to provide HTML links to your content." ... "Googlebot does not execute some types of JavaScript." Иными словами, Гугль исполняет JS -- точнее, пока часть его, где он (Гугль) видит генерацию URL. |
| 120. lvqcl, 20.08.2009 19:44 |
ivanhoe Таки это фиктивные пользователи, которыми считаются клиенты, пришедшие с соответствующей записью в UserAgent Тогда можно зайти (хотя бы телнетом) на ixbt и представиться Гуглем. После чего будет ясно, есть cloaking или нет. Vladimir Rybinkin Господа! Ведь ваши компы ВНАГЛУЮ ОТКАЗЫВАЮТСЯ РАБОТАТЬ! И вы это ТЕРПИТЕ!!! Мало того - и меня хотите склонить к тому же. Как же - разбежался! Чтобы какой-нить сраный эксплорер и мне условия смел ставить?! Железяка х... фигова! Vladimir Rybinkin героически бьёт морду светофору и переходит улицу на красный свет. |
| 121. dozen, 20.08.2009 19:54 |
lvqcl Vladimir Rybinkin героически бьёт морду светофору и переходит улицу на красный свет Эпос... Тогда можно зайти (хотя бы телнетом) на ixbt и представиться Гуглем. После чего будет ясно, есть cloaking или нет. Щас wget попрощу представиться... Получаем чистый HTML c JS только для actions:
|
| 122. ivanhoe, 20.08.2009 20:59 |
dozen Прочитал статью. Автор - явно не search guy. А я - да. :) И у него идея фикс с интерпретацией жабоскрипта, под которую он пытается подогнать все свои наблюдения. Выскажу свои соображения: 1) заставить поисковик понимать JS в некоем минимальном объеме конечно же можно. Особенно зная потроха своего JS-тулкита. Однако это не общее решение (оно невозможно алгоритмически) и пока оно не работает массово в большом поиске. Ни в одном большом поиске, не только гугловом. 2) объяснить как попала ссылка в гугловые индексы можно тысячей разных способов. Например, что парсер линков не особо смотрит JS там или нет и просто вытаскивает все теги "<a href>" безотносительно тому где они находится. Остальные 999 способов перечислять не буду (ибо лень) останется упражнением для читателя. 3) единственный способ честного разбора JS - это прикинуться на мгновение браузером и полностью исполнить код в виртуальной машине (хотя и этот способ не универсален). Я так делал (в своем поисковике), надо было разобрать махонькое поле, которое как раз генерилось махоньким JS-кодом. Запуск этого махонького кода в SpiderMonkey увеличил время индексации в двести (200) раз, для большого поиска такая цифра - смерть (а может быть и не 200, а 10^100 - как нефига делать) цитата:Что и требовалось доказать. |
| 123. rGlory, 20.08.2009 21:05 |
lvqcl цитата:Ну Владимир нам как бы намекает, что все мы должны немедленно даунгрейдить свои ОС до win98, иначе столь нужные нам страницы с его сайта у нас не будут показываться. Ну что тут скажешь? Руки выворачивает изверг, пользуется тем, что без его контента большинство из нас не проживет сколько нибудь длительный промежуток времени. |
| 124. ivanhoe, 20.08.2009 21:29 |
rGlory И поиском индексироваться не будет. :weep: Ибо (даже если поисковики будут сильно развиваться в сторону понимания активного контента) что код Владимира и человек то не всякий разберет, не то что тупой робот. |
| 125. dozen, 20.08.2009 22:06 |
ivanhoe И у него идея фикс с интерпретацией жабоскрипта А как насчет слов от самого гугля, что "мы работаем над этим" и "гугльбот понимает некоторые конструкции JS"? |
| 126. ivanhoe, 20.08.2009 22:13 |
dozen Между "пониманием некоторых конструкций" (например, какой-нибудь метаинформации из GWT-тулкита) и пониманием полным лежит бесконечность. Например, еще товарищ Тьюринг показал алгоритмическую неразрешимость проблемы остановки. А это очень простая и далеко не единственная проблема. Надо, кстати, подкинуть ее Владимиру, вдруг разрешит :> |
| 127. rGlory, 20.08.2009 22:15 |
ivanhoe цитата:Ну придется поисковикам напрячься, если они хотят клиентуру сохранить. Посадят толпу кумаров в крайнем случае, с win98 наперевес, которые будут вручную по линкам ходить и информацию с браузера копипейстить. А куда им деваться? Про ту девочку с кучей разных браузеров - это ведь путь для не уважающих себя компаний, которые ведут себя как тряпки, и простилаются под любого клиента. Владимир - не такой. Поставит он в требованиях к клиенту win98, браузер ie 3.0 и никакая гайка. Либо будь добр соотвествуй, либо не видать тебе всех (а их трудно перечислить) прелестей Синбада и уж тем более СИНТа. Вообще СИНТ в вебмордой - это очень сильно. Вот только представил себе, как задача коммивояжера решается в браузере, на стороне клиента, и по спине мурашки. Если бы у меня были акции MS и Гугля, я бы уже побежал их сливать, пока можно. Скоро за них не будут давать ломанного гроша! |
| 128. Dilon, 20.08.2009 22:18 |
ivanhoe Кстати, насчет девочки, Selenium разве не является ее заменителем? |
| 129. dozen, 20.08.2009 22:19 |
ivanhoe Между "пониманием некоторых конструкций" (например, какой-нибудь метаинформации из GWT-тулкита) и пониманием полным лежит бесконечность. Так я полную-то и не требую. Мне всего лишь интересно -- индексирует ли гугль строковые константы в JS (JSON) коде, наподобие того, что мы имеем в forum.ixbt.com. Это-то вообще не rocket science, более того -- чтобы гугль не индексировал, надо наоборот, специально запретить их индексирование ботом, потому что константы эти уже в HTML, как голый текст. Добавление от 20.08.2009 22:22: Dilon |
| 130. rGlory, 20.08.2009 22:23 |
ivanhoe цитата:Классная идея. |
| 132. Dilon, 20.08.2009 22:25 |
dozen цитата:у нас на фронтэнде вроде и сафари, не знаю точно. Для других браузеров разве нет тулкитов подобных? |
| 133. ivanhoe, 20.08.2009 22:34 |
Dilon Насколько я понял, нет, не является ибо это скорее функциональное тестирование. А девочка проверяет правильность верстки (в т.ч. JS), что она не поехала (при очередном усовершенствовании) ни в одном из браузеров и видна в них одинаково корректно и как задумано. Правильность верстки (на данном этапе развития науки и техники) может проверить только человек собственными глазами и никак не автомат. dozen цитата:Так мы вроде выснили что на forum.ixbt.com гугл индексирует HTML, а не JS, ибо по заголовку юзерагента Google/x.y этому агенту и отдается HTML. А индексировать константы можно, не вопрос. Только вот никто не гарантирует что там что-то осмысленное - а вдруг СИНТ какой притаился? :spy: В качестве некоего приближения можно индексировать например константы некоей (достаточно большой) длины если в них содержится что-то похожее на HTML. Да, в такой постановке не вопрос. Но как-то нет уверенности, что это положительно скажется на качестве поиска. На мой взгляд, сейчас вообще стоит проблема большого поиска как осмысленного явления. Потому что Интернет ЗАСРАЛИ всякие идиоты, спамеры (в частности, SEO) и пр. К гуглу у меня претензия не к тому что он ищет мало, а что он ищет слишком много и очень часто выдает кучу SEO-говна, в котором приходится искать жемчужину. И это у них такая политика. :( Впрочем, как мне сообщили Знающие Люди, я не вписываюсь в поведенческие модели поиска гугла, а у большинства все хорошо. :> |
| 134. zzf, 20.08.2009 22:38 |
rGlory dozen Господа, тут вроде как об JScript тема. |
| 135. dozen, 20.08.2009 22:45 |
ivanhoe Так мы вроде выснили что на forum.ixbt.com гугл индексирует HTML, а не JS, ибо по заголовку юзерагента Google/x.y этому агенту и отдается HTML. Мы выяснили, что так делает конкретно forum.ixbt.com. И этому есть основание -- до недавнего времени гугль утверждал, что JS он игнорирует напрочь. В то же время, отдавать юзеру и боту разные страницы -- это cloaking, и игра с огнём. Вот и интересно -- как изменились бы результаты, если бы forum.ixbt.com отдавал боту ту же страницу, что и юзеру (то есть с сообщениями как параметрами JS). А индексировать константы можно, не вопрос. Только вот никто не гарантирует что там что-то осмысленное Предполагается, что любой текст на странице несет некоторую информацию о ней. Если в <script> только b.p = m.e(), то игнорируем. А если show_header('Boats and Canoe') -- то есть некая инфа. zzf а то ВР, чего доброго, решит здесь эти темы развить Да, блин, нестратегично вышло... пойду потру кой-чего.... |
| 136. ivanhoe, 20.08.2009 22:56 |
dozen цитата:Я так не считаю. Пример: Гугл-карты. Зайди на них с большого компа и с мобильного телефона и почуйствуй разницу (там кстати даже функционал разный - с телефона оно умеет показывать текущее местонахождение). На мой взгляд cloaking надо понимать как выдачу разного по смыслу контента в зависимости от. Выдачу же разных видов реализации одного и того же можно вполне объяснить заботой о клиенте - чаще всего это ей и является - чтобы поддержать маломощный/устаревший/глючный браузер и т.д. и т.п. цитата:Это вполне возможен copy-n-paste из другого проекта, отладочная инфа и мн. др. В результате будет шуметь. цитата:Не надо! zzf А мне темы Владимира этим и нравятся, разнообразием. И пиво с бабами можно обсудить и программирование и сетевые СУБД! И насладиться эйфорией автора от знакомства с конструкцией eval! А был бы один скучный JavaScript - век бы сюда не зашел! |
| 137. rGlory, 20.08.2009 23:25 |
zzf цитата:Это Вы так думаете, что об JScript, а на самом деле эту тему Владимир открыл, чтобы мягко и ненавязчиво в очередной раз показать крутость синбада и синта. Спросите меня, откуда я это знаю... |
| 138. zzf, 20.08.2009 23:26 |
ivanhoe Например, еще товарищ Тьюринг показал алгоритмическую неразрешимость проблемы остановки. А это очень простая и далеко не единственная проблема. Есть ещё более простая в формулировке, но трудноразрешимая задача (NP-полная): Определить, можно ли разбить данное конечное множество натуральных чисел на два равных по сумме подмножества. |
| 139. rGlory, 20.08.2009 23:30 |
ivanhoe цитата:+1. Я бы уточнил, в темах Владимира можно почерпнуть весьма интересную информацию (и не только о синбаде и синте), у него есть одно несомненное достоинство, он умеет/может раскрутить насчет высказаться знающих людей по разным вопросам. При этом качество информации от самого Владимира оставляет желать, но что тут поделаешь, за все приходится платить |
| 140. ivanhoe, 21.08.2009 00:08 |
zzf NP-полные задачи это уже пройденый этап (см. темы про задачи коммивояжера, сжатие последовательности и пр.) Надо сразу переходить к настоящему - задачам неразрешимым, чего на месте то топтаться. |
| 141. rGlory, 21.08.2009 00:18 |
ivanhoe цитата:an+bn=cn Только, боюсь, я знаю, как ее решит Владимир Ответ: он ее решит точно, а не как те "дураки" в целых числах |
| 142. dozen, 21.08.2009 04:12 |
ivanhoe На мой взгляд cloaking надо понимать как выдачу разного по смыслу контента в зависимости от. Разумеется. Но если Google не сканирует JS, то для него две страницы forum.ixbt.com выглядят разными по контенту -- одна содержит только рекламу, вторая -- контент. Человек, зайдя проверить сигнал -- поймет, конечно. Это вполне возможен copy-n-paste из другого проекта, отладочная инфа и мн. др. В результате будет шуметь. Ну так это проблема автора сайта. У него SEO будет плохая. |
| 143. Vladimir Rybinkin, 21.08.2009 08:47 |
У меня тут "технологический перерыв" намечается на несколько дней - не только от теста, но и, возможно, от вас. Вы уж не разбегайтесь, плиз - постараюсь заглядывать. Впрочем, опасаться пока явно не приходится... Tasman цитата:Померились бы лучше, у кого функциональнее. цитата:Я не знаю, как ЭТО обозвать. Самое лучшее определение (на мой взгляд) я уже приводил: APS (Ajax Processing Software). ivanhoe цитата:ГОСПОДИ, НУ НА ХРЕНА МНЕ ЭТО НАДО-ТО?! Большое спасибо за ссылку, обязательно прочту. цитата: цитата:Дык... ждем-с! Что касается "краткости"... ЭТО будет читать БРОУЗЕР, и только он. Для генератора SINT все эти функции JS (или там Perl) всего лишь объекты класса "одноязычная строка". Там хоть по странице текста на оператор давай, чтобы "читалось". А этому... хоть каждому клиенту новые имена функций и переменных выдывай. Изврат, конечно, но можно ведь! И без особых проблем. Насчет скорости написания и модификации... скажу только, что проще "строк" я в этом плане ничего не знаю. И не верю, что кто-либо знает. цитата:Понятно. Ну... флаг им в руки. цитата:Как это "что"?! Не зная ничего о тестах, давать рекомендации, что для них "достаточно ассоциативных массивов"... несколько странно выглядит - не находите? цитата:Ну дык... что ж Вы могете знать тогда о "скуке"? цитата:Во-во, и я так думал. А теперь иначе думаю - пижонство это. Я системщик, я крутой, а эти пущай интерфейсом занимаются... Во-первых, вломить надо хорошенько всей этой шобле - распустились совсем без присмотра "старших товарищей". Во-вторых, это, оказывается, еще и интересно до жути. Так же, как и в "системно-сетевых вещах". Ну... почти так же. В-третьих, для Вас лично это вообще святая обязанность. Ноблес... как его там... оближ. Внебрачному сыну отца Билла Гейтса... цитата:ЧТО ИМЕННО?! цитата:Дык... у Вас же явно нулевая практика работы с указателями. Уж поверьте моему ОГРОМНОМУ опыту (мне, к тому же, несколько раз доводилось наблюдать процесс, как молодежь в них врубается - не определение ихнее "штудирует", а именно начинает ЧУВСТВОВАТЬ, что это такое) - максимум через неделю скажете то же самое и об указателях. цитата: c_TYPEFSTR = HI_ADDR | HO_DEVICE | D_SCREEN | HF_ADDR Поясняю мнемонику: H - Handle, IO - понятно, F - управляющая строка форматного преобразования, D - DEVICE (который SCREEN). По сути, printf (ну, возможностей чуть побольше типа 0 - объект - например, мультиязычная строка и т.п.). А если, скажем, c_WRITEARRAYTOSTREAM = HI_ADDR | HO_NONE - ну и куды это пишется? А хрен его знает! Мож, в тот же SCREEN. Может, и в файл - чо там за текущий дескриптор? А если c_HCOPY = HI_HANDLE | HO_HANDLE | HF_HANDLE - тогда как? Мож, это тоже printf? Вполне возможно. А может, чтение из файла? Не исключено. А может, это протокол мышиных движений (как их там - микки, что ли?) по RS-232 куда-то перегоняется? Мож, и так (если моча программеру в голову стукнула Я думаю, пояснять не требуется, что все эти (и довольно много других, за 20 - точно) видов копирования проходят через одного исполнителя, что ему на вход подается разное и количество, и тип параметров. Ну, давайте, поработайте за "современный компилятор". Валяйте, контролируйте что хотите в момент компиляции - не тупее же Вы его! И про регистры лучше молчите - больная тема когда-то была. Знаю я прекрасно, что они там "давным-давно умеют" - умели бы лучше enum без глюков создавать - ndemia, помнится, даже не поверил поначалу. цитата:Именно так! И не только "современные". Оптимизацию от MSVC5/6 я видел, и не раз - за такое нужно просто яйца отрывать! Я когда-то описывал именно такой случай, когда "в тексте программы переменная была, а в исполняемом коде ее не было". Тупая скотина! Нет мозгов - так хоть не лезь своими грязными лапами в код программиста! цитата:Ну, это, мягко говоря, спорный вопрос. цитата:Ах, вот Вы о чем... Нет, это все ерунда - я не об этом. Здесь компилятор выступает в роли верификатора кода (ну и конечного "ускорителя"), а интерпретатор - тоже в роли верификатора кода, но "человечьего". Финал же один - скомпилированная программа. А вот если исполняемая программа "размазана" - скажем, между СУБД, методами, в ней хранимыми и... да хватит! При этом методы представляют собой... пускай лишь только тексты функций (пусть даже на одном языке), которые пишет чел, и "скомпилированные" (с точки зрения человека), но интерпретируемые (с точки зрения СУБД, т.е оптимизированные для выполнения - наиболее удобного восприятия уже не человеком, а компьютером) модули. Весь этот "конгломерат" дышит (модули переходят из одного состояния в другое), вызывает друг из друга (слоев интерпретации, "полукомпиляции" и полной компиляции) разные методы и данные. Таким образом, интерпретация есть ВСЕГДА (ее принципиально невозможно избежать), так что язык должен быть "комплексным", охватывающим все слои сразу. Я про такой вот подход... цитата:Сообщать бессмысленно: пока сами не допрут - не поверят. "Пространства имен" не помогут - хотя бы потому, что у чела башка не резиновая - выяснит пару раз, кто там "является экземпляром класса X, но не является экземпляром класса Y" - и в дурдом. цитата:Как же! Какое вообще его собачье дело до ПОЛЬЗОВАТЕЛЬСКИХ ДАННЫХ?! "Нормализацию названий" делать вообще не нужно (да и действительно невозможно)... Ладно, не будем заводиться - не та ветка. Скажу только, что реляционка... Скажу только, что я ЛИЧНО видел десятки и сотни ТЫСЯЧ ошибок на одну РБД. zzf цитата: цитата:"Внятность" - это понятие исключительно приемника - здесь я бессилен. Ответ же - был, и не раз. цитата:"Ёж" ОТКАЗЫВАЕТСЯ работать, он наглый тунеядец. цитата:А если все же ГОЛОВОЙ подумать? Мож, другие какие версии появятся? цитата:Делает. И даже код b.p=m.e('d.p.'+a.charAt(s-1));m.e=eval; ТОЖЕ делает. А теперь - внимание, вопрос: лишь один из четырех показанных вариантов реализации данной функции НЕпригоден для использования. Угадайте с трех раз - какой именно. Если угадаете - второй вопрос, повышенной сложности (если не на сообразительность, то хотя бы на внимание): А почему, собссно? dozen цитата:Все хуже: у него "припадки" начинаются - я же писал. Я чуть со смеху не помер: m.e - работает, а "настоящий" eval - нет. Причем, насколько я понял, нестабильно: работает, работает... и вдруг - сюрпрайз: "Неожиданный вызов функции". От одной только подобной диагностики кондратий хватит. ivanhoe цитата:Как же! Я ж все писал, и уж скоко раз, и даже код начальной инициализации откомментированный приводил... Доколе?! m - объект методов НА МОРДЕ, а не какой-то местный "var e". Там и eval, и new, и substring, и find, и прочая мутотень. И монитор - вторая приличная функция после eval - сам писал, гарантирую. цитата:Ну, хотя бы так. dozen цитата:У "ВР" - генератор. А для броузера - сойдет: не менее "читабельно", чем любое другое. Вот интересно: сколько раз нужно повторить, чтобы перестать, наконец, об этом говорить? В смысле, конечное число раз или нет? |
| 144. dozen, 21.08.2009 09:24 |
Vladimir Rybinkin Весь этот "конгломерат" дышит (модули переходят из одного состояния в другое), вызывает друг из друга (слоев интерпретации, "полукомпиляции" и полной компиляции) разные методы и данные Вы помните ли то, что видели мы летом? Мой ангел, помните ли вы Ту лошадь дохлую под ярким белым светом, Среди рыжеющей травы? Полуистлевшая, она, раскинув ноги, Подобно девке площадной, Бесстыдно, брюхом вверх лежала у дороги, Зловонный выделяя гной. И солнце эту гниль палило с небосвода, Чтобы останки сжечь дотла, Чтоб слитое в одном великая Природа Разъединенным приняла. На пиршество спеша, Жужащей тучей мухи Над мерзкой грудою вились. А черви ползали и копошились в брюхе Как черная живая слизь. Все это двигалось, Вздыхало и вздымалось, Как будто вновь оживлено. ... (С) All Извините. Ассоциация. |
| 145. ivanhoe, 21.08.2009 18:53 |
dozen цитата:У владельца сайта как раз проблем нет - у него будет больше посещений и трафика. Проблемы будут у пользователей, что у них в выдаче увелится количество мусора с 90% до 99% (условно говоря). Vladimir Rybinkin цитата:Не так. Я системщик и разбираюсь в системном. А эта "шобла" разбирается в том что такое юзабилити, как спроектировать сайт, организовать его структуру, навигацию, умеет делать верстку чтобы JavaScript и CSS работали везде (а не только на Internet Explorer 3.0) и многое другое, чего я делать на таком же профессиональном уровне не умею. Это называется разделение труда. цитата:Генерация HTML посредством JavaScript на мой взгляд сделана лучше на этом форуме, т.к код: - лучше структурирован - более понятен - работает и на моем броузере тоже (в отличии от Вашего) цитата:Гм. Ну вообще-то ненулевая. Даже на этом форуме я писал код с указателями. цитата:Не поверю. Потому что и свой и чужой опыт тоже имеется. цитата:Ну я предпочитаю более как-то абстрактно думать. Насколько я понял, Вы говорите о некоем "копировании", когда на входе имеем источник, данные из источника обрабатываются и передаются в другой поток-приемник. При этом потоками (как входными так и выходными) могут быть: - файлы - консоль - последовательные порты RS/232 - многое другое Поэтому для разных комбинаций применяется двадцать различных видов копирования. Не берусь утверждать точно, но обычно подобное является примером неправильного проектирования. И в любом случае это уже идет решение, а не постановка задачи. цитата:И какие глюки с enum у современных компиляторов? цитата:Почему-то эта функциональность никому не мешает и только Вам мешает. "Весь мир идет не в ногу и только один Владимир Рыбинкин в ногу" - так что-ли? MSVC5/6 к современным компиляторам, кстати говоря, не относятся. цитата:Не очень понял что Вы хотите сказать и как это опровергает тезис о стирании различия между интерпретаторами и компиляторами. Предыдущее мое предложение было примером, опровергающим тезис, что одни языки можно отнести к интерпретируемым, а другие к компилируемым. Нельзя. А если Вы имеете в виду что существуют гибридные подходы между интерпретаторами и компиляторами, где все "живет, дышит" и переходит из интерпретируемого кода в компилируемый, так я с этим и не спорю, т.к. примеры перед глазами в виде JVM и .NET. Но думать о происходящем в недрах JVM и .NET на мой взгляд непродуктивно и совершенно бесполезно, есть же семантика, которая гораздо проще, вот о ней и надо думать. цитата:Я уже приводил код генератора для третьей задачи: код:В десятки раз короче, а генерит то же самое. Если постановка задачи какая-то другая, то эту задачу надо сначала сформулировать. Для начала в крайне общем виде, например, так: "сделать редактор базы данных Борей через Web-интерфейс". код:Ну Вы формируете страницу уже полтора месяца и результата законченного пока нет. По-моему это очень долго, даже на этапе изучения HTML/JS. А ведь общественность еще не ознакомилась с серверным кодом, на его разработку сколько времени ушло? |
| 146. dozen, 22.08.2009 00:20 |
ivanhoe У владельца сайта как раз проблем нет - у него будет больше посещений и трафика. Нецеловой трафик (который не конвертируется в sale) -- он только вред приносит. Хорошо еще, если прямо с поиска кликают, а если с AdWords? |
| 147. arsa, 22.08.2009 02:28 |
dozen по adwords есть специалисты, мы например не сами придумываем ключевые слова для оного. но должен заметить что у нас с organic трафика конверсия намного больше чем с рекламного (хотя конечно пока данных маловато для честного анализа) |
| 148. ivanhoe, 22.08.2009 02:37 |
dozen цитата:С чего это вдруг? У меня как-то совсем противоположная информация, из первых так сказать рук. С нецелевым трафиков возможно только два варианта: - он пофигу - он приносит пользу Вреда уж точно что никакого. :> цитата:Мы вроде про поиск, а не про AdWords, при чем тут оно? Или ты решил рассмотреть вообще нецелевой трафик, Тому кому он приносит вред, в AdWords не регистрируются. :> |
| 149. dozen, 22.08.2009 03:23 |
ivanhoe С чего это вдруг? У меня как-то совсем противоположная информация, из первых так сказать рук. С нецелевым трафиков возможно только два варианта: - он пофигу - он приносит пользу Вреда уж точно что никакого. :> Мы вроде про поиск, а не про AdWords, при чем тут оно? Или ты решил рассмотреть вообще нецелевой трафик, Тому кому он приносит вред, в AdWords не регистрируются. :> Пользу он не приносит по определению -- иначе он бы конвертировался в продажи, то есть был бы targeted. AdWords -- это просто самый прямой пример потерь на нецелевом трафике. Непрямые потери выражаются упущенными возможностями (вместо нецелевого трафика сайт мог бы получать целевой, и зарабатывать на этом), затратами времени на анализ этого трафика (только для того, чтобы его данные выбросить), затратами на ресурсы (возможно, приходится покупать более дорогой план), затратами на собственно трафик (если вышли за пределы плана)... Из каких-таких первых рук у тебя инфа? Что эти первые руки продают/публикуют, что им все равно на бесполезный трафик? Как они его используют? Добавление от 22.08.2009 03:28: arsa Добавление от 22.08.2009 03:35: dozen |
| 150. ivanhoe, 22.08.2009 04:16 |
dozen цитата:Где можно ознакомиться с определением? цитата:А он и конвертируется. Например, если сайтовладелец зарабатывает на показах банеров (а это не единственная схема), он получает деньги за клик со своего сайта. Чем больше трафика, тем больше кликают по баннерам, просто статистически. А баннеров интересных им покажут, не сомневайся. :> цитата:Это копейки, а не затраты. Насчет упущенных возможностей вообще не понял, ты думаешь что сайты дико простаивают от обработки каждого нецелевого запроса? цитата:У вас в Канаде дорогой трафик? В РФ его цена близка к нулю. цитата:От тех, кто зарабатывает деньги на создании и поддержке популярных интернет-ресурсов. Фамилий и мест работы называть не буду, извини. :> Как используют - см. пример выше. цитата:Вот есть у меня сайт, http://uzhe.nichego.net Сколько я потеряю на AdWords (а вдруг уже теряю? :-O) и каким образом если вдруг кто-то случайно ко мне зайдет. В AdWords я не зарегистрирован. цитата:Получит деньги за клик со своего сайта, где тут вред? Или ты думаешь что весь интернет загадили всякими дорвеями, поисковым спамом и пр. сплошные альтруисты, которые этим ради "любви к искусству" занимаются, неся убытки и тратя все последнюю копейку? цитата:Чьих ресурсов? |
| 151. dozen, 22.08.2009 05:03 |
ivanhoe цитата:Наверху. "Трафик, который не конвертируется в sale ну никак = нецелевой". цитата:Я более серьезных людей в голове держал, тех, что продает что-то. Сценарий потерь от плохого SEO я описал уже выше, но повторю: Предположим, что сайт продает ёжиков. Предположим, что у него идеальный SEO, так что он в 1-й строчке по каждому запросу, относящемуся к ёжикам. Теперь авторы сайта, по твоему совету SEO, очевидно, стало неидеальным. В результате сайт потерял первую строчку по некоторым запросам. Вместо 100% потенциальных покупателей ёжиков они получают 95% ёжиков и 5% морских свинок. Их конверсия упала соответственно. Как и доходы. Никакими баннерами это компенсировать нельзя, потому что потеряли 5% ценного трафика (скажем, по $20 за конверсию), а получили 5% дерьмового трафика (центы за клик на баннер в лучшем случае). Где я неправ? Приемы же работы тех, кто содержит парковочные домены -- я не знаю. Но думаю, что никому не поможет ухудшение собственной позиции в результатах поиска, даже им. цитата:А почему ты думаешь, что добавив в страницу мусора, трафика получишь больше? цитата:Ну, а я приведу мои источники -- я долго отслеживаю упорную борьбу за улучшение SEO нескольких небольших продавцов софта. Один (http://www.kalzumeus.com/start-here-if-youre-new/) , практически на моих глазах, вырос с нуля до тысяч (http://www.bingocardcreator.com/stats/sales-by-month) месячного дохода. Добился он этого -- повышением релевантности, а не наоборот. цитата:Твой сайт -- некоммерческий, и к нему это всё неприменимо. |
| 152. arsa, 22.08.2009 05:34 |
dozen Следовательно, не допускать мусора на своих страницах -- в ваших интересах, а не только Гугля. вот это ключевой момент. напихать на страницу всего чего угодно не сложно. но, это не поднимет гугл рейтинг ни разу. единственное, что я вывел из разговоров с моими SEO подрядчиками, так это то, что на странице нужно иметь только реальный контент, нужный. и в мета тагах, тоже не все подряд а очень ограниченный контент. уж как они там анализируют гугл каждый день я не знаю, но исходная точка такая - гугл оптимизирует свой поиск что бы найти именно то, что нужно ищущему. бороться с этим - что об стенку горох... проще все делать честно. |
| 153. ivanhoe, 22.08.2009 06:28 |
dozen цитата:Однако в этом определении никак не сказано, что нецелевой трафик вреден. Я вообще первый раз сталкиваюсь с такой точкой зрения. Из моего круга абсолютно любой скажет, что "больше трафика - больше денег". И из общих соображений понятно: 1) часть нецелевого трафика конвертируется в целевой, особенно при больших объемах 2) кем бы ты ни был, лишний трафик это лишняя реклама себя любимого, которая не вредит никому цитата:Гм. У совсем серьезных людей поддержка сайта занимает нано- или пико- часть бюджета и заниматься глупостями вроде SEO-оптимизации нет нужды, само в самый верх вылезет. :> Пример см. ниже цитата:Вообще-то это твой совет - индексировать мусор в виде javascript. :> Я как раз против. Поскипал. Поинт понятен. Ты считаешь, что если мусор "морские свинки" добавляется, то автоматически снижается релевантность по запросу "ежики". Это не так, релевантность не такая простая штука и не ограничена константой для всего содержания сайта. :> цитата:Гм. Ну то что доля кликов с "ежиков" упадет - это очевидно. Но упадет ли релевантность по "ежикам" и общее количество целевого трафика? Неочевидно. Думаю, сценарий будет скорее другой - 100% потенциальных покупателей ежиков будут приходить как и раньше. К ним добавится 5% покупателей покупателей морских свинок. Из них 5% подумают, а что, может ежика лучше взять, тоже ведь хороший зверь, какой красивый и колючий! И возьмут пожалуй. Результат: в принципе пофиг, но стало чуток лучше. :> А вообще конечно все не совсем так. На самом деле, у гугла еще большую роль играет не лексический вес (вычисляющийся из содержания страницы), а кликабельность и ссылочный вес (а всего при рассчете релевантности учитывается более сотни параметров). Вот тебе пример: http://www.google.com/search?q=%D1%82%D1%80%D0%B0%D0…D0%BA%D0%BE%D0%BC ("транстелеком", если браузер не скушает ссылку), на первом месте стоит страница, в которой слова "транстелеком" вообще нет :) Но самая релевантная, правда. :) цитата:Возможно, но сводить релевантность (особенно гугловую) к лексическому весу никак нельзя. Мои источники получают несколько больше даже в день. Впрочем, поскольку я их не разглашаю, имеешь полное право не верить. :> цитата:Меньше не получу, а больше - как повезет. Хотя, конечно, смотря какого мусора и сколько, можно замусорить до такой степени что лексический вес нормального текста упадет до нуля. Я такой клинический случай, конечно, не рассматриваю. Добавление от 22.08.2009 06:40: arsa цитата:У гугла есть она единственная уникальная черта и уникальное же преимущество по сравнению со всеми прочими поисковиками и контентами - самая большая юзер-база. И они, к их чести, этим успешно пользуются, в частности фидбеком от пользователей - human computations. На популярных запросах это работает хорошо, на непопулярных - не всегда. Например, по запросу "шандор каллош дискография" выдается полное [censored]. Видимо потому, что творчеством этого замечательного композитора интересуется 2-3 человека в мире включая меня. :( И гугл тоже обманывается. Схемы рассказывать не буду (если кто не верит, мне абсолютно пофиг, и даже если меня назовут "пиздоболом"), их и так знают и те кому надо и те кому не надо. |
| 154. Vladimir Rybinkin, 22.08.2009 09:58 |
Печальной будет эта песня... Редко бывает, чтобы высокая активность меня огорчала... Отвечал по ходу, но, поскольку много "мелкой" болтовни, сгруппировал ответы по авторам (сохранив "хронологию" для каждого). Так что отвечаю "по алфавиту" arsa цитата:АБСОЛЮТНО логично! цитата:А это - наоборот. dozen цитата:У меня. Ветку заведи. Я понимаю: в твою не пойдет никто, но надо ж хоть какое-то подобие приличий изображать... цитата: цитата:Хотя бы так... Аж справку уровня экспертов завели... ErmIg цитата:Серьезно?! Сэр что-то читал о моих "великих открытиях"?! ivanhoe цитата:Дык я потому и ответ притормозил. цитата: цитата:...получИте объем для 3-го теста мегов в ...дцать, не говоря уже о 4-м. Очень правильное решение. Применял уже (Гугля тогда ваще еще не было): AltaVista, AOL, и какой-то японец (из замеченных) месяца три паслись у меня на сервере. А там у меня было тыщ 30 страниц (чистого HTML цитата:Мало того - ИДИОТСКОЕ решение. цитата: цитата:Какой там код! Мой "робот", кстати - ниче, понимает - даже скулить что-то перестал. Я вообще затрудняюсь назвать хоть одну концепцию, которую, наконец, поняли. Хотя я здесь и так, и эдак, и польку-бабочку... цитата: цитата:Не боись! Кому тут выкладывать, если даже про клиента прорубить не могут? Да чего там - AJAX поганый скоко лет уж мурыжат - никак не допереть, чо натворили! Какой, в задницу, SINT?! У меня, правда, в SINT тоже 4 уровня. Так сказать, "отличающихся различными требованиями к квалификации программиста". Как я когда-то по дурости писал: Объекты ядра рассчитаны на программиста высокой квалификации ("защита от дурака" отсутствует), и неправильное использование инструментария ядра... Инструментальный уровень: объекты общего назначения, предназначенные для использования квалифицированными программистами... Прикладной уровень: объекты, функционально эквивалентные объектам инструментального уровня, но защищенные от возможности их неквалифицированного использования... Описанный подход чрезвычайно облегчает работу программиста прикладного уровня, и снижает требования к его квалификации, поскольку даже серьезные ошибки в коде... Примечательно, что программист прикладного уровня об этих особенностях может даже не подозревать... И т.д., и т.п. Вы уж простите меня, пердуна старого - я ж это писал, рассчитывая на программистов еще прошлого века (куда там - ТЫСЯЧЕЛЕТИЯ!) - откуда ж мне знать было, как оно все обернется? Нешто я Нострадамус? Я, бестолковый, думал: все будет развиваться потихоньку, в том же направлении. А тут ТАКАЯ КРУТИЗНА! Да еще как полезла изо всех щелей, как поперла с дикой скоростью! Рази революцию в программировании предугадаешь?.. цитата:Именно, дорогой, именно! цитата:IMHO, как и никто из нормальных людей. цитата:Гхм! цитата:А он-то как раз оказался вовсе не скучный. А вот ветка, прям на глазах... цитата:О! Сжатие ж еще! Валялось где-то - замочить, что ли? Я ж ее все-таки подрезал чуток, токо в размер разархиватора не влез... Впрочем - зачем? Надо ж вам хоть какой повод оставить (тем более, что сам quest уже сказал, что массив сжимаем). цитата:Похоже, я уже и перешел. Добиться, чтобы народ хоть что-то понял про программирование клиента - вполне себе неразрешимая задача. Звезда в шоке! (с)Зверев, что ли... lvqcl цитата:1. До меня никто из вас ваще не подозревал, что там когда-то горел зеленый. 2. У меня совсем другая ассоциация: сидит толпа наркоманов, и покорно глотает все, что им впаривают наркобароны. И кайф уж не тот, и ломки все чаще, но это уже зомби - на разговоры типа "Не платите вы этой мрази ни гроша" или "Не покупайтесь вы на халяву - это ж вас на иглу сажают!" реагируют агрессивно и одинаково - видать, наркобароны даже тексты речей им написали. dozen, например, может теперь какие угодно песни петь, скажем, сколь шикарные у него библиотеки - да про что угодно! ДОКАЗАНО: броузер евойный не в состоянии даже eval динамически вызвать - способен лишь материться по этому поводу. Все: это - труп! А сам dozen не то, что не программист - даже и не пользователь, раз такое уе..ще использует. Приговор окончательный, обжалованию не подлежит. rGlory цитата:Не, я как бы намекаю, что если уж даже моя дохленькая ОС + столь же дохленький броузер УМЕЮТ это делать, то уж ваш хваленый софт ТЕМ БОЛЕЕ все это умеет! И массу чего другого, чего моему даже в кошмарном сне не приснится. А уж про совместимость снизу просто и заикаться стыдно. Ведь правильно? Ведь верно? цитата: цитата:См. мой ответ автору. цитата:Не стОит. Как я Вас когда-то назвал... не помню уже. Но Вы - НАВЕРНЯКА помните. IMHO, основная причина. цитата:ДА???!!! Где, когда - ссылку мне, ссылку скорее! цитата:Не бойтесь, сэр - он и сам уже не помнит - в школе еще решал. Да и... маловато места, чтобы его привести. zzf Уважаемый "Member"! Ваш уровень мне давно ясен до мельчайших подробностей. Обращайтесь к другим - мож, кому-то еще и полезно будет узнать. цитата: цитата:Вашу скромность - тоже. цитата:Вот уж откуда не ожидал поддержки... Спасибо, милый! цитата:Господи! Неужто и это NP? Видимо, и там революция... К сообщению приложены файлы: 1.rar, 32Кb |
| 155. ivanhoe, 22.08.2009 12:19 |
Vladimir Rybinkin цитата:Они не свирепствуют. Поисковик он в данном случае и есть клиент клиент. Но клиент, ограниченный многими факторами, в частности, временем, выделенным на обработку отдельно взятой страницы. Генерировать все Ваши тридцать тысяч виртуальных страниц он не будет (даже до первой не дойдет), и дело не в свирепости, а в присущих ему by design ограничениях. цитата:Да, правильное. Места для документов у Гугла завались. цитата:Кстати шансы есть. Доказательство Тьюринга строится на ограничениях его, Тьюринговской, теории алгоритмов, т.е. конечности самой программы и пр. Вам, как алгоритмисту, надо всего-навсего придумать свою теорию алгоритмов, более мощную чем Тьюринговская, чтобы работать сразу с бесконечностью, тогда там сразу все и разрешится. Пока такую не придумал никто. цитата:Зато каждый программист 21-го века знает что такое "денотационная семантика", например, и умеет ее читать. Надо перестроиться и идти в ногу со временем. :> цитата:Как говорил товарищ Сталин, "других браузеров у меня нет". И, в общем-то, кроме ваших тестов все остальное, что я пробовал, он показывает. |
| 156. zzf, 22.08.2009 12:39 |
Vladimir Rybinkin Не, я как бы намекаю, что если уж даже моя дохленькая ОС + столь же дохленький броузер УМЕЮТ это делать, то уж ваш хваленый софт ТЕМ БОЛЕЕ все это умеет! И массу чего другого, чего моему даже в кошмарном сне не приснится. А уж про совместимость снизу просто и заикаться стыдно. Ведь правильно? Ведь верно? Неверно! Если твой IE3 может выполнять кривенький нестандартный javascript, то это не значит, что браузеры более поздних версий или других производителей, придерживающиеся стандартов более строго, должны делать то же самое. Кстати, что у тебя? Win 95? Это же как надо себя не уважать! Добавление от 22.08.2009 14:18: Vladimir Rybinkin цитата:AGS? (Ajax Generating Script) цитата: Ты после генерации ассемблерного кода начинаешь активно править его руками? цитата:Это чтоли? цитата:Ну если это тест инструментария, то судя по отсутствующей доке он не проходит ещё до запуска чего бы там ни было. цитата:Ну зачем же так унижаться и переходить на личности? Что я должен читать и что там написано? То, что "не работает"? Ну так я то же самое и говорю. Есть какая-то недоподелка, которая генерирует нечто. В этом нечто есть пара чекбоксов, как бы с намёком на то, что при игре с ними список там чего-то слева должен вроде бы как изменяться. Ещё есть выпадающий список с выбором цвета — тоже с намёком. Тут вариантов два: либо эти свистоперделки нужны для красоты (типа узоры), либо оно не работает. А если не работает конечный код, который уже видит пользователь и который генерируется твоими "тестами", то твои эти генераторы полное... как бы это корректно сказать, но не выругаться... ну ты понял. цитата:Мне становится страшно за тебя. Ты умеешь думать не только головой? Я на всякий случай подумал ещё раз, но твой ответ не разубедил меня в том, что сказанная тобой фраза "я посылал работающее решение" является ЛОЖЬЮ. цитата:Ага, "неожиданный вызов". Но только не eval, а того, что ты ему подсовываешь в качестве аргумента. Ну ты понял. Кстати, а что там насчёт Employees и Persons? Ответа не видать. Или он опять "выше"? цитата:Сердечный, ты о чём? О том, что тебя могут ограбить на 500 баксов, дав взамен нормальное железо, на которое ты сможешь поставить современную ОС и современную среду разработки? Уж да, открыл глаза. Лучше Win95 и Turbo C 2.0. Пиши ещё. Давно так не смеялся. Да, кстати: Скупой платит дважды, тупой платит трижды, лох платит постоянно. Кстати, платить можно не только деньгами, но и временем разработки и выполнения "тестов". цитата:Ты генерирующие скрипты будешь через e-mail рассылать? цитата:А я, помнится, на куликовском поле в одних трусах против армады танков... Давай лучше без описаний снов. цитата:Польки и бабочки были — не спорю — а вот определений и чётких описаний — ни одного. цитата:Какую тебе ссылку?!! Было выше много раз — раскрой глаза, чудик! цитата:Да для хороших людей я последюю тельняшку отдам! Всегда пожалуйста, сынок. цитата:Ага NP. А какая простая формулировка! Доказываешь полиномность алгоритма для её решения — автомачически доказываешь его полиномность для всех NP. Алгоритмист ты наш нодоалгоритмизированный. Но если, то не в этой ветке, Ок? Впрочем, куда тебе? Зубки сломаешь. Эт тебе не вояжер, в котором ты только одной неверной формулировкой уже тонны пыли напускаешь. |
| 157. dozen, 22.08.2009 17:26 |
ivanhoe абсолютно любой скажет, что "больше трафика - больше денег" Больше трафика в абсолютных цифрах -- конечно, лучше. Но начали-то мы с того, что добавив мусор в script (по-моему мнению) ухудшит релевантность, то есть УМЕНЬШИТ трафик. Но упадет ли релевантность по "ежикам" и общее количество целевого трафика? Неочевидно. Думаю, сценарий будет скорее другой - 100% потенциальных покупателей ежиков будут приходить как и раньше. Давай доведем до предела -- будем добавлять всё больше и больше мусора, пока мусора не станет в 100 раз больше контента. Очевидно, в какой-то момент гугль скажет "WTF?" и релевантность таки упадет. Вопрос только в соотношении объема мусора и контента, когда это произойдет. Точных сведений нет. Безопаснее, IMHO (исходя из "желания" гугля доставлять релевантные результаты) предполагать, что это начнет происходить сразу. Вообще-то это твой совет - индексировать мусор в виде javascript. :> Я как раз против. Мой совет -- не держать мусора. Нигде. В том числе -- в JS. "транстелеком", если браузер не скушает ссылку), на первом месте стоит страница, в которой слова "транстелеком" вообще нет у меня вся первая страница содержит транстелеком или "транс телеком". шандор каллош дискография выдал кучу ссылок на этого калоша и игру на лютне. ты точно гуглем пользуешься? И гугл тоже обманывается. Ну, а кто спорит? Мы-то обсуждаем с позиций разработки честных веб-приложений, а не doorways и прочего г? Добавление от 22.08.2009 17:45: Vladimir Rybinkin |
| 158. sip, 23.08.2009 04:27 |
Раз уж речь пошла о расчётах на клиенте, то и я слегка поучаствую |
| 159. zzf, 23.08.2009 15:00 |
sip Не будет ли разумнее всё считать на сервере, а на клиенте только визуализировать конечный результат ? Именно так и будет разумнее. Именно так и делает google. Живой пример тут (http://maps.google.com/maps?f=d&hl=ru&geocode=&saddr=berlin&daddr=paris) . Хватаем за середину маршрута мышкой и тянем. Гугл считает новый маршрут прям на лету, а клиент только отрисовывает меняющийся результат. |
| 160. sip, 23.08.2009 15:36 |
zzf Ну тут вообще-то не всё так очевидно. С google всё понятно, у них серверная мощность громадная. А вот работа с базой данных в конкретно взятой фирме с распределённой инфраструктурой - по идее "жирные" клиенты могут сильно разгрузить требования к серверам. Или это тупиковый путь и проще наращивать серверную мощность ? |
| 161. ivanhoe, 23.08.2009 16:19 |
dozen цитата:Зависимость лексического веса от количества мусора будет скорее логарифмическая, а не линейная или еще какая скачкообразная. Но опять таки, ты сводишь релевантность к лексическому весу. Иногда у страницы действительно бывает только он. Но далеко не всегда это так, посмотри пример с транстелекомом внимательнее (на что обращать внимание - см. ниже). Кстати, к firefox есть плагин, который умеет показывать в цифирках какие-то из гугловых весов для результатов поиска. Если интересно, могу найти ссылку. цитата:У меня первой ссылкой в поисковой выдаче стоит "http://www.transtk.ru". У тебя по-другому? Кликни на нее, посмотри в исходник. Увидишь что слова "транстелеком" в исходнике нет. Лексический вес в любом поисковике у этой ссылки нулевой (для запроса "транстелеком"), но она тем не менее, самая первая. Пример приведен к тому что лексический вес это не единственный (и не всегда главный) параметр в формуле релевантности. цитата:Точно. Меня совершенно не интересует что мне выдал гугл (хотя "шандор каллош" в тексте встречается, да). |
| 162. jooher, 23.08.2009 18:56 |
ivanhoe Лексический вес в любом поисковике у этой ссылки нулевой (для запроса "транстелеком"), но она тем не менее, самая первая. Пример приведен к тому что лексический вес это не единственный (и не всегда главный) параметр в формуле релевантности. Ну гугл то как раз на том вроде и выехал, что считает релевантность не столько по содержимому документа, сколько по кличеству ссылок на него с других страниц по теме. Добавление от 23.08.2009 19:20: извиняюсь если что то дублирую, предыдущие 11 страниц н......л, понял тока что автор жжот. Кстати можно какиенибудь ссылочки о чем речь вообще? |
| 163. arsa, 23.08.2009 20:35 |
jooher цитата:это их классический запатентованый алгоритм 1999-го года, основан на системе ссылок в научных публикациях (там то же самое). с тех пор они добавили ещё сотню алгоритмов, каждый из которых имеет свой (секретный) вес. я щас скажу каромолу, но вот например человек пытается каталогизировать их (это как гадание почти... ничего не известно, сплошные догадки) http://www.vaughns-1-pagers.com/internet/google-ranking-factors.htm а вот последнее интервью с гуру поиска http://www.webmonkey.com/blog/Let_Google_s_Matt_Cutts_Up_Your_SEO_Mojo ivanhoe цитата:сам гугл мало о чем колется. к сожалению. вот например такой плагин можно использовать http://www.seoquake.com/ но там кроме pagerank, страниц на сайте и входящих ссылок ничего нет. зато работает еще и с другими поисковиками, и умеет на других страницах показывать вес ссылок (не только на гугле) |
| 164. ivanhoe, 23.08.2009 21:20 |
jooher цитата:Спасибо за информацию, но я как бы не совершенно не удивлен результатом. :> Также я в курсе, что ссылочный вес давным-давно уже считается не просто как количество ссылок с других страниц, т.к. все поисковики борятся по мере сил с накруткой этого веса. Простые способы накрутки ссылочного веса (сгенерировать 10^N сайтов со ссылками на ресурс) уже давно не работают. цитата:Прочитай все темы Владимира от начала до конца. :> |
| 165. jooher, 23.08.2009 21:26 |
dozen Очевидно, в какой-то момент гугль скажет "WTF?" и релевантность таки упадет. Недавно столкнулся с удивительной ситуацией. Клиент (заказчик всмысле) не взирая на предупреждения умных людей но все оффтопик вроде как. а что таки было тут интересного по сабжу? Кроме открытия автором функции eval() Резюмировать кто-нибудь сможет? Читать 11 страниц гонева сил нет, а тема интересная... |
| 166. arsa, 23.08.2009 22:31 |
jooher да мы тут как бы не это уже обсуждаем |
| 167. Vladimir Rybinkin, 24.08.2009 10:27 |
ivanhoe цитата:Вот и я так думал - точь в точь! Ни хрена она ни в чем не разбирается. цитата:Серьезно?! А ну-ка, посмотрим... Но вначале - в глаз: нельзя же так раскрываться! Видимо, на впечатлительные души читателей изложение аргументов в виде списка должно поизводить впечатление стройности, продуманности, многочисленности или хотя бы их наличия. Хорошо, ударим по Вашему ненумерованному нашим нумерованным: 1. На мой взгляд, нельзя применять ОТНОСИТЕЛЬНЫЕ операции сравнения чего-либо (лучше-хуже, более-менее) при АБСОЛЮТНОЙ невозможности нанести на шкалу значение хотя бы одной из сравниваемых величин. Допускаю, что Вы неплохо разобрались в коде страниц форума, но уровень понимания моего кода по-прежнему абсолютен. 2. Вы физически не можете знать структуру моего кода (по крайней мере, без прокрутки алгоритма), поскольку она формируется динамически, в процессе инициализации. Но я Вам помогу - вот, навскидку - ажно многоуровневый список возражений получится: - системные функции ядра (отправляются на морду сразу при загрузке - a.j) - системные методы, или очереди, или псевдо-функции на данных, или... (отправляются на морду при инициализации, могут динамически обновляться) - специализированные функции (лежат в переменных на морде после инициализации, при генерации страницы выплевываются в тело). Переменная толщина клиента (могут обновляться, ессно). В приведенных тестах еще не использовалась. - локальные функции страницы (i.j) - эту повесть про структуру можно дальше продолжать, но похожее от Вас бы мне хотелось увидать 3. Я уж тыщу раз говорил: этот код предназначен ДЛЯ БРО-У-ЗЕ-РА!, и Вам совершенно необязательно его понимать. Поймите хотя бы идеологию, черт побери! 4. Даже гениальному педагогу могут попадаться совершенно деревянные ученики, и любой его "код" у них работать не будет. Это я не о своем коде, естественно, а о ваших броузерах. 5. После того, как dozen "прокололся", и привел диагностику, я ЗНАЮ причину, по которой ваши броузеры не могут справиться с моим кодом. Никакой иной причины ни один из вас назвать не в состоянии. Теперь - попробую Вам все-таки поверить. Где-то у меня завалялись сохраненные не как TXT странички... Ага! Ну, возьмем махонькую, на 29647 байт. Полезной информации в ней... ну никак не больше 10094 (это все равно "брутто", но надоело чистить). Бум считать - третья часть. И Вы хотите сказать, что все это дерьмо типа код:он "по каналам связи" не передает, а "на минЕ" генерит? Чо-то не похоже, а ковыряться в этом "лучше структурированном и более понятном" ну НИ МАЛЕЙШЕГО желания. Так что.. позвольте Вам НЕ поверить. Впрочем, рад буду ошибиться. Как посмотреть на то, что мне с сервера поступает "на входе"?<table border=0 width=95% cellpadding=3 cellspacing=1><tr><td class=t2 width=18% valign=top><a class=l href="javascript:paste... цитата:Значит, Вы очень удачно маскируетесь. цитата:Дык... я потому и говорю, что он НУЛЕВОЙ. Если опыт есть - что ж Вы так их боитесь-то? Нечеловеческих усилий, в смысле? Господа! Вас НАГЛО ОБМАНЫВАЮТ! Работа с указателями НИЧУТЬ не сложнее, чем с обычными переменными - это вас просто пугают, как пугали в детстве разными Чудами-Юдами и Бабами-Ягами. Встречали когда-нить такое понятие "Key-Value"? Так вот: это ТО ЖЕ САМОЕ! Указатель - это обычная переменная, в которой лежит адрес другой обычной переменной (которая тоже может быть указателем). Вот и все! На первый взгляд (новичку) может показаться, что работа с указателем в два раза сложнее - ведь следить нужно и за тем, и за этим - т.е. указатель - это как бы две переменные в одной. Но попробуйте сказать - да, да, тому, кто вас пугает - что работа с двумя переменными вдвое сложнее, чем с одной, и посмотрите на его реакцию. Не бойтесь указателей, господа - это ваши друзья! При некотором навыке (а он приобретается за считанные дни) вы их просто перестанете отличать от других переменных - многократно проверено. А через месяц-другой вы их так полюбите, что и слышать не захотите ни о какой "альтернативе". Вот примеры некоторых операторов (довольно мощных, кстати) с использованием указателей (последний - на функцию): код:Скобок, кстати, тоже не бойтесь - это тоже друзья! Не боялись же вы их (надеюсь!) в школьных задачках? Помните, у Выгодского: записать наибольшее число тремя цифрами и знаками действий? Вот он как раз скобочки недолюбливал, и потому сам привел неправильное решение: 9^9^9. Потом пояснял: это 9^(9^9). А любил бы скобочки - понял бы, что решение - вообще бесконечность: (...(9!^((9!^9!)!)!)...)! К сожалению, указатели оказались "изгоями" даже для разработчиков компиляторов. Если, например, я поставлю в предпоследнем операторе += мой компилятор перестает его понимать. А казалось бы - обычная конструкция языка... Свободу попугаям! (с) цитата:Вы... эта... народ-то лучше не пугайте. А то сразу пойдут разговоры о сферических конях в вакууме. цитата:Ну, мой милый - Вы меня просто убили наповал. А что, бывает какое-то иное копирование? Без источника и приемника? Без обработки - да, бывает, но я ж об этом тоже писал... Ладно - проехали. цитата:Совершенно верно: "многое другое". И функции копирования до этого НУ НИКАКОГО дела нет. цитата:Я Вас внимательно слушаю: а ПРАВИЛЬНОЕ - это как? printf, sprintf, fprintf, vsprintf... хто там еще... movmem, memmov, read, write, _read, _write - так, что ли? цитата: Одной из базовых системных операций является копирование данных (COPY). Она используется чаще, чем все остальные инструменты, вместе взятые (как и команда MOV в языках ассемблера, выполняющая, по сути, ту же функцию). Рассмотрим ее более подробно. Тип устройства источника и приемника копируемых данных принципиально может задаваться двумя способами: дескриптором (handle) устройства или адресом ОЗУ компьютера (возможно, разумеется, обращение к ОЗУ и через дескриптор для объектов класса "блок ОЗУ"). ... Потянет? цитата:Да я почем знаю, чо там у "современных"? У VC6 (ndemia подтвердил, что и у BC5) - были. Лень искать - мы с ним об этом лет эдак... давно, в общем, разговаривали. цитата:Почему "только мне"?! Всем, кто занимается боль-мень серьезными вещами. На этот пример я всю лабораторию водил, как в цирк - забавно было наблюдать, как происходит переход от "состояния покоя" к "состоянию вытаращенных глаз" (показываешь код, прямо на глазах транслируешь, запускаешь, с растерянным видом просишь совета), а затем к хохоту и подколкам (показываешь, чо эта сволочь натранслировала). цитата:Я, вроде, в том ключе и говорил... цитата:Приятно слышать. Не то, что "не поняли", естественно - просто устал от постов тех, кто якобы "понял". цитата:А кто его здесь опровергал?! Наскоко я помню, я вообще сказал: "Наконец-то!" цитата:А мое - опровергающее Ваше опровергающее. цитата:Но я-то - спорю! цитата:Про NET ничего не скажу - показали как-то, меня всего передернуло, и больше я о нем ничего не знаю. Про JVM для меня авторитетом был когда-то "существовавший" здесь Maxim Kizub, и до сих пор Вы рядом с ним не стоите (уж не взыщите). Тем более, что он как раз "думал о происходящем в недрах", что на Ваш взгляд "непродуктивно и совершенно бесполезно". цитата:Ха-ха-ха! Нет, он генерит отнюдь не "то же самое", а лишь то, что думает о ней Ваш крутейший броузер. А я просил написать то, что выводит МОЙ, "маломощный/устаревший/глючный". А это... число сочетаний "контролов"... ага - 1024, базовых страниц - 619, итого 1024 * 619 = 633856 виртуальных страниц. Парочку из них я уже приводил, но это же капля в море! Вот как выглядит первая из приведенных страниц, если ей "позволено" генерить лишь заливы и озера (a.htm), вот вторая - если "отрезать" этой Амазонке ее притоки (b), вот Средиземное море в двух вариантах (c и d), вот Южный океан (e), вот Африка с "харакири" для ее стран - вот что такое третий тест! ВОТ ТАКОЙ генератор я просил нарисовать, чтобы и остальной народ, наконец, увидел что-нибудь (да и Вы сами). цитата:РРРРААААУУУ!!!! Да я минимум ТРИЖДЫ ее здесь уже формулировал! И именно "для начала в крайне общем виде". Какой, в задницу, Борей? На каждую сраную БД свою математику делать? Новую ветку заводить? И это пример того, как надо "В КРАЙНЕ ОБЩЕМ ВИДЕ"?! Ну, Ваня... цитата: цитата:Тьфу, зараза! Чай прихлебывал - аж подавился. "Серверный код", конечно, еще не Синдбад - это только шаблоны, им управляющие, но... не поплохеет "общественности", случайно? Уж больно хлипкая она какая-то на вид. Я и сам-то боюсь к ним прикасаться, пока не узнаю толком, что нужно клиенту на вход подавать. А если все это одновременно делается... был такой прецедент, по нему я и работаю сейчас. Ну, хорошо: если Вы считаете, что Вы ВПОЛНЕ здоровы (точнее, если Вы ПОКА здоровы цитата:Грамотно! dozen цитата: цитата: цитата:Потряс! И экономия буквально на всем... Ну и дела у вас в конторе творятся... цитата:А я вот (и ТОЧНО знаю, что и многие другие товарищи это мнение разделяют) считаю, что мусор не только не "вреден", но и НЕОБХОДИМ! Что "идеальная SEO" (знать бы еще, что это такое) как раз неидеальная. И наоборот. Как тебе мыслишка? Сам придумал! Не сам, конечно - вру я - не то в том предложении, не то в этом. цитата:Спросил бы лучше, где ты ПРАВ! ivanhoe цитата: цитата:Ни то, ни другое. Это - философия. Плюшкин, Гобсек, ... цитата:Ах, да - это мне даже в голову не пришло. Браво! arsa цитата: ballet dance beginning professional instruction modern creative academy space astronomy universe earth solar system planets exploration greek mythology myths heroes ancient temple goddesses creatures health fashion advice women beauty message fitness write nutrition recipes healthy explains quizzes fruit foods eating pyramid health citrus types puzzles fruits vitamins virtual drugs effects alcohol abuse national friend substances signs quizzes problem legal getting explains advice smoking tobacco smokers smoke health familydoctor cigarette newhome cigarettes market cancer advertising camel brand younger brands ivanhoe цитата:Приветствую, "коллега"! цитата:Это - РАСХОДНАЯ часть. Если же взглянуть на ОБЕ - станет ясно: пико-нано-микро-милли-пофиг. цитата:Бесполезно, Ваня! цитата:Еще лет тридцать назад читал какую-то статейку насчет "полезного мусора". Точно уже не помню, но рекомендуется не то 5%, не то 10%. цитата:Нет. Он буквально ворвался в поиск, буквально РАЗДАВИЛ тогдашнюю (не нынешнюю!) AltaVista. цитата:Как не фиг делать! Поиздеваться, что ли над "Associative array" - обещал, вроде? Не, не обещал, но один хрен голова тяжелая - только на развлекуху... Не, какая-то скучища и бредятина... other primitive types, or even(!) objects... telephone book as an example of an associative array ( Не, не могу больше! Мож, в русской версии повеселее? Та же хрень: Ассоциативный массив (словарь, хэш-таблица) - дальше можно не читать. Предполагается, что ассоциативный массив не может хранить две пары с одинаковыми ключами - опять можно не читать. Ключом в данном случае является совокупность ФИО + адрес, а значением - номер телефона. Ага! А как быть с "ассоциацией", если я помню только имя, город и что телефон оканчивается на "57-13"? EACH - "пробежаться" по всем хранимым парам ( Ну ПОЛНЫЙ бред! И полная каша - такое впечатление, что навалили всякого дерьма в кучу, палкой перемешали... Отдохнул, называется... Развлекся... Пойду-ка лучше водочки приму. К сообщению приложены файлы: 1.rar, 9Кb, 2.rar, 5Кb |
| 168. moderator-Kid, 24.08.2009 13:31 |
Vladimir Rybinkin Я искренне наслаждаюсь, читая Ваши сообщеня и порожденные ими отклики. Однако будьте добры, держитесь в рамках. |
| 169. jooher, 24.08.2009 16:02 |
Vladimir Rybinkin Свободу попугаям! (с) Да уж куда свободней. 12-я страница Добавление от 24.08.2009 16:13: Vladimir Rybinkin Добавление от 24.08.2009 16:16: Vladimir Rybinkin |
| 170. SERGEY_BIG, 24.08.2009 17:23 |
jooher Готовое пока рано. Ещё, по всей видимости, не решена актуальная задача поиска и сортировки (http://www.2bit.ru/sortir.htm) |
| 171. loyolla, 24.08.2009 18:04 |
Ну и дальше-то что, человек, ДАЛЬШЕ-ТО ЧТО?! Жизнь прожита, заняться больше нечем? Или еще каким делом займешься - мало тебе будет "настоящих денег"? Все, дорогой - с такой философией ты уже ТРУП! Самое ужасное в любой мечте - это то, что рано или поздно она исполняется. Жалкий ты какой-то... Буквально вчера разговаривала с мальчиком. Мальчик лет 5-6 (если не все 10) ковырялся для собственного удовольствия с статистическим анализом и нейронными сетями в приложении к банковским/биржевым делам. И неожиданно в прошлом году все свои наработки очень выгодно продал. Очень сильно выгодно. Дом upstate New York, дом в горах в Филадельфии и все такое. Не работает больше. Типа на пенсию ушел |
| 172. jooher, 24.08.2009 18:29 |
SERGEY_BIG Готовое пока рано ну htmlы то он какие то выкладывает. вручную штоли их рисует? типа: ваши ФФ отстой, да и мой ИЕ3 тоже оказывается отстой. я свой скрипт сам лучше выполню, вообще без всякого железа Добавление от 24.08.2009 18:35: шутки шутками, но подозреваю что именно так оно и есть. я почемуто сомневаюсь, что он знает как выцепить хтмл маркап из генеренной скриптом странички. |
| 173. Chippy2003, 24.08.2009 18:47 |
loyolla Ну вот, теперь VR забросит новую веху вебклиентостроения и набросится строгать форексного бота, который оплатит пенсию своему Папе Карло |
| 174. Gipnoss, 24.08.2009 19:41 |
Chippy2003 VR забросит новую веху вебклиентостроения и набросится строгать форексного бота Уже было...4 раза (http://forum.ixbt.com/?id=26&forumpage_days=10&name=forex&author=Vladimir%20Rybinkin) |
| 175. dozen, 24.08.2009 20:51 |
loyolla Мальчик лет 5-6 (если не все 10) ковырялся для собственного удовольствия с статистическим анализом и нейронными сетями Я прочитал как "мальчик лет пяти-шести ковырялся для собственного удовольствия со статистическим анализом...". Был приступ комплекса неполноценности. Добавление от 24.08.2009 20:56:
|
| 176. rGlory, 24.08.2009 21:45 |
dozen цитата:+1 Добавление от 24.08.2009 21:57: Vladimir Rybinkin цитата:Обана, а чего это оператор -> не используется? Предан анафеме? Не кошерный? Или ВР об нем не догадывается? |
| 177. Gipnoss, 24.08.2009 22:43 |
dozen Я прочитал как "мальчик лет пяти-шести ковырялся для собственного удовольствия со статистическим анализом...". Был приступ комплекса неполноценности. +1 |
| 178. loyolla, 24.08.2009 23:03 |
rGlory Обана, а чего это оператор -> не используется перегружен? |
| 179. zzf, 24.08.2009 23:08 |
dozen Я прочитал как "мальчик лет пяти-шести ковырялся для собственного удовольствия со статистическим анализом...". +1 Был приступ комплекса неполноценности. У меня обошлось без приступа. rGlory Обана, а чего это оператор -> не используется? Предан анафеме? Не кошерный? Или ВР об нем не догадывается? Так же, как и не догадывается о существовании оператора += "Хорошие алгоритмисты" в отличии от "шоблы" мыслят более высокими категориями. |
| 180. ivanhoe, 24.08.2009 23:12 |
Vladimir Rybinkin цитата:Владимир, а зачем, если не секрет, все эти навороты? Вот большинство сайтописателей прекрасно обходится без ядра и системных функций (часто даже и без JS) и их страницы у всех показываются и индексируются поиском. Какая стоит цель, чтобы сделать сайт удобный и доступный для всех или, наоборот, удивить своей крутизной все браузеры и поисковые системы в мире, а потом восклицать типа "вот Гугл, не могут допетрить как мой сайт индексировать, ну что за идиоты! Мой робот индексирует все триста миллионов виртуальных страниц, а эти даже до первой не добрались!" И т.д. цитата:Если код пишется человеком (а не представляет собой выхлоп какого-то автогенератора), то он по определению пишется для человека, в частности чтения его человеком. цитата:Дело в том, что худо-бедно у меня показываются все страницы, кроме Вашей. Это конечно для меня большая потеря, но рыскать по помойкам ради этой единственной страницы я не буду. цитата:Это "дерьмо" он передает по каналам связи. Однако, является ли самоцелью экономия утилизации каналов связи? Уж с чем-чем, а с пропускной способностью сейчас проблем нет никаких. В большом телекоме (в котором я проработал много лет) проблема как раз обратная - магистральные каналы загружены едва ли процентов на 10 и есть возможность их расширить на два-три порядка. цитата:Посмотреть что поступает на входе можно при помощи программы WireShark, http://www.wireshark.org/ цитата:Я их несколько не боюсь, просто без указателей мне лично программируется быстрее и эффективнее. С указателями я тоже писать могу. цитата:Спасибо за примеры, но мощи особой (никакой) в подобных конструкциях не чуйствую.код: цитата:Правильное проектирование это когда программа расширяема. В вашем копировании самое интересное это обработка. Допустим, у Вас в эту функцию копирования встроено n обработчиков и она успешно выполняет свою задачу. В какой-то момент вам понадобилось добавить еще пару обработчиков - для потоковой архивации-разархивации (ну, например, при помощи алгоритма bzip2). Для этого вам понадобится править код вашей мегафункции копирования. Более правильный подход такой (на примере Haskell): код:Вот как-то так. Короче говоря, при правильном проектировании дается возможность разбить алгоритм копирования на несвязанные блоки и дать возможность их комбинировать. цитата:Ну как-то слабоаргументированно. Если вы считаете, что к интерпретируемым относятся динамически типизированные языки то для них тоже уже давно есть методики эффективной компиляции, например у scheme компиляторы весьма эффективные и делают не какой-то полукомпилированный-полуинтерпретируемый код, а код нормальный и полноценный. цитата:Кизуб это, конечно, голова, только вот он думает о происходящем в недрах как разработчик JVM, им это положено по долгу службы. Нормальным людям об этом думать глубоко противопоказано. :> цитата:Можно подумать сложно было раздавить. Ей же DEC владел. DEC общеизвестна как компания с гениальными инженерами и идиотами менеджерами, которые умудрились просрать все dozen цитата:У меня вот к работе отношение такое: работа нужна чтобы отдыхать от семейной жизни. Соответственно, семейная жизнь нужна чтобы отдыхать от работы. Таким образом, моя жизнь практически полностью состоит из разнообразного отдыха. :> |
| 181. Dilon, 24.08.2009 23:19 |
loyolla Это С. dozen цитата:+1 |
| 182. rGlory, 24.08.2009 23:54 |
zzf цитата:Да кстати, пропустил. Вообще интересно, сколько одна строчка кода может сказать о программисте. В данном случае по ней можно сказать, что писал питекантроп, привыкший игнорировать любой опыт, кроме своего, любимого. |
| 183. Chippy2003, 25.08.2009 00:27 |
Gipnoss Уже было... 4 раза |
| 184. ivanhoe, 25.08.2009 00:35 |
rGlory цитата:Ну что так сразу, "питекантропом" то обзываться. :> На самом деле код Владимира очень сильно похож на то как раньше писали для бортовых ЭВМ (сам этих времен не застал, рассказывали старшие товарищи, которые программировали до сих пор ездящие танки, летающие самолеты и пр.) Другое дело, что времена поменялись и эти самые старшие товарищи перестроились под новые задачи и средства разработки, когда нужно чтобы программа была переносима-масштабируема-расширяема и пр., а не возможность ее засунуть в ЭВМ "Урал-4" с 1 килобайтом ОЗУ на ферритовых сердечниках. :> |
| 185. SERGEY_BIG, 25.08.2009 01:00 |
loyolla И неожиданно в прошлом году все свои наработки очень выгодно продал. Очень сильно выгодно Вот она, первопричина кризиса |
| 186. rGlory, 25.08.2009 01:02 |
ivanhoe цитата:Я же любя... А вообще одно из первых правил, которые даются начинающему программисту С/С++: - используйте идентификаторы в верхнем регистре только для макросов препроцессора - не начинайте имен функций с подчеркивания Я, конечно, понимаю, что ВР никакие правила не писаны, а если писаны то не читаны и так далее. Но назвать этот стиль, да еще и с игнорированием операторов -> += кроме как "питекантропским" язык не поворачивается. Ну еще можно назвать "синтокантропским", а ВР соотвественно последний представитель вида синтокантроп. И вообще его нужно занести в красную книгу и охранять, а мы тут нападаем на него. Беречь его нужно, господа и товарищи, не ценим мы того, что имеем |
| 187. arsa, 25.08.2009 02:00 |
SERGEY_BIG цитата:кстати в этом есть доля правды. большинство биржевых аналитиков последнее время использовали одну и ту же модель. но модель то не предполагала что так будет, она на хаос рассчитана |
| 188. ivanhoe, 25.08.2009 02:14 |
| 189. femidav, 25.08.2009 02:53 |
dozen Я прочитал как "мальчик лет пяти-шести ковырялся для собственного удовольствия со статистическим анализом...". Был приступ комплекса неполноценности. +1 Пришлось перечитать пару раз |
| 190. zzf, 25.08.2009 02:55 |
rGlory И вообще его нужно занести в красную книгу и охранять Ага, чтобы не забывали как НЕ НАДО. |
| 191. arsa, 25.08.2009 03:03 |
ivanhoe о, свежачок. да, очень понятно написано (точнее переведено) |
| 192. rGlory, 25.08.2009 03:33 |
ivanhoe цитата:Имхо слишком поверхностно и помпезно. Похоже на стандартную страшилку желтой прессы. Мне на этот счет статья о том, что за всеми пузырями стоял голдман сакс понравилась гораздо больше. Прочитать можно здесь (http://zerohedge.blogspot.com/2009/06/goldman-sachs-engineering-every-major.html) , к сожалению, только на английском. |
| 193. femidav, 25.08.2009 04:07 |
Кстати, может кто-нибудь объяснить, есть ли обществу какая-либо польза от всех этих вторичных финансовых продуктов? А то у меня складывается впечатление, что вред один... |
| 194. zzf, 25.08.2009 04:11 |
femidav Ты когда свои бабосы куда-нибудь вкладываешь, то сильно думаешь о пользе обществу? |
| 195. dozen, 25.08.2009 07:33 |
rGlory а ВР соотвественно последний представитель вида синтокантроп То есть, ВР -- и не homo sapience вовсе, а просто люди, обезьяны и ВР имели общего предка? Мне на этот счет статья о том, что за всеми пузырями стоял голдман сакс понравилась гораздо больше Статья... мне попалась на глаза книга с подзаголовком "как жадность и (что-то) уолстрита погубили tribe мечтателей(!) из J.P.Morgan". Мечтатели, блин! Строители коммунизма, блин -- счастье всем, даром, и пусть последний ниггер не уйдет обиженным! А, вот: Fool's Gold: How the Bold Dream of a Small Tribe at J.P. Morgan Was Corrupted by Wall Street Greed and Unleashed a Catastrophe (http://www.amazon.com/Fools-Gold-Corrupted-Unleashed-Catastrophe/dp/141659857X/ref=sr_1_1?ie=UTF8&s=books&qid=1251170805&sr=8-1) femidav Кстати, может кто-нибудь объяснить, есть ли обществу какая-либо польза от всех этих вторичных финансовых продуктов? Есть, конечно. Есть же польза от масла? А оно -- дериватив молока. Но не заменитель. Применение разное. А они (банкиры), пользуясь дерегулированием, раунд за раундом добавляли в масло Г, но продолжали продавать его как "сливочное масло". Теперь никто не знает, у кого в холодильнике масло, а у кого -- полная морозилка Г. |
| 196. Vladimir Rybinkin, 25.08.2009 09:34 |
Беглый просмотр показывает, что наруду прибавляется. Интересно, прибавилось ли чего-нить, кроме этого? ivanhoe цитата:Простите, Вы вообще слушаете, что Вам говорят? Мне абсолютно все равно, кто там поисковик, и чем он там "ограничен". Но ведь никаких моих "тридцати тысяч виртуальных страниц" на сервере нет. Понимаете - .NET.!!! И одной нет - они все НА КЛИ-ЕН-ТЕ генерятся! И командует этой генерацией ТОЖЕ сам клиент - сервер и знать ничего не знает: Данные я тебе дал? Дал. Математику дал? Дал. Пшел вон отсюда! Я русским языком спрашивал: что, поисковики теперь по КЛИЕНТСКИМ компам шарят (Y/N)?! цитата: цитата:Вдолбить?! НИ МАЛЕЙШИХ! цитата:А, ну это канешна... Про указатели ни сном, ни духом - им таперича "денотационную семантику" подавай... Там же легче косить под профессионала - вызубрил десятка два умных слов - и ты уже король. Только вот еще Гераклит сказал: "Если дурака учить - он не станет умным, просто он будет больше знать". Так что спасибо - пущай молодые "идут в ногу со временем": им, как известно, "везде у нас дорога". А меня - увольте. цитата:Дык и не нужно! Разве одного мало? Ведь если уж даже мой дохленький (он, представьте, тоже у меня один-одинешенек) код в состоянии разобрать, то уж Вашему-то это ваще как два пальца - пральна? цитата: zzf Ух ты, какой длинный пост... Как же удачно я врезал! Ладно, продолжим чуток - вдруг поможет? 1. Месье утверждает, что разработчики IE3 (на самом деле IE5) плевать хотели на стандарты (Y/N)? 2. А сам-то месье знает, что там за "стандарты"? Какие-нибудь "радиусы кривизны", которые определяют, дозволено ли броузеру данный скрипт выполнять, или его нужно обязательно обматерить, или скинуть ответственность за запуск на юзера (Y/N)? 3. Месье невнимателен: информация уже приводилась. 4. Нет, не "Ajax Generating Script", а именно "Ajax Processing Software". 5. Нет, я не только не "начинаю активно править его руками", но и генерю крайне редко. На остальное я уже отвечал - месье вновь невнимателен. 6. Да, и это в том числе. 7. Нет, я вовсе не "переходил на личности" - я хотел высказать правило для любого человека Вашего уровня на языке, понятном этому уровню. Но это не одобряется Правилами. Лично Вы мне безразличны, и вправе делать все, что Вам заблагорассудится. 8. Ваши домыслы насчет "вариантов" мне также неинтересны - я уже не раз рассказывал, что это, и для чего - месье опять невнимателен. 9. Я умею думать чем угодно - для Вас, месье, хватит любого места. В частности - спиной. Слышали историю про Менделеева - что ему таблица во сне приснилась? Со мной подобное происходило десятки раз. 10. Мне абсолютно до лампочки, убедил ли я Вас в чем-то, разубедил ли... 11. В качестве аргумента я ему "подсовываю" встроенные функции JS. Список я приводил (да и тексты лежат в трех экземплярах) - месье, как всегда, невнимателен. 12. Я полагаю, что знать "что там насчёт Employees и Persons" Вам лично еще рановато. И мне даже не интересно, прав ли я в этом предположении. 13. Мне также совершенно безразлично, смеетесь ли Вы, плачете ли... 14. Я все давно понял, и даже Вам об этом сообщал - месье нев... см. выше. 15. Нет, "генерирующие скрипты через e-mail рассылать" вовсе не нужно - месье... см. выше. 16. Вы также вправе считать "снами", "определениями", "чёткими описаниями" и т.д. все, что Вам угодно. 17. Даже если ссылки действительно "были выше много раз" - смиренно прошу повторить, указав специально для меня: "Вот она"! 18. Еще раз спасибо, папаша. 19. И список решенных/нерешенных задач типа TSPLIB, небось, имеется? 20. Я рад, что Вы усвоили, что если "Доказываешь полиномность алгоритма для её решения - автомачически доказываешь его полиномность для всех NP". Но, может быть, не стоит орать об этом на весь Инет? Как Вы полагаете? 21. А что, "вояжер" разве уже не NP? Или для месье его сложность смехотворно мала по сравнению с ЭТОЙ задачей? P.S. Учитывая присущую месье невнимательность, осмелюсь заметить, что некоторые пункты содержат вопросы к месье. Соблаговолит ли месье ответить хотя бы на часть из них? Или Вы мадам? В таком случае, приношу искренние извинения. Надеюсь все же, что недюжинный ум ме... ма... сможет уловить смысл сказанного даже в столь искаженной формулировке. dozen цитата:Зато приближенных навалом. Появились еще до твоего рождения. цитата:Да кто бы сомневался? Я тыщу лет знаю, что тебе и сотня страниц не поможет. Да и в этой ветке уже не раз говорил. цитата:Дык ИГНОРИРУЙ, лапочка! sip Коротко: 1. Никаких "общепринятых правил" не существует. 2. "Поддержание в актуальном состоянии" - проблемы клиента: пущай хоть на F5 надавит. Серверу-то какое дело - мож, он спать пошел? 3. Не нужно делать фетиш ни из клиента, ни из сервера: где удобнее - там и считаем. 4. Покупать клиенту "современный" комп вместо "убогого" также не следует. 5. Нет, это не "тупиковый путь" - просто клиент поменьше будет "сачковать" - в чем же тупик? Сервер лишь спасибо скажет - ему, как правило, и без клиента есть, чем заняться. P.S. zzf Простите великодушно, но я настолько был ошарашен красотой неизвестной мне NP-задачи, что рискнул-таки взглянуть на нее. Склепал быстренько на базе "комми" программку, взял тестовое "множество" на 1000 узлов. Глянул на него - и ужаснулся: да разве ж по моим мозгам такое чудовище? Разрезал его пополам, потом еще пополам, еще... Хотел и 125 элементов порезать, но стыдно стало - остановился. Образовалось у меня, таким образом, 15 тестовых задач. Запускаю (зажмурившись) самую маленькую, и... как заорет на меня программа! Ты чо, чувак, офонарел?! Ну подумай своей дурной башкой - там же сумма НЕЧЕТНАЯ - не видишь, что ли?! И ты решил, что я считать тебе эту хрень буду?! Щаз! Ищи другую дуру! Я, конечно, в диком расстройстве - 8 тестовых задач из 15 как корова языком слизнула. Да и программа послала - обидно. К тому же - заслуженно: вдвойне обидно. Но делать нечего: запускаю оставшееся, и... Да что же ты, козел старый, издеваться надо мной вздумал?! Ты чо, не видишь - я КРУТАЯ, мне NP подавай! А ты чо подсунул?! На все про все 0 целых хрен десятых секунды, да еще на твоем гребаном доисторическом процессоре! Не успеешь даже толком на все элементы посмотреть! А НУ ГОНИ НАСТОЯЩИЕ ЗАДАЧИ!!! Я перепужался до смерти - любушка, голубушка, потерпи чуток - ща я в Инет сбегаю, там специалисты, они там тебе таких задач надают - только держись! Стыдно, конечно, но что делать - уже алгоритм первичного разбрасывания по кучам все и решил. И алгоритм-то позорный: буквально первое, что в голову пришло, как только задачу увидал - еще там, выше по ветке, где я изумлялся. Вываливаешь всю эту кучу на одну чашку весов, затем кидаешь по очереди самый тяжелый "камень" на другую, пока не перевесит - и начинаешь "вышибать" оттуда камни (начиная с самого легкого) камнями с другой чашки (начиная с самого тяжелого). А то и вышибать не приходится - "разновесы" перебросились - и стрелка весов стоит, как вкопанная. Так что... не могу я найти тестов для моей ненаглядной - не получается, хоть ты тресни! И вот я здесь - с протянутой рукой... |
| 197. штышпре, 25.08.2009 13:17 |
ivanhoe У меня вот к работе отношение такое: работа нужна чтобы отдыхать от семейной жизни. Соответственно, семейная жизнь нужна чтобы отдыхать от работы. Таким образом, моя жизнь практически полностью состоит из разнообразного отдыха. :> Воистину, ты познал Дао. ... кстати, в таком разрезе становится лучше понятен секрет успеха тем ВР. :] |
| 198. jooher, 25.08.2009 14:34 |
штышпре становится лучше понятен секрет успеха тем ВР я тут прошелся по темам ВР. схема всегда одна: на столе стоит радиоприемник передающий полное собрание сочинений Е.Петросяна, вокруг него сидят несколько взрослых людей, которые с умным видом учат радиоприемник разумному, доброму, вечному. При этом конечно происходит общение между самими обсуждающими, на редкость доброжелательное такое, бесконфликтное, ненапряжное. Только вот обращения к радиоприемнику на "ты" или на "Вы" как-то странно смотрятся. Вообще наверно темы ВР надо автоматом при создании в флейм перемещать. |
| 199. sip, 25.08.2009 14:40 |
Vladimir Rybinkin 2. "Поддержание в актуальном состоянии" - проблемы клиента: пущай хоть на F5 надавит. Такой подход с F5 неплох для случая, когда данные клиенты только читают. Если они их конкурентно модифицируют, то ситуация иная. Послали на K1(клиент#1) пакет посчитать, пока он пилил, данные на которых этот пакет базировался уже изменены другим клиентом. Теперь неактуальные данные на K1 это уже проблема сервера, принять назад результаты расчёта он уже не может. А теперь представь, что на клиенте не просто тупой расчёт, а ещё и пользователь на 50 вопросов ответил, а его радостно сервер посылает 3. Не нужно делать фетиш ни из клиента, ни из сервера: где удобнее - там и считаем. Это плохой ответ. Удобнее вообще-то там, где быстрее будет получен конечный результат. А это динамическая вещь, зависит от текущей загрузки сервера, толщины канала, вычислительной мощности клиента. Плюс ещё и дизайн приложения будет сложней, так как нужно закладывать возможность считать одни и те же вещи как на сервере, так и на клиенте. 5. Нет, это не "тупиковый путь" - просто клиент поменьше будет "сачковать" - в чем же тупик? Я не вижу простого пути, как создать динамически масштабируемое приложение. Т.е. есть свободные ресурсы на сервере, считаем на нём, нет - считаем на клиенте. А если серверная и клиентская части вообще на разных языках/платформах реализованы ? Явно проще тупо нарастить серверную часть и вообще на клиенте ничего не считать, а только визуализировать результат. Хотя вообще-то это и был мой вопрос, может есть красивый способ делить стадии расчётов между сервером и клиентом. |
| 200. штышпре, 25.08.2009 15:12 |
jooher Ну, петросян-не петросян, по мне так более встречу рационального с иррациональным напоминает. Как тут уже отмечали, у Владимира есть свойство пренебрежительно относиться к чужому опыту, и это вполне понятно, т.к. по восприятию и, соответственно, собственной аргументации он тщательно дополняет множество мыслящих рационально людей до полного, оставаясь для недоумевающего большинства иррационален и непознаваем. Доказать ему что-либо нельзя, увы, он не в этом мире. Так что эти разборки в духе "--У южной стены! --Кто? --Тахойцы! --Где? --У южной стены! --Кто? ..." могут продолжаться бесконечно, правда с различным набором и детализацией муссируемых вопросов. Нет, если ВР не читать, и фильтровать ругань, вполне годные темы получаются. А во флейме это не покатит, контингент не тот. |
| 201. ivanhoe, 25.08.2009 15:31 |
Vladimir Rybinkin цитата:Я очень внимательно читаю что мне пишут. Напоминаю, что речь шла о том, будут ли поисковики индексировать ваши тысячи и миллионы виртуальных страниц. Именнно потому что они генерятся на клиенте, а возможности любого поисковика как клиента крайне ограничены, он, поисковик, не будет их индексировать, т.е. проще, говоря, поисковые системы искать в ваших виртуальных страницах не будут. цитата:Ну это уж Вам решать, хозяин, как говорится, барин. Если содержание представляет собой дерьмо и нет никакого желания, чтобы его индексировал гугл, то можно это содержание отдавать в виде нагромождения JS и виртуальных страниц. Если содержание дерьмом не является, но, напротив, содержит полезную информацию, то поисковикам надо отдавать его в виде обычного HTML. цитата:В упоминаемом dozen GWT eval используется. И, как это ни странно, но gwt (включая всякие там ext-gwt) мой браузер как раз кушает. |
| 202. dinozaur, 25.08.2009 16:21 |
Vladimir Rybinkin цитата:За такие безответственные высказывания надо вешать на ближайшем суку. И чтобы аудитория не пребывала во тьме - ключевые слова для поиска: "децибел", "непер". |
| 203. dozen, 25.08.2009 16:27 |
sip Такой подход с F5 неплох для случая, когда данные клиенты только читают. Ты эта... делай скидку на то, что ВР о подобных проблемах впервые слышит (но уже полез консультировать). Глобальных подходов как было, так и осталось два -- оптимистичные и пессимистичные локи. И то, и другое делается на веб, но пессимистичные -- сложнее. Выбор зависит от природы приложения -- где-то важнее предотвратить конкурентную модификацию еще до того, как она начилась, а где-то такое событие -- редкость, и оптимистичные локи вполне сойдут. Ну, есть еще copy-on-write, где, начав с разделяемых данных, каждая модификация создает версию данных для данного юзера. В частности, такая система использовалась в одной из систем которую я делал, для личных настроек. Они грузились с общей таблицы как defaults, но если юзер что-то менял, то создавалась приватная запись. Я не вижу простого пути, как создать динамически масштабируемое приложение. Т.е. есть свободные ресурсы на сервере, считаем на нём, нет - считаем на клиенте. Я лично не знаю никого, кто так делает. Слишком много геморроя. Цена разработки (и тестирования с поддержкой) такого приложения будет, наверное, в разы больше, чем (дешевое нынче) горизонтальное масштабирование. Для которого, кстати, уже давно наработаны и методы, и тулы. |
| 204. jooher, 25.08.2009 16:30 |
штышпре Как тут уже отмечали, у Владимира есть свойство пренебрежительно относиться к чужому опыту Удивляет как раз не Владимир - у него-то позиция четкая и последовательная. Удивляет наивная настойчивость людей, пытающихся что-то ему объяснить. Ведь совершенно очевидно, что никакие цитирования, никакие объяснения и никакие вопросы в данном случае не работают. Потоки сознания ВР самоценны и объективны, их можно использовать как фон, можно как-то их комментировать, но пытаться с ними спорить - это все равно что ругаться с радиоприемником или с каким-нибудь спамогенератором. |
| 205. dozen, 25.08.2009 16:36 |
jooher Удивляет наивная настойчивость людей, пытающихся что-то ему объяснить. Ему лично уже ничего не объясняют, даже если это выглядит так. Просто его ... мгм... спорные утверждения должны быть опровергнуты хотя бы ради молодых, читающего ветку. Да и ресурс forum.ixbt.com превратился бы в рассадник мифов о программировании, если фантазии ВР оставлять без ответа. |
| 206. ivanhoe, 25.08.2009 17:05 |
dozen, jooher Справедливости ради, убедить Владимира все-таки можно. По крайней мере пару случаев припомнить могу :>. А мне как раз семейные обстоятельста позволяют невозбранно почесать языком, т.к. семейство находится далеко и на море. Еще неделю осталось такого счастья. P.S. Сегодня кстати наткнулся на забавный проект http://yquem.inria.fr/pipermail/jocaml-list/2009-July/000115.html на OCaml, как раз на тему распределенных вычислений на клиенте. |
| 207. jooher, 25.08.2009 17:52 |
ivanhoe У меня к Вам персональная просьба. Вы один из избранных, чьи посты ВР читает и даже что-то отвечает. Не могли бы Вы попросить его выложить одним архивом весь его проект в том виде как он работает у него на ИЕ3 ? Я хотел бы попробовать привести его к современным условиям и посмотреть что же там собсно происходит. Вдруг за психической неадекватностью кроется сумасшедший гений вселенского масштаба? Мало ли. |
| 208. dozen, 25.08.2009 18:39 |
jooher Не могли бы Вы попросить его выложить одним архивом весь его проект в том виде как он работает у него на ИЕ3 ? Во всех предыдущих ветках подобные попытки с презрением отвергались Мастером. |
| 209. ivanhoe, 25.08.2009 20:34 |
jooher Спасибо, конечно, за оказанное высокое доверие, но роль посредника не для меня. |
| 210. sip, 26.08.2009 01:19 |
ivanhoe Сегодня кстати наткнулся на забавный проект Google Native Client меня очень порадовал, отличная и очевидная идея, надеюсь они действительно смогут сделать это безопасным |
| 211. ivanhoe, 26.08.2009 02:35 |
sip цитата:Безопасным сделать можно - с точностью до дыр в процессорах. Но выбор сендбоксинга x86 меня как-то удивил, странноватый такой велосипед... в эпоху JAVA/.NET/ActionScript/etc. Это, конечно, большое достоинство - заставить пользователей альтернативных архитектур почуйствовать себя недочеловеками, но достоинство, по-моему, единственное. Правда там еще можно будет запустить СИНТ, с всеми его меню и палитрами! |
| 212. zzf, 26.08.2009 03:41 |
Vladimir Rybinkin: цитата:Нет, такого я не утверждал. И даже наоборот — я думаю они очень сильно старались. Но, видимо, всё равно "не шмагли". Про ACID слышал? Вот запусти у себя на своём пятом ИЕ хотя бы ACID2 и полюбуйся на кашу. Повторяю специально для тебя, дружок: Если твой древний IE может выполнять кривенький нестандартный javascript, то это не значит, что браузеры более поздних версий или других производителей, придерживающиеся стандартов более строго, должны делать то же самое. Так что, правь свои недоподелки. От производителей браузеров помощи не дождёмся. цитата:Чего-то слышал. В отличии от одного крупного алгоритмиста. цитата:Ну а если нет, то к чему был следующий пустозвон: цитата: цитата:Как мило ты сливаешь, дружок. цитата:Если то был ответ на вопрос "Так о чём там тесты?", то тесты с треском ПРОВАЛЕНЫ ещё до запуска, т.к. к инструментарию как бы положена документация (её нет). Также, отсутствуют примеры использования. Вернее, "пример" есть, а инструментарий отсутствует. То есть инструментарий — javascript. цитата:Ну, знаешь ли! Такого себе не позволял даже Менделеев во сне! цитата:Опять ЛОЖЬ. Для чего чекбоксы и выпадающие списки в сгенерированных руками страницами ты не рассказывал. цитата:Ну тут ты тоже лоханулся. Менделееву эти таблицы приснились первому. Так что, ты снова в цитата:Стало быть, аргументы против высказывания о том, что сказанная тобой фраза "я посылал работающее решение" является ЛОЖЬЮ закончились? То есть, она (фраза), таки, является ЛОЖЬЮ? цитата:Приводил, аха: eval(y+"="+r+y) Только в качесте аргумента тут не "встроенные функции JS", а твои недоподелки. И кто знает, что там такое "r"? цитата:Дружок, ты опять подслил. А всё-таки, зачем Ajax'у Employees и Persons? Просто пословоблудил, признайся? цитата:Как же они попадут к клиенту, чиорт побьери! Не через сервер и не е-мэйлом... Сдаюсь! Какой правильный ответ? А! Я понял! Ты их руками прямо у клиента типать будешь? А чё, тоже вариант! цитата:Баш на баш! цитата:Дык я про это же! Собственно, поэтому и не пойму, зачем ты об этом орёшь на весь инет. |
| 213. femidav, 26.08.2009 04:58 |
zzf Так что, правь свои недоподелки Править не надо, надо взять jQuery и не тратить время на ерунду. Хотя для ВР такой подход конечно абсурден... |
| 214. sip, 26.08.2009 05:07 |
ivanhoe Это, конечно, большое достоинство - заставить пользователей альтернативных архитектур почуйствовать себя недочеловеками, но достоинство, по-моему, единственное. Не совсем. Во первых, они говорят о поддержке x86 и ARM. Во вторых, доступны SSEx и OpenGL. В третьих, не исключена поддержка LLVM. И если действительно что-то на клиенте активно "считать", то это очень даже вариант, хотя конечно и не замена для Java, Silverlight, ... А свобода выбора - это всегда очень хорошо |
| 215. dozen, 26.08.2009 05:10 |
ivanhoe Но выбор сендбоксинга x86 меня как-то удивил, странноватый такой велосипед... Дык это (более) портабельный ActiveX. И делается с той же целью. И, надеюсь, судьба его будет примерно такой же -- маргинальное использование. Добавление от 26.08.2009 05:17: sip |
| 216. sip, 26.08.2009 05:54 |
dozen Осталось придумать ситуацию, в которой миллионы строк оптимизированного кода заливаются на клиентскую машину как веб-страница. Ну и в чём проблема ? Они же не текстом заливаются |
| 217. dozen, 26.08.2009 06:26 |
sip Ну и в чём проблема ? Они же не текстом заливаются Например декодер видео потока, архивация, криптография, rule engine какая-нибудь, 3d engine. И будет клиент загружен по самое не хочу. Проблема, разумеется, не в объеме, а в том, зачем, собственно делать приложение, требующее предельной оптимизации, веб-приложением? Видео-поток? Рожать целую архитектуру дыр ради того, с чем прекрасно справляются плагины для браузера? Зачем? (Кстати, в маки стали ставить железячные декодеры H.264. Давно напрашивалось. Софт не нужен.) Архивация? Как веб-приложение? Криптография? Чего именно криптуем? 100К потоков видео со спутниковых видеотелефонов? На машине каждого пользователя гугля? Rule-engine? Вопрос тот же, что и к криптографии. 3D? Оно грузит видеокарту, а не CPU. Не нужно свой негативный опыт с ActiveX возводить в абсолют. Мой? Оно, какбэ, универсально признано опасной технологией. В частности потому, что простого способа создать sandbox, как планирует гугль, нет. Это ван не SecurityManager в Java Applet -- выйдет какая-нибудь модификация от китайцев Индел Кора Дуба по доллару за коробку, навыпускают с нею дешевых нетбуков, а потом всех сразу отымеют -- потому что у них там какая-то инструкция имела интересный side-effect, через который и пролезли. Правильный путь -- это развитие JIT и исполнение в реальном sandbox. Но у гугля нет на это задела, а 20% времени и спермотоксикоза куда-то девать надо, вот и рожают уродцев. Как там, кстати, Google Wave уже перестали будущим коммуникаций обзывать? |
| 218. arsa, 26.08.2009 06:45 |
dozen по моему wave протокол очень даже ничего, наконец реальная замена smtp (плюс сворачивание IM и email в один протокол - по моему тоже хорошо). только боюсь все таки может у них не получиться сделать его популярным. тогда будем продолжать бороться со спамом... ну конечно насчет 20% времени правда, но по этому там важное значение придают анализу использования и прикрывают дохлые продукты своевременно. 20% решает с одной строны проблему скуки, с другой дает какие то уникальные разработки. в MS например другая стратегия по этому поводу - там такие вещи делают в ms research, в основном. |
| 219. sip, 26.08.2009 07:19 |
dozen Ты десктопным софтом вообще не пользуешься? Или у тебя весь десктопный софт managed? Просто появится возможность делать более мощные web приложения, не будет деления на web и desktop. А нативный x86 нужен как временная(а может и не совсем временная Rule-engine? Вопрос тот же, что и к криптографии. 3D? Оно грузит видеокарту, а не CPU. Ты когда-нибудь видел толстого клиента к корпоративной базе данных? Если видел, то к чему эти вопросы зачем то да это нужно на клиенте |
| 220. moderator-Kid, 26.08.2009 08:06 |
zzf Вы, эта,... не реагируйте с таким пылом пожалуйста. ВР ведь только того и надо. Не нужно этого. Берите пример с ivanhoe. |
| 221. arsa, 26.08.2009 08:12 |
sip скорость Mono на такой архитектуре ну например скорость python на N800 (который как раз ARM) вполне ничего. многие программы на нем и написаны. вопрос тормозов на самом деле действительно в библиотеках графики (2D и 3D) - и это дело в вебе постоянно пытаются решить, начиная с java апплетов, activex и J++ с его WFC, и кончая нынешней итерацией flash/silverlight/dhtml. соглашусь с dozen, что любые lock-in пускай остаются нишевыми (хотя конечно с silverlight/moonlight неплохо получается, в отличие от единственной нормальной реализации flash-а), а mainstream должен использовать стандарты и поддерживать разные его реализации. конечно нужно разделять типы приложений, например вполне было бы не плохо портировать Пикасу на этот Google Native Client - по моему идеально подошло бы. С другой строны, 99.9% бизнес приложений вполне обойдутся dhtml (это уже мой собственный опыт) |
| 222. dozen, 26.08.2009 08:17 |
sip Просто появится возможность делать более мощные web приложения, не будет деления на web и desktop. Ответь на вопрос -- зачем нужны "более мощные веб-приложения"? Я бы еще понял, если бы минусов не было, а так -- дыра во весь комп, да еще и не портируемая. И потом, у нас уже есть ActiveX, зачем нам еще одно такое же г? А нативный x86 нужен как временная(а может и не совсем временная ) подпорка для тех же Silverlight апплетов. Так он уже и так есть. В виде плагина. Чем плохо? Как думаешь, скорость Mono на такой архитектуре будет сопоставима с оптимизированным C++ бинарным кодом? Думаю, да, а что? В смысле, кто ж на нетбуке числодробилки гонять будет? А офисные прилады -- от плюсовых не отличить по скорости. По памяти -- отличить, но память дешевая. Ты когда-нибудь видел толстого клиента к корпоративной базе данных? Если видел, то к чему эти вопросы зачем то да это нужно на клиенте Хакал буквально сегодня. Зачем нужен нативный код там -- не понимаю ни разу. Оно 90% времени ждет ответов от разных систем. Основное преимущество веб-приложений -- автоматическое обновление, то есть снижение стоимости поддержки (ну, в теории; версии браузеров тут подкинули проблем, но ситуация исправляется). То есть вебом занимаются тогда, когда поддержка -- это большАя часть затрат. А когда нужна числодробилка, сдается мне (см. IMHO), структура затрат другая (железо -- дороже, затрат на оптимизацию -- в разы больше, вплоть до месяцов вылизывания одной функции). Соответсвенно, выкладывать такую числодробилку как веб-приложения смысла мало -- никто выигрыша и не заметит. |
| 223. sip, 26.08.2009 08:25 |
arsa С другой строны, 99.9% бизнес приложений вполне обойдутся dhtml (это уже мой собственный опыт) Меня всегда удивляют утверждения с 99.9%, но не забывай - это твой персональный опыт. Если ты делаешь такие утверждения, неплохо бы сразу огласить вкратце свой послужной список, а то иначе звучит как "а вы поезжайте в Киев и спросите, кем был Паниковский до революции". Такое впечатление, что мы живём в идеальном мире и проблемы legacy кода не существует вовсе. Добавление от 26.08.2009 08:57: dozen |
| 224. Vladimir Rybinkin, 26.08.2009 09:01 |
jooher цитата: цитата:В чем проблемы-то? Весь код там и лежит. SERGEY_BIG "Актуальная задача поиска и сортировки" решена, и я прям в той ветке говорил, что решение меня ПОЛНОСТЬЮ устраивает. Месье тоже невнимателен. Впрочем... поройтесь, ребятки, поройтесь. Даже если и ничего не откопаете - все равно не повредит. loyolla цитата:Ну и дурак! Впрочем, не всем же быть Кавендишами. Если он СОВСЕМ молодой - это печально. Сейчас-то ему еще ПРОСТО ЖИТЬ интересно, но если лет за пять не одумается - к тридцатнику повесится. Я не Нострадамус (или я уже говорил?), но здесь ошибиться сложно. Вон - Кен Томпсон - наскоко я знаю, тоже чуть не студентом себе зарплату на всю жизнь заработал. И... продолжал работать, как лошадь. Результат (через довольно много лет) мне довелось видеть - ПОТРЯСАЮЩИЙ... самец! Даже молодые бабы, глядя на него, явно в оргазм впадали. Джины потертые, рубаха навыпуск, бородища, взгляд... Вот он, счастливый человек! А этот мальчик (кстати, показателен сам термин!), подозреваю, вызывает скорее материнские слезы. Бабы, конечно, дуры, но чутье у них ФАНТАСТИЧЕСКОЕ! jooher цитата:Умница! Понятия не имею! Не знаю даже, что это такое и, главное, за каким хреном это нужно. dozen цитата:И слова-то правильные гутаришь - правда? И даже не представляешь, какая это ЧУШЬ СВИНЯЧЬЯ! Но я просто не знаю, как тебе это можно объяснить (да и не верю, что вообще можно). Вот ща я поеду к родителям на дачу из земли чего-то выковыривать - я это дело с детства ненавижу! А для них - наоборот: это и есть отдых. А глядя на них... rGlory цитата:А на кой, простите? На кой плодить новые сущности? Он прекрасно функционировал за тыщу лет до своего появления на свет. Синтаксис удобнее? Кому как. Большинству ваще по барабану. ivanhoe цитата: цитата:...рисуют и поддерживают свои несчастные пару-тройку десятков-сотен-тысяч страниц - и только. У меня же - СУБД. Если я пожелаю, чтобы меня кто-то там индексировал - ЛЮБУЮ часть ее узлов могу выложить в статику - тыщу лет как проверено и отлажено. А не пожелаю - пущай попробуют саму БД "индексировать". цитата:... мне уже осточертело повторять. цитата:Умница! А если код пишется генератором, то не ЭТОТ код, а как раз код ГЕНЕРАТОРА "по определению пишется для человека, в частности чтения его человеком". цитата:Правильно. Вот когда AJAX-овцы допрут, наконец, ЧТО они сделали... Вот тогда и кинетесь "рыскать по помойкам". Боюсь только, поздно уже будет. цитата:Дык об чем тогда разговор? До "каналов связи" мне, ессно, дела нет - мне нужна математика, способная САМОСТОЯТЕЛЬНО сгенерить и это дерьмо, и другое, а не бегать к мамке клянчить каждую копейку. цитата:Тьфу ты, Господи! Ну что мне теперь - ставить ее, изучать... Если Вы все умеете - скиньте любую из страниц этой ветки в аттач - и дело с концом! Нешто так трудно? Вона скоко я вам виртуальных страниц 3-го теста выложил - и не сосчитать! цитата:Я об чем и говорю. цитата:Я об чем и говорю. цитата: цитата:Да?! Я сроду там ничего интересного не видел. И чо же такого "интересного" Вы там умудрились найти? цитата: цитата:О-хо-хо, Ваня! Что тут скажешь? Детский сад... Я очень рад, что Вы участвуете в разговоре, но иногда... полное ощущение, что Вы просто самое большое и красивое во всем этом форест. цитата:Ну, и в SINT... стоп! Почему это непременно "неизменямых"?! Почему это непременно "символов"?! цитата: цитата:Кому? Копированию?! цитата:Ну и на здоровье! Пущай себе делает - копированию-то до этого какое дело? цитата:Ха-ха-ха! Это же КОД, батенька! Ща... Кто-то мне тут давеча пургу гнал про "неизменяемый код и переменные данные"... КТО, ПРОСТИТЕ?! Так, хорошо... И что же случилось с тех пор? цитата:Тихий ужас! У меня "реляционный" Синдбад тоже "кортежи" БД поэлементно (а не построчно, кстати цитата: цитата:И в чем проблемы? Какой такой алгоритм бить собрались? Уж не COPY ли хотите разметелить? А с чем останетесь? Не-а, Ваня, это "Вот как-то СОВСЕМ НЕ так". цитата: цитата:Вот и я - как разработчик СУБД. цитата: цитата:Умница! rGlory цитата:Именно это, дорогой, именно это! ivanhoe цитата:Браво, Ваня! Меня как раз и включили в соавторы бортовой ОС - до сих пор чо-то капает... цитата:Танков - не программировал, а "и пр." (летающее) - доводилось. цитата:Умница (частично): "товарищам", как правило, все равно, что там за "задачи и средства разработки", программы у них (если это возможно в принципе) всегда были "переносимы-масштабируемы-расширяемы и пр.", а все "переходы" занимают считанные дни. Юра Шпеер - яркий пример: свободно пишет для всего, что в принципе исполнять код может, и с некоторым усилием - для того, что в принципе исполнять код не может. rGlory цитата:Лапочка, дык то ж НАЧИНАЮЩЕМУ. |
| 225. SERGEY_BIG, 26.08.2009 10:23 |
Vladimir Rybinkin "Актуальная задача поиска и сортировки" решена, и я прям в той ветке говорил, что решение меня ПОЛНОСТЬЮ устраивает. Месье тоже невнимателен. Впрочем... поройтесь, ребятки, поройтесь. Даже если и ничего не откопаете - все равно не повредит. Как уже говорил выше, дискуссия с топикстартером закончена. Идёт прямая констатация фактов. На всякий случай зыкладываю ещё раз ссылку с релевантным названием страницы sortir.htm (http://www.2bit.ru/sortir.htm) и цитирую текст: "Готовая программа сортировки будет лежать здесь (http://www.2bit.ru/sortir.zip) , свои замечания (пожелания, благодарности, восторженные отзывы По ссылке - файл с программой отсутствует, из чего мной был сделан вывод, что программа ещё не готова. Так где же правда? |
| 226. zzf, 26.08.2009 10:56 |
femidav Править не надо, надо взять jQuery и не тратить время на ерунду. Или Dojo. Добавление от 26.08.2009 10:57: Vladimir Rybinkin |
| 227. evilbloodydemon, 26.08.2009 12:02 |
Vladimir Rybinkin Вот большинство сайтописателей... ...рисуют и поддерживают свои несчастные пару-тройку десятков-сотен-тысяч страниц - и только. У меня же - СУБД. ну так у них как бы тоже не хвост собачий. |
| 228. jooher, 26.08.2009 13:57 |
evilbloodydemon ну так у них как бы тоже не хвост собачий Слово "тоже" тут неуместно, потому как у ВР то как раз видимо этот хвост только и есть (http://www.2bit.ru) |
| 229. Vladimir Rybinkin, 26.08.2009 14:36 |
jooher цитата:А я ее не здесь и создавал. sip цитата: цитата:АБСОЛЮТНО та же самая! Представьте хотя бы такой вариант: пока один из клиентов модифицированные данные ПОСЫЛАЛ, другой (по более толстому каналу) его опередил. Это НЕ "проблема сервера", он все спокойно принять МОЖЕТ. А уж "радостно посылать"... Кто ж на такой сервер ходить-то будет? Вы, бедолага? цитата:А мне - ндравится!(с) Нет, это не мой ответ "плохой", это Ваш глупый. Допустим, на сервере ответ получен за одну миллисекунду. А на клиенте - страшно сказать - в 1000(!!!) раз дольше считаться будет! Так вот: лично я - потерплю. цитата:Это... шедевр! Без комментариев. цитата:Ну дык ПОЧИТАЙТЕ ВЕТКУ-ТО! цитата: цитата:Кому? Клиенту? Дык так все и делают. Ну, не ветку - так хотя бы ТЕМУ ветки читали? цитата: штышпре цитата:Конечно, понятно! Рустам иногда пробегает, но сюда не заглядывает, зараза. Kizub, Kirpa, ndemia, berserk и прочие ваще исчезли - откуда ж "чужому опыту" взяться? Или там "множеству мыслящих рационально людей"? А для "недоумевающего большинства" - оно, конечно... цитата:Дык уперед! Что ж вы, как стадо, ПО МОИМ веткам шляетесь? Получайте себе свои "вполне годные темы" - я что, запрещаю? ivanhoe цитата:Вот именно! Я и был просто В УЖАСЕ от того, что об этом вообще может "идти речь"! цитата:Слава те! Консенсус? цитата:Вот я и решаю: сочту нужным - будут индексировать, нет - пошли на... цитата: цитата:А не проще будет ВАЩЕ НЕ ОТДАВАТЬ? Как мыслишка? цитата:Первая здравая мысль за весь пост (пока, во всяком случае). цитата: цитата:Абсолютно ничего странного! Кушает он лишь то, что ему ПОЗВОЛЕНО кушать, чем его кормят с ложечки. А чтобы сам ненароком не скушал чего другого, ему все зубки-то и повыбивали. dinozaur цитата:Серьезно? А почему, собссно? Самостоятельно "вывести аудиторию из пребывания во тьме" способны? Али "ключевыми словами" будете отмахиваться? dozen цитата:О! Лет ...дцать назад мы здесь это обсуждали. Начинает и до народа кое-что доходить... цитата:Именно! Потому-то я ветку и завел... цитата:Пральна! Зачем же "геморрой, цена разработки (и тестирования с поддержкой)"? Для тебя вопрос цены ваще, я вижу, жутко болезненный - блокировка на уровне подсознания, видать... jooher цитата:Какая прелесть! Браво! Что ж сами-то не следуете столь чудным советам? dozen цитата: ivanhoe цитата:Вау! Спасибо, дорогой! jooher цитата:Надо же! Не думал, что это так заметно... В любом случае, это правда. цитата: dozen цитата:Точно! Как и в этой - прям не отличишь! ivanhoe цитата:Умница! У SINT все уровни (кроме аппаратного) и знать не знают, на чем они работают. zzf цитата:Понятно. Опускаем разработчиков, но другим способом. Очень правильно! цитата:Не, для меня не надо - я ни памятью, ни вниманием пока что не обижен. цитата:А вот как раз к тому редкому случаю, за который нужно яйца отрывать. цитата:Нет, не нужно - я предполагал все же, что хоть СВОЙ СОБСТВЕННЫЙ вопрос чел в состоянии помнить? Нет, то был ответ на вопрос: "Это чтоли?" цитата:Лапочка, наберите в поисковой строке: "В общем, понажимайте - думаю, там все прозрачно", и почитайте от слов "Некоторые пояснения" до этой фразы. цитата:Каюсь, лоханулся. То, что мне отнюдь не таблицы снились - это, видать... Так, ладно: вижу - не помогло. Вернее - не в ту сторону (чтобы заткнуться). Жаль. Ликбез же проводить на тему "Как же они попадут к клиенту, чиорт побьери" или "что там такое r" - много чести. Да и грамматические ошибки меня с детства раздражают, не говоря уже об остальном. Бай! femidav цитата: dozen цитата: цитата: цитата:Хм. А ведь иногда и умные мысли говорить могешь... Или слышал от кого? |
| 230. sip, 26.08.2009 15:06 |
Vladimir Rybinkin он все спокойно принять МОЖЕТ. И что он с кривой фигней будет делать? Ты если начал фразу, так заканчивай внятно, тут телепатов нет. Так вот: лично я - потерплю. Всяческих успехов тебе в этом нелегком деле Кому? Клиенту? Дык так все и делают. Ну, не ветку - так хотя бы ТЕМУ ветки читали? Ты что думаешь, одного тебя читать научили, гениальный ты наш Таких "красивых способов" миллиен! 0 < x < 100%, y = 1000; Вау! Сразу видно великого алгоритмиста в деле. Говоришь для чего-то летающего софт ваял |
| 231. jooher, 26.08.2009 15:24 |
sip Говоришь для чего-то летающего софт ваял Вот помнится, когда-то мы с Сережей Королевым для "Востока" систему управления полетом програмили... За это сообщение сказали спасибо: dinozaur |
| 232. dozen, 26.08.2009 17:50 |
sip Я же сказал, сотрётся разница между web и desktop. Ты же сам пишешь Основное преимущество веб-приложений -- автоматическое обновление, то есть снижение стоимости поддержки... Плюс не нужно мудохаться с каждой конкретно взятой рабочей станцией. А то Citrix сервер умирает от нагрузки, а 30 радостных 2-х и более гигагерцевых клиентских компа с него только экраны показывают. То есть, исполнение нативного кода в браузере имеет право на жизнь, если оно преследует две цели: - гарантировать исполнение последней версии приложения - разгрузить сервер Ну так разве ActiveX -- это не оно самое? (Его я и имел в виду под "плагином к браузеру"). Что касается защиты процесса уровня VMWare -- звучит feasible, но VMWare защищает на уровне предоставления целой виртуально OS. А у гугля защита на уровне инструкций процессора, а все API выше этого -- открыты. Сколько в тех API багов, через которые можно вломиться? Более 9000. Так что я пешком постою. Ну, и я считаю ориентацию на нативный код -- шагом назад. Примерно как писать ассемблерные вставки в С++ коде. |
| 233. jooher, 26.08.2009 18:54 |
dozen А то Citrix сервер умирает от нагрузки, а 30 радостных 2-х и более гигагерцевых клиентских компа с него только экраны показывают Этот naclgrid - какое он вообще отношение имеет к браузеру? Разве это не идеологический аналог bitTorrenta (с разницей, что тот объединяет дисковые и bandwidth ресурсы, а этот - вычислительные) ? Какой смысл вот в этом? : цитата:Почему бы просто не предлагать людям ставить себе службу - клиента, предоставляющего избытки процессорного времени в общий котел? [upd] ... ааа, пон... не о нем речь.... |
| 234. rGlory, 26.08.2009 18:54 |
Vladimir Rybinkin цитата:Ну так я об этом и говорю, на кой плодить скобочки и делать код нечитаемым, когда для этого есть соотвествующие операторы языка. И про оператор += Вы скромно умолчали, не так ли? цитата:В анналы, адназначна цитата:Большинству Владимиров Рыбинкиных? Я бы не стал экстраполировать Ваши взгляди на кого либо другого, тем более на большинство, поскольку Вы уникум. цитата:Ну да. А Вы кто в С/С++ простите? цитата:Изучать и использовать?!! Да не дай Бог! |
| 235. lvqcl, 26.08.2009 19:19 |
rGlory Чтобы и мне таблица Менделеева 10 раз снилась? Здоровье дороже. цитата: |
| 236. dozen, 26.08.2009 19:43 |
jooher Этот naclgrid - какое он вообще отношение имеет к браузеру? Разве это не идеологический аналог bitTorrenta (с разницей, что тот объединяет дисковые и bandwidth ресурсы, а этот - вычислительные) ? Я про http://code.google.com/p/nativeclient/ размусоливал. |
| 237. rGlory, 26.08.2009 19:48 |
lvqcl Боюсь даже представить, во что переоделся Леонардо, когда приснился Владимиру, да еще и 10 раз. |
| 238. jooher, 26.08.2009 20:54 |
про http://code.google.com/p/nativeclient/[/i] sip Спроси google зачем они это затеяли, и наверное про недостатки ActiveX они в курсе, как думаешь? А зачем они затеяли Хром? Наличие Мозиллы (и всего остального) как и наличие АктивХ для гугла не повод что-то не делать, а повод прийти, надавить репутацией и прибрать себе развитый рынок. Nativeclient это вообще похоже на подготовку почвы к внедрению, например, собственной оси. |
| 239. dozen, 26.08.2009 21:02 |
jooher а повод прийти, надавить репутацией c хромом, IMHO, они репутацию скорее потеряли... |
| 240. Витька, 26.08.2009 21:47 |
jooher Не могли бы Вы попросить его выложить одним архивом весь его проект в том виде как он работает у него на ИЕ3 ? По ссылке http://forum.ixbt.com/post.cgi?id=attach:26:39751:15:1 5 файлов: a.j b.j i.j index.htm a.h Это последний и единственный вариант, активный, и отягощённый данными. Оно работает, как один проект, в IE 5.50 (проверил). Только там надо догадаться, кликать по надписям, и буквам. Тормозит жутко. Не исключено, что там есть какая-то своя логика. |
| 241. Gipnoss, 27.08.2009 00:15 |
Витька Тормозит жутко Клиент заставлен, цель достигнута... |
| 242. sip, 27.08.2009 00:54 |
dozen Ну так разве ActiveX -- это не оно самое? (Его я и имел в виду под "плагином к браузеру"). Ну в общем да, только есть надежда, что будет более безопасным и с лучшей репутацией в целом. Как-то так: Google contends that NaCl's advanced code validation features and sandboxing make it significantly more secure than similar technologies, such as ActiveX. Плюс они соревнования устраивают на тему "поломать": http://code.google.com/contests/nativeclient-security/ |
| 243. dozen, 27.08.2009 04:05 |
sip Плюс они соревнования устраивают на тему "поломать": http://code.google.com/contests/nativeclient-security/ Ну, и соревнования -- это хорошо, но реальный взлом пойдет, когда оно будет в продакшене. Пока это "хорошие парни, знающие плохие слова" развлекаются... |
| 244. sip, 27.08.2009 04:24 |
dozen Поживём увидим, но всё-таки как-то ты очень негативно настроен |
| 245. Vladimir Rybinkin, 27.08.2009 10:24 |
All Попробую-ка я еще разок изложить проблему. Но вначале - небольшое вступление. Я обращаюсь главным образом к молодежи - школьникам, студентам. К той самой молодежи, которую здесь так ревностно "оберегают" от моего нехорошего влияния. Не верьте! У меня нет ни малейшего желания на вас как-то "влиять" (как раз наоборот), да и оберегают они вовсе не вас, а свою собственную задницу. Свой статус якобы программистов, якобы профессионалов. Это неправда: они вовсе не программируют, они ДЕНЬГИ ЗАРАБАТЫВАЮТ. Статус у них измеряется лишь расстоянием от кормушки, а хрустальная мечта всей жизни - получить корыто в свое личное распоряжение, чтобы не приходилось каждый раз прорываться к похлебке сквозь толпу таких же зверенышей. Однако "корпоративные интересы" заставляют их объединяться в стаи: пуще огня они боятся любой свежей мысли - даже не из своей "профессиональной" зоны - ибо каждая такая мысль есть риск вскрытия факта полного отсутствия оных в их собственных головах. На такие мысли они дружно набрасываются всей толпой. Существует множество индикаторов, позволяющих отличить эту породу от других (ведь даже они сами с легкостью это делают). Вот некоторые: 1. Для "подтверждения" своих... мыслей они тычут пальцем в мегатонные доки, которые они якобы изучили (или хотя бы читали). Например, в трехтомник Кнута. Однако в последнее время (видимо, нарвавшись пару раз на тех, кто этого самого Кнута все-таки читал) предпочитают ссылаться на некие абстрактные "учебники" или там "документацию". Профессионал же не позволяет себе подобного НИКОГДА - он просто не умеет этого делать. 2. Они трусливы: своего личного мнения они не имеют, и отождествляют себя с толпой, используя при этом "ключевые слова" типа "всех", "всегда" и т.п. 3. Они никогда не кусают "своих", даже за совсем уж неприличные глупости. Здесь есть, правда, два исключения: "паханам" это дозволено. Но быть паханом опасно: поверженного вожака с наслаждением разрывает на куски вся свора (второе исключение). 4. Основное внимание они обращают не на тему, а на автора (одно время мне было забавно наблюдать за всплесками интереса к нашему сайту). У автора выискиваются разные "козюлины" с тем, чтобы сказать: как может этот идиот, который даже [содержимое найденной козюлины] вообще что-то говорить о [название темы]. 5. Они используют слэнг, который (в отличие от слэнга профессионала) чрезвычайно неустойчив, как и колебания любой моды вообще. Помнится, меня чрезвычайно раздражало, когда хлынувшая в программирование вся эта толпа дружно начала чего-то там "юзать". Теперь это уже неприлично (подумаешь, какой-то несчастный класс) - теперь модно скорее "либать". 6. Они мерно "разговаривают" между собой, тщательно изображая, что их круг интересов резко отличается от темы - спрашивается, чего они тогда тут делают? Время от времени какая-нить сопля имитирует демарш - дескать, ее трепетная душа не может более этого идиот[изм]а выносить. Не верьте - никуда она на фиг не денется. Правда, такой наглости, как у dozen, влепившего свою тему прямо посередине моей, я что-то не припомню. И т.д. - вы сами легко пополните этот перечень. Вот от таких "нахлебников" мне всегда хотелось ветку очистить, но, к сожалению, побеждают именно они: ветка закрывается. После битвы поле боя всегда достается мародерам. Тема этой ветки оказалась совсем уж новой, непривычной, неожиданной. Это доказывает не только повышенный "интерес" толпы, но и то, что ее высказывания носят характер "белого шума" - не натасканы еще, просто не понимают, о чем она, и вообще не знают, что нужно говорить (как "надувать щеки"), кого мочить, в каком сортире (с каким "релевантным названием") и т.п. Однако, к делу. Тема этой ветки - осознать, что "комп тоже человек". Не в том идиотском смысле, когда сервер выясняет версию броузера, чтобы понять, на каком языке с ним разговаривать - это как раз позор: пусть не эсперанто, но я почти не встречал в "загранке" кого-либо, знающего английский хуже меня (в России ситуация диаметрально противоположная). Ведь никому в голову не приходит, чтобы клиент начал выяснять язык сервера, чтобы поговорить - явная дискриминация по "половому" признаку. Тема ветки иная: "клиентоцентрическая система мира", т.е. клиент - один, а серверов - много. Вот, скажем, этот форум - он кто: клиент или сервер? Он данные юзерам ПРЕДОСТАВЛЯЕТ или, наоборот, их ПОЛУЧАЕТ? Вот представьте, приходит клиент на сервер: - Привет, чего приперся? - Да вот, понимаешь, ищу функцию одну... У тебя нет, случайно? - Есть, а как же! Держи. Мож, тебе еще и этих подкинуть - вон их у меня сколько? - Не, спасибо - это я уже у твоего соседа взял. - А данные тебе нужны какие? - А что у тебя есть по ЭТОЙ тематике? - Смотри... - Так... это есть, это тоже... О! Вот это давай! - С превеликим удовольствием! - Кстати, а тебе ничего моего не надо? - Не, это не совсем моя зона - к другим обращайся. - Ну, спасибо, дорогой! Пока! - Здрав буде, боярин! Вот в таком вот разрезе... |
| 246. Chippy2003, 27.08.2009 10:47 |
All требует контактную информацию Вашего дилера |
| 247. Vladimir Rybinkin, 27.08.2009 15:04 |
sip цитата: цитата:Спасибо, родной. Дополнительно - за то, что усвоил, что одна миллисекунда, умноженная на 1000 - это еще недостаточно "до пенсии". цитата:Нет, я так не думаю, но посты ваши упорно наталкивают меня именно на эту мысль. цитата:Неужто я так и написал?! Там должно быть "y = 100 ПРОЦЕНТОВ МИНУС x". Так - доступно? Ваял, ваял... jooher цитата:Нет, "Сережа Королев" программированием не занимался. Да и ракеты у нас разные были... Как там, кстати, насчет Я готов попробовать поправить ваш код, чтобы он работал в современных реалиях. У меня есть некоторый опыт по этой теме? Ась? Тише воды, ниже травы? То-то... rGlory цитата:Да... Это не просто дерево - это ЖЕЛЕЗНОЕ дерево... Изучайте ветку, родной - авось с какого-нить раза... цитата:Нет, окромя "глориеподобных". цитата:Отсчитайте от Вашего уровня хотя бы пять ступенек вверх. цитата:Господь с Вами, милый! Неужто я Вам SINT изучать предложу? Это я лишь про упомянутые Вами же правила говорил. Думал - безопасно, а тут сразу истерика... jooher цитата:О! Вот о чем нынче мысли "программистов"! Самое печальное - ПРОГРЕССИВНЫХ программистов, которые еще способны что-либо осознавать... Витька цитата:Во-первых, здрассьте! Во-вторых, не первый раз уж мне приходится Витьку благодарить. К сообщению приложены файлы: 1.rar, 7Кb |
| 248. dozen, 27.08.2009 16:02 |
Vladimir Rybinkin Тема ветки иная: "клиентоцентрическая система мира", т.е. клиент - один, а серверов - много. О! ВР набрел на идею mushup (http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29) ! Разрыв сокращается! А может даже -- страшно сказать -- UDDI (http://en.wikipedia.org/wiki/Universal_Description_Discovery_and_Integration) ?! цитата:Скромен и честен. |
| 249. zzf, 27.08.2009 16:11 |
Vladimir Rybinkin > rGlory > А Вы кто в С/С++ простите? Отсчитайте от Вашего уровня хотя бы пять ступенек вверх. Вот он, тест третий, "модернизированный" (см. аттач) - теперь лучше? Продукт по прежнему не запускается. Проверено в IE и Opera. Владимир, нам теперь каждый раз Витьку звать? Ты бы не экономил клавиатуру а? Дай файлам стандартные расширения, а то вместо того, чтобы интерпретировать 'a.h' kak веб-страницу, браузеры просто показывают его содержимое. |
| 250. dozen, 27.08.2009 17:39 |
Chippy2003 All требует контактную информацию Вашего дилера оно old school, оно водочкой, да без закусочки... |
| URL: | http://forum.ixbt.com/topic.cgi?id=26:39751 |