|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee, Тогда все так, и у вас наверняка есть прослойка, которая унифицирует доступ к данным. Которая, к примеру, объектную модель транслирует в sql или M команды. Вы просто выразились "везде заменять селекты на М команды", и я представили себе ужас этого ломания мозга, замены сотен и тясяч запросов с попутной на ходу сменой модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 17:21 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Блок А.Н.SergeyLee, Тогда все так, и у вас наверняка есть прослойка, которая унифицирует доступ к данным. Которая, к примеру, объектную модель транслирует в sql или M команды. Вы просто выразились "везде заменять селекты на М команды", и я представили себе ужас этого ломания мозга, замены сотен и тясяч запросов с попутной на ходу сменой модели. Сотен-тысяч нет. Да, веб-приложение написано по паттерну Model-View-Controller. И в классах моделей уже вызываем SQL команды к MySQL или запросы к бекенду, которые выполняет М рутины. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 17:27 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLeemisha_sharАбсолютно правильное поведение. Так какие еще проблемы? Не проблемы, а сомнения :) 1. GT.M (Cache) по сути shemeless (безсхемные тобишь), а мы для правильности передачи полей в запросах для верности ввели проверку их согласно структуре данных. Тоесть если в таблице users есть поле user_name, а в запросе кто-то неправильно напишет имя поля - user_mame (например). В Cache кажется есть что то типа словаря? Я сделал глобал в котором сохранил структуру данных: таблица-поля, и в М рутинах провожу проверку полей. 2. Второе сомнение родилось в спорах, что круче (быстрее, правильнее, удобнее) - вызывать в С++ коде отдельные операторы М или сразу рутину М? При этом основа спора была такова - в М-рутину передаются параметры в виде строки с разделителем, затем строка парсится и параметры дальше участвуют в М рутине, и М рутина возвращает результат в таком же формате - строка с разделителями. На формирование/парсинг параметров и формирование/парсинг результата уходит много времени. И поэтому вместо вызова М рутины делать вызовы отдельных операторов в С++ коде, при этом параметры и результаты не нужно формировать/парсить (из/в JSON). 1 MUMPS конечно безсхемная база. Использование Глобала в качестве схемы обычное решение. Можно правда схему поместить в программу но это хуже. 2. Сомнения абсолютно верные. В каждом конкретном случае надо применять свой подход. Если запрос требует простого обращения к глобалу в один , два оператора MUMPS то безусловно выгодней делать делать вызовы отдельных операторов в С++ а иначе если необходима сложная обработка типа фильтрации или любого прохода по глобалу выгодней писать программу на MUMPS и делать в ней разбор запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 17:29 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee1. GT.M (Cache) по сути shemeless (безсхемные тобишь) Вы зря ставите в этом вопросе знак равенства между каше и GT.M В каше как раз поддерживаются объектная и реляционная схема. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 17:39 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee... Постараюсь по другому подойти к вопросу. Есть работающая система (пусть web-приложение), использующее широко известный язык запросов SQL (увы, этому в основном учат в ВУЗах, и их в основном использовали последние годы), и некую СУБД на SQL. Вся логика построена на INSERT/UPDATE/SELECT. Теперь же нужно "перевести рельсы" с SQL на MUMPS. SQL это ЯМД, ориентированный на конкретную МД, на котором, впрочем, нельзя написать приложение БД. MUMPS ни на какую МД не ориентирован. SergeyLeeПри этом, конечно же не переписывать весь код работающей системы, а подменить вызовы INSERT/UPDATE/SELECT на операторы MUMPS. А чтение (поиск, индексы)? И потом, нужно стремиться к тому, что никакого кода не было у "работающей системы". SergeyLeeНо при переводе рельсов, приходиться использовать структуру реляционной БД, таблицы стали глобалами, и так далее. Еще раз повторю, что отношение (таблица) это элемент структуры РМД, а глобал - это не элемент структуры какой-либо МД. Таблицы не могут сами по себе стать глобалами. Не игнорируйте этапы, о которых я Вам написал. SergeyLeeРаньше SQL БД (MySQL) находилась на том же хосте, что и PHP-приложение, теперь же архитектура такова, что БД (GT.M) и PHP-приложение разнесены по разным хостам (для безопасности). Теперь фронтенд (PHP-приложение, любое приложение) работает с бекендом (и БД GT.M) посредством запросов/ответов через TCP соединение. И для УНИВЕРСАЛЬНОСТИ этих запросов/ответов (API), мы используем структуру БД (таблицы, поля, параметры таблиц и полей) для проверки приходящих запросов. Вы используете РСХОД для хранения "словаря данных" (базы метаданных)? Вы вынуждены это делать, раз не используете СУБД на стороне MUMPS. Но из этого следует,что Вы используете либо РМД, либо EAV. SergeyLeeВот тут и появились сомнения, что в целом мы неправильно используем идеи MUMPS, тем что ввели структуру БД. Не то слово. Назовите основную причину, по которой Вы не используете РСХОД. SergeyLeeНо так как приложение написанное на PHP, уже необходимо вводить в продакшн в течении месяца, и конечно же все как всегда боссы давят на скорость разработки, то мы пока не можем продумать правильную архитектуру PHP-приложения работающего с GT.M базой данных БЕЗ структуры данных, и наш PHP-шник незнаком с MUMPS/GT.M в полной мере, и всю логику строит полагаясь на MySQL. MGWSI (The M/Gateway Services Integrator) – интеграционный сервис, обеспечивающий взаимодействие GT.M с PHP http://gradvs1.mgateway.com/main/. SergeyLeeСкорее нам нужно понимание построения модели данных для MUMPS/GT.M, чтобы постепенно отказаться от SQL-ориентированной структуры БД. Соответствующие ссылки я Вам дал. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 19:46 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLeeИ что это за X.Magic? Ссылка есть на него? Вам это не нужно. Она ориентирована на корпоративные системы для сотен или тысяч пользователей, а не на web. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 19:59 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Бредятина, Чтение данных это запрос find, аналог SELECT, в котором я указываю какие поля получить, какие фильтры поиска применить и затем еще добавлю сортировку. Что такое РСХОД? Вы работали с MGWSI? Я - нет. Коллега - да, и у него не получилось. У меня может и получится, но это все равно не то что нам надо. У меня не таблицы становятся глобалами, правда я не знаю, что вы имеете здесь в виду, а глобал организован как колоночная структура данных: ^Database(table,id,field)=value, где table - имя таблицы, id - первичный ключ этой таблицы, field - поле и value - значение поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 20:24 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLeeЧтение данных это запрос find, аналог SELECT, в котором я указываю какие поля получить, какие фильтры поиска применить и затем еще добавлю сортировку. Немного уточню. Какие из каких таблиц какие поля получить... В котором я учитываю FK/PK, используемые для связывания таблиц... Это вряд ли получится. Но идея понятна. SergeyLeeЧто такое РСХОД? Вы все игнорируете)) Ваше дело. Реляционная система хранения и обработки данных. Например, MySQL. SergeyLeeВы работали с MGWSI? Я - нет. Коллега - да, и у него не получилось. У меня может и получится, но это все равно не то что нам надо. Тогда зачем Вы написали первые три предложения и половину четвертого в этом абзаце??? SergeyLeeУ меня не таблицы становятся глобалами, правда я не знаю, что вы имеете здесь в виду, а глобал организован как колоночная структура данных: ^Database(table,id,field)=value, где table - имя таблицы, id - первичный ключ этой таблицы, field - поле и value - значение поля. Понятно. Однако, (простой) ключ в записеориентированной РМД - это одно из полей, а идентификатор в объектно-ориентированной МД, элементы которой Вы используете, - это не одно из полей - как видите он находится вне остальных полей. А FK, судя по всему, Вы будете располагать среди полей, все-таки. Это плохой не симметричный подход. Но сойдет, конечно. Желаю творческих успехов в очень нелегком деле, которое Вы затеяли)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2013, 21:33 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee^Database(table,id,field)=value, где table - имя таблицы, id - первичный ключ этой таблицы, field - поле и value - значение поля.Привет из 80-х! Очень старые M-системы (e.g. DSM-11), действительно, быстрее работали, когда вся БД лежала в одном глобале. В современных системах это ровно наоборот. В большинстве случаев быстрее будет работать вариант: ^table(id,field)=value Почему? Потому что существуют внутренние структуры (т.н. глобальные векторы), ускоряющие доступ процесса к нескольким десяткам (а то и сотням) _различных_ глобалов. А вот с оптимизацией доступа к нескольким "подглобалам" одного и того же глобала всё гораздо хуже, особенно в GT.M. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 11:14 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Бредятина, Вы, несомненно, грамотный человек! Жаль, что к Вам никто не прислушивается. Не умеющий слушать, да не умеет говорить! Если у Вас есть труды (по тем вопросам, которые Вы постоянно затрагиваете на форуме), Крупные статьи, из которых можно почерпнуть гораздо больше, чем из Ваших обрывочных ответов (не хочется вникать в темы споров), и Вы готовы поделиться ими - то дайте пожалуйста ссылки, или сами файлы. Если Вы не хотите поделиться в открытую, то может мне на почту (в профиле). Думаю, что мне есть чему у Вас поучиться. Почему пишу здесь - может кто еще заинтересуется... Заранее благодарен, даже за отказ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 11:16 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
БредятинаНемного уточню. Какие из каких таблиц какие поля получить... В котором я учитываю FK/PK, используемые для связывания таблиц... Это вряд ли получится. Но идея понятна. Может я под словом "таблица" просто абстрагируюсь иногда от понятия "глобал" :) Извиняюсь за мой словарь. Помимо глобала данных в виде ^Database(table,id,field)=value, где table - это просто аналог таблицы в MySQL. :) Мне не хватает академических знаний по базам данных, да. И опять же все определения забываются, кроме тех, которым пользовался некоторое время. Как мне подсказали быстрее будет ^table(id,field), я так изначально и делал, но сделать один общий глобал было удобно для М рутин. Кроме глобала данных я добавил ключевые глобалы в виде ^Database(table_"I",keyfield,value,id). Вот такая простая идея. В будущем вырисуется более понятная картина. Проблема в том, что PHP-программист постоянно модернизирует структуру БД в своей MySQL. Новые таблицы, новые поля и прочее. Процесс идет. И никто не берет на себя ответственность за БД. У меня на это не хватало ни времени, ни знаний порой. :) У меня кошмар сколько задач на C++ и Python. А еще мы все задумали переписать систему на Erlang: сайт, шлюз, бекенд. Это (страшно) интересно. Но никто не знал, что будет в начале... БредятинаВы все игнорируете)) Ваше дело. Реляционная система хранения и обработки данных. Например, MySQL. Не игнорирую. Устаю(( И мозг фильтрует - важно/не важно. Плюс я привык к аббревиатурам на латинице. :) БредятинаТогда зачем Вы написали первые три предложения и половину четвертого в этом абзаце??? Ну наверное просто был поток сознания ;) БредятинаУ меня не таблицы становятся глобалами, правда я не знаю, что вы имеете здесь в виду, а глобал организован как колоночная структура данных: ^Database(table,id,field)=value, где table - имя таблицы, id - первичный ключ этой таблицы, field - поле и value - значение поля. О, вот я повторился :) БредятинаПонятно. Однако, (простой) ключ в записеориентированной РМД - это одно из полей, а идентификатор в объектно-ориентированной МД, элементы которой Вы используете, - это не одно из полей - как видите он находится вне остальных полей. А FK, судя по всему, Вы будете располагать среди полей, все-таки. Это плохой не симметричный подход. Но сойдет, конечно. Желаю творческих успехов в очень нелегком деле, которое Вы затеяли)) Гхм. Надо-надо почитать-почить книжку по базам данных. Но вечером читается только художественная :) Я чувствую интуитивно, что это плохой подход, да :) Но как его исправить - не знаю :( Все приходит со знаниями. Спасибо большое. :) А не подскажете какое то средство просмотра глобалей? Для GT.M. Возможно есть некое для любой MUMPS базы? Желательно конечно под Linux или может веб-интерфейс? А то я задумался сделать сайт на Erlang'е для этих целей и для целей изучения Erlang. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 14:17 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee , Почему бы не хранить тогда уж примерно как в Cache': ^table(object_id)=$ListBuild(field_1,field_2,...) ^schema(table,odrinal)=field_name ^table_indexes(index_name,field_1,....,field_n,object_id)=$ListBuild(add_field_1,add_field_2,...) [добавленные в индекс поля] ^schema_indexes(table,index_name,ordinal)=field_name Одно обращение к диску для поднятия $ListBuild() гораздо эффективнее чем поднимать каждое свойство по отдельности. Вот интесно а как вы собираетесь организозывать обработку запросов данных(по аналогии с SELECT SQL) к вашей БД? А JOIN? У вас будет строго определенный набор запросов - ни шагу вслево ни шагу вправо без правки исходного кода(добавления глобали индекса и создания функции выборки по индексу) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 15:38 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
sigmov SergeyLee , Почему бы не хранить тогда уж примерно как в Cache': ^table(object_id)=$ListBuild(field_1,field_2,...) ^schema(table,odrinal)=field_name ^table_indexes(index_name,field_1,....,field_n,object_id)=$ListBuild(add_field_1,add_field_2,...) [добавленные в индекс поля] ^schema_indexes(table,index_name,ordinal)=field_name Одно обращение к диску для поднятия $ListBuild() гораздо эффективнее чем поднимать каждое свойство по отдельности. Вот интесно а как вы собираетесь организозывать обработку запросов данных(по аналогии с SELECT SQL) к вашей БД? А JOIN? У вас будет строго определенный набор запросов - ни шагу вслево ни шагу вправо без правки исходного кода(добавления глобали индекса и создания функции выборки по индексу) ? Спасибо. Я подумаю как это сделать в GT.M. А что такое ordinal здесь? Думаю надо добавить к необходимому чтению книгу (доку) по Cache. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 17:41 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
sigmov SergeyLee , Вот интесно а как вы собираетесь организозывать обработку запросов данных(по аналогии с SELECT SQL) к вашей БД? А JOIN? У вас будет строго определенный набор запросов - ни шагу вслево ни шагу вправо без правки исходного кода(добавления глобали индекса и создания функции выборки по индексу) ? Да :( Хреново. Да. Но пока нет JOIN. Думаю как исправить это. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 17:56 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
sigmov SergeyLee , Вот интесно а как вы собираетесь организозывать обработку запросов данных(по аналогии с SELECT SQL) к вашей БД? А JOIN? У вас будет строго определенный набор запросов - ни шагу вслево ни шагу вправо без правки исходного кода(добавления глобали индекса и создания функции выборки по индексу) ? Хотя... Может неправильно ответил. Есть ^Database(table,id,field)=value, которое думаю привести или к нескольким ^table(id,field)=value, что примерно соответствует вашему примеру ^table(object_id)=$ListBuild(field_1,field_2,...) И есть индексные глобалы, сейчас это ^Database(tableI,index,value,id)="", или потом ^tableI(index,value,id)="", или по вашему примеру ^table_indexes(index_name,field_1,....,field_n,object_id)=$ListBuild(add_field_1,add_field_2,...) Правда я не пойму последний индексный глобал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 18:08 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLee, Хоть вы и говорите, что у вас все схвачено, у меня все равно мурашки по коже от того, что вы делаете. Если у вас задача реализуется в терминах sql, почему бы ее в них не реализовать? Пусть не в MySQL, если она не устраивает, пусть будет другая СУБД. Но делать то, что вы делаете без ОЧЕНЬ серьезных причин - стоит ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 18:38 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
AlexKBБредятина, Вы, несомненно, грамотный человек! Жаль, что к Вам никто не прислушивается. Не умеющий слушать, да не умеет говорить! Если у Вас есть труды (по тем вопросам, которые Вы постоянно затрагиваете на форуме), Крупные статьи, из которых можно почерпнуть гораздо больше, чем из Ваших обрывочных ответов (не хочется вникать в темы споров), и Вы готовы поделиться ими - то дайте пожалуйста ссылки, или сами файлы. Если Вы не хотите поделиться в открытую, то может мне на почту (в профиле). Думаю, что мне есть чему у Вас поучиться. Почему пишу здесь - может кто еще заинтересуется... Заранее благодарен, даже за отказ. Не могу согласиться про обрывочные ответы. Пример: http://www.sql.ru/forum/actualthread.aspx?tid=973198 И многие другие темы. Скрупулезно разбирали проблему в нескольких полезных диалогах . Конечно, много провокаций и обид, но форма диалога наиболее удачна (см., например, А.Реньи "Письма о вероятности"). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 21:37 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Блок А.Н.SergeyLee, Хоть вы и говорите, что у вас все схвачено, у меня все равно мурашки по коже от того, что вы делаете. Если у вас задача реализуется в терминах sql, почему бы ее в них не реализовать? Пусть не в MySQL, если она не устраивает, пусть будет другая СУБД. Но делать то, что вы делаете без ОЧЕНЬ серьезных причин - стоит ли? Протекция NoSQL была со стороны начальства, в количестве 2 человек. Обещаю поднять вопрос базы данных, когда будем проводить реинжиниринг в сторону Erlang. А это уже скоро. Структура базы данных постоянно меняется, задача непостоянна, ужас :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 21:43 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLeeКак мне подсказали быстрее будет ^table(id,field), я так изначально и делал, но ... Важнее то, что Вы здесь привели технические (не изменяемые) метаданные. А где же содержательные??? Где нормальное название типа сущности, идентификатором которого является набор символов "table"? И его описание? Где нормальное название свойства типа сущности, идентификатором которого является набор символов "field"? И его описание? Поэтому я и написал 13970413 SergeyLeeПроблема в том, что PHP-программист постоянно модернизирует структуру БД в своей MySQL. Новые таблицы, новые поля и прочее. Процесс идет. И никто не берет на себя ответственность за БД. :) SergeyLeeЯ чувствую интуитивно, что это плохой подход, да :) Но как его исправить - не знаю :( Все приходит со знаниями. 13545785 SergeyLeeА не подскажете какое то средство просмотра глобалей? Для GT.M. Возможно есть некое для любой MUMPS базы? Желательно конечно под Linux или может веб-интерфейс? А то я задумался сделать сайт на Erlang'е для этих целей и для целей изучения Erlang. А зачем Вам глобали? Чтобы разрушить целостность БД? Или чтобы вручную ее обеспечить?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 21:55 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2013, 23:46 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
SergeyLeeбудем проводить реинжиниринг в сторону Erlang. А это уже скоро. А может быть Вам проконсультироваться сразу вот здесь ? У ребят какой-то проект автомобильный на всю Украину на Erlang+Cache - и как раз на глобалах. Близкая тема мне кажется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 00:52 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Шваров ЕвгенийSergeyLeeбудем проводить реинжиниринг в сторону Erlang. А это уже скоро. А может быть Вам проконсультироваться сразу вот здесь ? У ребят какой-то проект автомобильный на всю Украину на Erlang+Cache - и как раз на глобалах. Близкая тема мне кажется. Собственно проект . Высокая нагруженность, глобалы - ваш случай? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 01:04 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
БредятинаНе могу согласиться про обрывочные ответы. Пример: http://www.sql.ru/forum/actualthread.aspx?tid=973198 И многие другие темы. Скрупулезно разбирали проблему в нескольких полезных диалогах . Конечно, много провокаций и обид, но форма диалога наиболее удачна (см., например, А.Реньи "Письма о вероятности"). Нет, я с Вами не согласен... Все равно, спасибо за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 10:40 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Бредятина, БредятинаКонечно, много провокаций и обид, но форма диалога наиболее удачна (см., например, А.Реньи "Письма о вероятности"). О, да Вы воспоминания молодости прямо-таки всколыхнули. Альфред Реньи, венгерский математик, диалоги лектора со студентом... Замечательная книга, Вы правы. 1971 года издания, кажется. Но, тем не менее, Реньи это все-таки ОПУБЛИКОВАЛ. А Вы почему не публикуете? Вот я, например, изначально вырос на классической книге Дейта, а у Вас в диалогах, помню, встречал утверждение, что это книга вредна (не придирайтесь, за точность цитаты не ручаюсь, сейчас искать неохота, но точно помню, что посыл по сути был именно таков). Раз Вы делаете такие (и не только это) смелые утверждения, наверняка, что-то имеете за душой, что сказать людям. Так увековечьте же! Одних диалогов в форуме недостаточно. Ибо "разговоры занимают промежуточное положение между мыслью и делом, и зачастую заменяют и то, и другое" - американский какой-то писатель это сказал, точно не помню, то ли Спенсер, то ли Эмерсон. Ну разве не приятно Вам будет зайти, к примеру, в большой книжный магазин на Ленинском, и там на полке увидеть стоящей свою книгу? Это ли не драйв? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:13 |
|
Все разнообразие и примеры MUMPS "баз данных"
|
|||
---|---|---|---|
#18+
Кстати, есть еще прекрасная техническая трилогия в форме диалогов. Айсберг "Радио? Это очень просто", "Телевидение? Это очень просто", "Транзистор? Это очень просто". Ну это было еще в 60-е годы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2013, 11:16 |
|
|
start [/forum/topic.php?fid=39&msg=38165561&tid=1557213]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 507ms |
0 / 0 |