Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
PE>>>Распространяется обычно бинарник и tlb в одном флаконе. все генерируется автоматом. V>>Да, автоматом — это круто.. V>>Но — не нужно если этот самый *.h уже есть, как и все исходники.. PE>Для какого языка ?
На котором предыдущий оратор вставил в свою программу проверку орфографии..
PE>>>По этой причине ZLib распространяется с необходимыми файлами для ВСЕХ языков. PE>>>Для питона и перла она продублирована на 100% PE>>>Ты можешь дать гарантию, что тот, кто писал ZLib для питона, PE>>>не ошибся ни разу или совершил теже ошибки, что есть в варианте С/С++ ? PE>>>И не только ZLib. V>>ZLib — один на всех.. V>>на языках только врапперы.. V>>Или ты серъёзно думаешь, что кто то запускает такие долгоиграющие вещи, как сжатие данных на интерпретируемых языках.. V>>Ты глубоко заблуждаешься..
PE>Смотри ниже — один из файликов.
Смотрю..
Вижу:
упаковка происходит при помощи wrapper-а struct
его использование своидтся к следуюбщему:
И того — на каждую упаковку/распаковку — одна строчка..
+ строчка для импорта враппера
PE>Такое количесвто кода никому не надо.
Смотрим что делает остальная часть кода:
class PyZipFile(ZipFile):
"""Class to create ZIP archives with Python library files and packages."""
Ага... ты мне кинул утилиту, которая каким то образом бешает по файлам пректа pyton-а
собирает все необходимые для него и упаковывает в один zip-файл..
И вся эта избыточная по твоему часть кода занимается только этим..
Т.е. не использованием zlib, а сугубо своими личными делами, типа заголовков пакетов (питоновских) и т.д.
Ну и в чём проблема?
PE>Где гарантии, что ошибок нет ?
В чём? В работе со структурой проекта питон?
Или в zlib, который весь в struct, и ошибиться можно только,
подав ему неправильные аргументы, после чего он вернёт код ошибки..
PE>>>В QT для Pascal чтобы не дублировать код, пришлось писать РУКАМИ врапперы, которые просто перенаправляют вызовы в QT для C/C++. V>>Ага... MFC вот тоже класса QT.. я что то не слышал, чтобы она на OLE была основана.. V>>И вообще что она на паскале есть.. Хоть с врапперами, хоть без врапперов.. PE>MFC — именно С++ билиотека для всего. А как писать для KDE на разных языках ?
А как на MFC на разных языках?
PE>>>В COM такого нет ! V>>Дык и Попуоярной оконной библиотеки, основанной на COM нет.. PE>Винда — это 75% COM.
Да хоть 99%
Вот только с окнами там работа без всякого COM-а идёт..
И QT опять неудачный пример..
V>>>>Нет, тебе нужен 1 компонент, а во всех языках врапперы для него.. PE>>>Значит 7 врапперов по твоему ? V>>А что, по твоему не 7?
V>>>>Точто так же как и для OLE.. PE>>>Какой враппер для OLE нужен ? Что это такое ? CComPtr ? V>>Не он сам, а то что у него в скобках <> V>>А сам он — тоже wrapper, но только не для spellchecker-а а для OLE.. PE>CComPtr — враппер для указателя, а не для OLE.
Слушай, кто из нас больше с COM работал, я или ты?
Читаем в MSDN статью о CComPtr:
A COM interface specifying the type of pointer to be stored.
COM- интерфейс.. А ты говоришь просто указатель..
PE>>>>>или 1 компонента, которая свободно, без врапперов, подымается из любого языка. V>>>>Вот список врапперов, которые ты используешь: V>>>>1. "голый" OLE на С PE>>>Какой же это враппер ? Я вызываю функцию АПИ напрямую и получаю указатель на структуру из указателей. PE>>>Где врапперы ? V>>API чего? Ядра? Стандартной библиотеки C? V>>какая либа подключается? Вот эта либа и враппер.. PE>В WINAPI есть фунцыя — CoCreateInstance PE>Сразу загружается оъект. Врапперы здесь нахрен не нужны.
Ты меня всё понять не хочешь..
У тебя создаётся объект без функции проверить_орфографию..
Чтобы её юзать спокойно тебе и нужен враппер..
И.е. обёртка по русски, у которой такая функция есть, и которая просто
берёт соотв. интерфейс, упаковывает параметры, передаёт всё туда,
получает результат, и опять возвращает его в удобном виде..
V>>>>2. библиотека на C++ для него PE>>>Что такое библиотека С++ для него ? V>>Представляющая для удобства "чистый" C-OLE в виде классов PE>Не надо такое. Есть интерфейсы и все.
Нет интерфейсов в C++, хотя убей нету..
V>>Что там ты используешь.. V>>MFC, ATL, что то другое? PE>Я тоьлко ATL для сервера. А как клиент мне это не надо.
Ну как не надо то..
Ты же программу кидал..
Там я у тебя CComPtr видел..
Смотрим MSDN, читаем:
Requirements
Header: atlcomcli.h
Т.е. atl.. родимый..
PE>>>Враппер — COleDispatchDriver СPictureHolder COleStreamFile PE>>>Посмотри, пожалуйста, на эти врапперы и сравни с интерфейсами соответсвующими. V>>Я что то должен увидеть? V>>Ты пальцем покажи.. V>>Я пока что вижу, что врапперы есть.. V>>как должны они быть и для PE>Эти врапперы не нужны. Они лишь для твоего удобства.
Дык и для ispell врапперы не нужны..
Вызывай его как процесс да и всё..
wrapper-ы всякие тоже лишь для удобства..
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
PE>>>OLE в чистом виде да еще на Си — это не часто увидишь. V>>Если я не ошибаюсь, выше вы писали, что работаете с OLE без всяких wrapper-ов.. V>>Чистый OLE он на чистом C написан, всё остальное — wrapper-ы над ним..
PE>>>
V>>..
PE>>>
V>>Я имел в виду код, который делает проверку орфографии.. V>>Или это писали не вы (честно говоря искать кто таким хвастался, в лом..)
PE>Эээ а разница то какая ?
Ну мы же ищём преимущества OLE перед ispell при работе со spellcheck-ером..
Для "других" приложений я уже описывал критерии, при которых использование
компонентных методологий даёт преимущества..
Кстати, в вашем случае тоже имеются open-source библиотеки для работы с xml..
Вот пример их использования (без всякого COM):
#include <util/PlatformUtils.hpp>
#include <XalanTransformer/XalanTransformer.hpp>
#if defined(XALAN_OLD_STREAM_HEADERS)
#include <iostream.h>
#include <strstream.h>
#else
#include <iostream>
#include <strstream>
#endif
int
main(
int argc,
const char* argv[])
{
#if !defined(XALAN_NO_NAMESPACES)
using std::ostrstream;
using std::cout;
using std::cerr;
using std::endl;
#endif
if (argc < 3 || argc > 4)
{
cerr << "Usage: XalanTransform XMLFileName XSLFileName [OutFileName]" << endl;
return -1;
}
// Call the static initializer for Xerces.
XMLPlatformUtils::Initialize();
// Initialize Xalan.
XalanTransformer::initialize();
// Create a XalanTransformer.
XalanTransformer theXalanTransformer;
int theResult = 0;
if (argc == 4)
{
// Do the transform.
theResult = theXalanTransformer.transform(argv[1], argv[2], argv[3]);
if(theResult != 0)
{
cerr << "XalanError: \n" << theXalanTransformer.getLastError();
}
}
else
{
// Do the transform.
theResult = theXalanTransformer.transform(argv[1], argv[2], cout);
if(theResult != 0)
{
cerr << "XalanError: \n" << theXalanTransformer.getLastError();
}
}
// Terminate Xalan.
XalanTransformer::terminate();
// Call the static terminator for Xerces.
XMLPlatformUtils::Terminate();
return theResult;
}
По моему всё гораздо короче и понятнее..
Так что видно, что в вашем случае OLE только мешает..
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
В>>>То есть ты хочешь сказать то что я не видел, того не существует. Ты видел как админстряться IIS, MSSQL, BizTalk, COM+ ? V>>Не поверишь.. Я их даже администрировал.. V>>И поверь, заколебался.. Уж больно "дубово" и "тормозно"..
PE>Расскажи, какая связка (система/сервер)самая шустрая на PE>бд PE> до 100Gb PE> до 300Gb PE> до 1000Gb PE> до 3000Gb PE>И какой кластер дает больше всего транзакций.
Куда он их "даёт"?
В MMC..?
Куда тебя заносит?
Тема тестирования СУБД слишком сложна чтобы её здесь обсуждать..
намекну только что в отличие от тестирования расчётов, тест для
СУБД должен быть не полностью детерменированным..
Здравствуйте, vvaizh, Вы писали:
V>Здравствуйте, Plutonia Experiment, Вы писали:
PE>>Здравствуйте, vvaizh, Вы писали:
В>>>>То есть ты хочешь сказать то что я не видел, того не существует. Ты видел как админстряться IIS, MSSQL, BizTalk, COM+ ? V>>>Не поверишь.. Я их даже администрировал.. V>>>И поверь, заколебался.. Уж больно "дубово" и "тормозно"..
PE>>Расскажи, какая связка (система/сервер)самая шустрая на PE>>бд PE>> до 100Gb PE>> до 300Gb PE>> до 1000Gb PE>> до 3000Gb PE>>И какой кластер дает больше всего транзакций.
V>Куда он их "даёт"?
Обслуживает пользователей которые к нему коннектятся.
Здравствуйте, vvaizh, Вы писали:
PE>>>>Распространяется обычно бинарник и tlb в одном флаконе. все генерируется автоматом. V>>>Да, автоматом — это круто.. V>>>Но — не нужно если этот самый *.h уже есть, как и все исходники.. PE>>Для какого языка ? V>На котором предыдущий оратор вставил в свою программу проверку орфографии..
А если несколько модулей на 7 языках ?
У нас не используется явно спелчекер, но используются другие.
PE>>>>По этой причине ZLib распространяется с необходимыми файлами для ВСЕХ языков. PE>>>>Для питона и перла она продублирована на 100% PE>>>>Ты можешь дать гарантию, что тот, кто писал ZLib для питона, PE>>>>не ошибся ни разу или совершил теже ошибки, что есть в варианте С/С++ ? PE>>>>И не только ZLib. V>>>ZLib — один на всех.. V>>>на языках только врапперы.. V>>>Или ты серъёзно думаешь, что кто то запускает такие долгоиграющие вещи, как сжатие данных на интерпретируемых языках.. V>>>Ты глубоко заблуждаешься..
PE>>Смотри ниже — один из файликов. V>Смотрю.. V>Вижу: V>упаковка происходит при помощи wrapper-а struct V>его использование своидтся к следуюбщему: V>
V>И того — на каждую упаковку/распаковку — одна строчка.. V>+ строчка для импорта враппера
PE>>Такое количесвто кода никому не надо. V>Смотрим что делает остальная часть кода:
V>
V>class PyZipFile(ZipFile):
V> """Class to create ZIP archives with Python library files and packages."""
V>
V>Ага... ты мне кинул утилиту, которая каким то образом бешает по файлам пректа pyton-а V>собирает все необходимые для него и упаковывает в один zip-файл.. V>И вся эта избыточная по твоему часть кода занимается только этим.. V>Т.е. не использованием zlib, а сугубо своими личными делами, типа заголовков пакетов (питоновских) и т.д. V>Ну и в чём проблема?
Этот же код есть и в C, С++ и тд
PE>>Где гарантии, что ошибок нет ? V>В чём? В работе со структурой проекта питон? V>Или в zlib, который весь в struct, и ошибиться можно только, V>подав ему неправильные аргументы, после чего он вернёт код ошибки..
PE>>>>В QT для Pascal чтобы не дублировать код, пришлось писать РУКАМИ врапперы, которые просто перенаправляют вызовы в QT для C/C++. V>>>Ага... MFC вот тоже класса QT.. я что то не слышал, чтобы она на OLE была основана.. V>>>И вообще что она на паскале есть.. Хоть с врапперами, хоть без врапперов.. PE>>MFC — именно С++ билиотека для всего. А как писать для KDE на разных языках ? V>А как на MFC на разных языках?
MFC это не аналог KDE. Qt — возможно. Но не KDE. Как для KDE писать на питоне например ?
PE>>>>В COM такого нет ! V>>>Дык и Попуоярной оконной библиотеки, основанной на COM нет.. PE>>Винда — это 75% COM. V>Да хоть 99% V>Вот только с окнами там работа без всякого COM-а идёт..
С какими именно ? Есть COM а есть и не COM.
V>>>>>Точто так же как и для OLE.. PE>>>>Какой враппер для OLE нужен ? Что это такое ? CComPtr ? V>>>Не он сам, а то что у него в скобках <> V>>>А сам он — тоже wrapper, но только не для spellchecker-а а для OLE.. PE>>CComPtr — враппер для указателя, а не для OLE. V>Слушай, кто из нас больше с COM работал, я или ты? V>Читаем в MSDN статью о CComPtr:
V>
A COM interface specifying the type of pointer to be stored.
V>COM- интерфейс.. А ты говоришь просто указатель..
Читай дальше
ATL uses this class and the CComQIPtr class to manage COM interface pointers
V>У тебя создаётся объект без функции проверить_орфографию.. V>Чтобы её юзать спокойно тебе и нужен враппер..
Не враппер — враппер == код машинный.
А таблица указателей на все методы объекта.
Это естественно. Без этого невозможно. Как и в CORBA.
V>И.е. обёртка по русски, у которой такая функция есть, и которая просто V>берёт соотв. интерфейс, упаковывает параметры, передаёт всё туда, V>получает результат, и опять возвращает его в удобном виде..
V>>>>>2. библиотека на C++ для него PE>>>>Что такое библиотека С++ для него ? V>>>Представляющая для удобства "чистый" C-OLE в виде классов PE>>Не надо такое. Есть интерфейсы и все. V>Нет интерфейсов в C++, хотя убей нету..
Интерфейс == абстрактный класс
V>Ну как не надо то.. V>Ты же программу кидал.. V>Там я у тебя CComPtr видел..
B ты считаешь, что это обязательное требование ? Мне влом самому расставлять AddRef и Release.
V>Т.е. atl.. родимый..
PE>>Эти врапперы не нужны. Они лишь для твоего удобства. V>Дык и для ispell врапперы не нужны.. V>Вызывай его как процесс да и всё.. V>wrapper-ы всякие тоже лишь для удобства..
Отлично. А как мне управлять этим спелчекером, если он в отдельном процессе ?
MAG>Так это ведь не винда — это не логин/логаут, а открытие новой консольки.
В WinXP такая фишка есть. Переключение между сессиями — Ctrl+Win+Tab. Нужно с Микрософта скачать пару мегабайт.
MAG> Да и к тому же, вспомним BeOS — POSIX среда
Хорошая система BeOS была, перспективная. Уже умерла
M>Микрософт кучу денег вложил в изучение чаников. Совершенно естественно, что они в чаниках разбираются лучше чем Юниксовые конторы.
MAG>Согласен! Но только вот писали бы они свой гуй на юниксовом ядре — цены бы им не было.
Цены бы им не было? А сейчас у них что, недостаточно большая цена? Я, например, купить их не могу покамись.
Так что в самую точку насчёт цены. Микрософт отлично считает деньги. Если бы было лучше написать на Юниксовом ядре операционку — они бы, я уверен, не прошляпили. Тем более, Микрософт в раннем детстве занимался разработкой Юникса, и даже в Sun ещё, говорят, недавно оставались хвосты Микрософтовского допотопного кода.
MAG> Конечно, можно сказать, что когда все это начиналось, считалось, что PC не могут держать Unix-like системы. Но вот для моей пальмы (Motorolla 68xxx, не помню точно, 33Mh, нет MMU, общий storage 16mb) линукс уже есть — значит тогда все-таки можно было, да и Minix работает на 8088.
Работает одно, а можно использовать — совсем другое. Ты ж сам программист, понимаешь.
MAG>>>Да. Именно. В винде нет доступных средств для автоматизации таких вещей. MAG>> ^^^^^^^ M>>Кто курил? Я курил?
M>>Alt+F11 нажми, увидишь эти средства.
MAG>>Кто говорил про офис? Его вообще-то дополнительно покупать надо.
M>Ты говорил "Офис". Они же у тебя в Word'е слова считали, или я чего не так понял?
MAG>Ну да. Только если бы они это считали в notepad'е, все было бы тем же самым.
Не понял.
"В винде нет доступных средств для автоматизации таких вещей" — ты говорил? Alt+F11.
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
V>>Здравствуйте, Plutonia Experiment, Вы писали:
PE>>>Здравствуйте, vvaizh, Вы писали:
В>>>>>То есть ты хочешь сказать то что я не видел, того не существует. Ты видел как админстряться IIS, MSSQL, BizTalk, COM+ ? V>>>>Не поверишь.. Я их даже администрировал.. V>>>>И поверь, заколебался.. Уж больно "дубово" и "тормозно"..
PE>>>Расскажи, какая связка (система/сервер)самая шустрая на PE>>>бд PE>>> до 100Gb PE>>> до 300Gb PE>>> до 1000Gb PE>>> до 3000Gb PE>>>И какой кластер дает больше всего транзакций.
V>>Куда он их "даёт"?
PE>Обслуживает пользователей которые к нему коннектятся.
В каком порядке?
С какой частотой?
В каком порядке идут долгие и быстрые запросы?
Какие вообще запросы идут?
Какие клиенты используются?
Как часто производится обслуживание (многие системы требуют чего то вроде flush)
Я могу долго перечислять..
Ещё раз повторяю..
В отличии от вычислительных тестов, которые состоят только из *.c файлов (н уили чего там..)
И могут работать без всякого промежуточного ПО и вмешательства создателей техники, на которой они выполняются
тесты для СУБД организуются гораздо сложнее..
SQL у всех СУБД имеет много своих особенностей..
обслуживаются они по разному..
клиенты у них разные..
тест-suit для каждой нужен свой
без модификации тестов под конкретную СУБД ничего не получается,
либо проверяется всё лишь для простейших функций, которые есть во всех СУБД..
несмотря на то что многие субд имеют часто нестандартные методы повышения производительности..
так что "перегонки" здесь носят весьма и весьма условный характер..
насколько я в курсе пока здесь лидирует Oracle, причём с большим отрывом..
Посмотри например здесь, прошлогодние тесты, запущенные на windows:
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
V>>По моему всё гораздо короче и понятнее.. V>>Так что видно, что в вашем случае OLE только мешает..
PE>Пример этот не годится.
PE>COM — Component Object Model PE>Ее аналог под юниксом — CORBA
PE>Сделай так, что можно было подкинуть тот спелчекер, который закажет пользователь. PE>Только так, чтобы не нужно было перекомпилировать и тд.
Ничего не перекомпилируем, не ставим..
просто в свой ~/bin
кладём новый вариант ispell..
(ну конечно path должен туда сначала укащывать, что в большинстве систем и делается)
ну или какою то другую фигню с переменной path произвести, чтобы система первым находила новый ispell..
вариантов тут несколько, в зависимости от предпочтений..
просто..
доступно...
удобно..
без COM..
И заметь: хостинг на linux более популярен..
это потому что жизнь разных юзеров со своими вариантами библиотек там более отработана..
в отличии от win..
гда им пришлось бы наверно каждому юзать один и тот же spellcheck-ер..
Или опять какое нить чуда тира ActiveDirectories..
(я когда про идентификацию спрашивал, всё ждал когда ты в него вильнёшь,
но видимо я тебя переоценивал..)
Здравствуйте, vvaizh, Вы писали:
V>Ничего не перекомпилируем, не ставим.. V>просто в свой ~/bin V>кладём новый вариант ispell.. V>(ну конечно path должен туда сначала укащывать, что в большинстве систем и делается)
Отлично.
Вот я создал процесс. Как мне передать параметры и получить результаты ?
Здравствуйте, vvaizh, Вы писали:
V>так что "перегонки" здесь носят весьма и весьма условный характер.. V>насколько я в курсе пока здесь лидирует Oracle, причём с большим отрывом..
Я же просил связку, а не только СУБД.
Например top500.org показывает суперкомпьютеры.
Какой суперкластер считается самым быстродействующим по транзакциям и тд и тд ?
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
PE>>>>>Распространяется обычно бинарник и tlb в одном флаконе. все генерируется автоматом. V>>>>Да, автоматом — это круто.. V>>>>Но — не нужно если этот самый *.h уже есть, как и все исходники.. PE>>>Для какого языка ? V>>На котором предыдущий оратор вставил в свою программу проверку орфографии.. PE>А если несколько модулей на 7 языках ? PE>У нас не используется явно спелчекер, но используются другие.
Какие? речь шла о spellcheck-ере.. Я вс. ду говорил про него..
По полочкам если всё разложить, то видно будет, где COM имеет преимущество, а где нет..
V>>Ага... ты мне кинул утилиту, которая каким то образом бешает по файлам пректа pyton-а V>>собирает все необходимые для него и упаковывает в один zip-файл.. V>>И вся эта избыточная по твоему часть кода занимается только этим.. V>>Т.е. не использованием zlib, а сугубо своими личными делами, типа заголовков пакетов (питоновских) и т.д. V>>Ну и в чём проблема? PE>Этот же код есть и в C, С++ и тд
код ZLib? его нет в том что ты мне кинул на питоне (нет самого алгоритма)
код того, чтобы понять что именно нужно упаковать на питоне есть..
но его нет на c++..
нет там дублирования..
ты мне кинул не аналог zlib..
и не wrapper..
ты мне кинул программу, которая использует некий объект struct для упаковки,
а всё остальное время занимается своим делом, к zlib никакого отношения не имеющим..!
Ты всё ещё не понял?
н апитоне упаковка вышлядит следующим образом:
import struct
struct.pack(......)
А то что ты мне дал — это специальный скритп для упаковки проектов питон..
не чего попало — а питона..
Чтобы тебе было понятнее — это как процедура сборки assembly для .NET..
когда есть все классы и бибилиотеки и их нужно только собрать, написать всякие заголовки и упаковать..
Вот тот код который ты считаешь лишним занимается тем, что пишет всякие заголовки __нужные_питону__ а не zlib..
и это совсем не zlib..
PE>>>Где гарантии, что ошибок нет ? V>>В чём? В работе со структурой проекта питон? V>>Или в zlib, который весь в struct, и ошибиться можно только, V>>подав ему неправильные аргументы, после чего он вернёт код ошибки..
PE>>>>>В QT для Pascal чтобы не дублировать код, пришлось писать РУКАМИ врапперы, которые просто перенаправляют вызовы в QT для C/C++. V>>>>Ага... MFC вот тоже класса QT.. я что то не слышал, чтобы она на OLE была основана.. V>>>>И вообще что она на паскале есть.. Хоть с врапперами, хоть без врапперов.. PE>>>MFC — именно С++ билиотека для всего. А как писать для KDE на разных языках ? V>>А как на MFC на разных языках? PE>MFC это не аналог KDE. Qt — возможно. Но не KDE. Как для KDE писать на питоне например ?
1. как на питоне писать на MFC
2. KDE — надстройка над QT
V>>>>>>Точто так же как и для OLE.. PE>>>>>Какой враппер для OLE нужен ? Что это такое ? CComPtr ? V>>>>Не он сам, а то что у него в скобках <> V>>>>А сам он — тоже wrapper, но только не для spellchecker-а а для OLE.. PE>>>CComPtr — враппер для указателя, а не для OLE. V>>Слушай, кто из нас больше с COM работал, я или ты? V>>Читаем в MSDN статью о CComPtr: V>>
A COM interface specifying the type of pointer to be stored.
V>>COM- интерфейс.. А ты говоришь просто указатель.. PE>Читай дальше PE>
PE>ATL uses this class and the CComQIPtr class to manage COM interface pointers
Ну.. опять слово COM..
Это специальный аналог указателя ___для_COM___..
Т.е. wrapper над COM..
V>>У тебя создаётся объект без функции проверить_орфографию.. V>>Чтобы её юзать спокойно тебе и нужен враппер.. PE>Не враппер — враппер == код машинный. PE>А таблица указателей на все методы объекта. PE>Это естественно. Без этого невозможно. Как и в CORBA.
Я уже кидал ссылку на то, что я понимаю под враппером..
Да, часто там никакого __машинного__ кода нет..
Но вот код на целевом языке там есть всегда..
Для всех языков..
V>>И.е. обёртка по русски, у которой такая функция есть, и которая просто V>>берёт соотв. интерфейс, упаковывает параметры, передаёт всё туда, V>>получает результат, и опять возвращает его в удобном виде..
V>>>>>>2. библиотека на C++ для него PE>>>>>Что такое библиотека С++ для него ? V>>>>Представляющая для удобства "чистый" C-OLE в виде классов PE>>>Не надо такое. Есть интерфейсы и все. V>>Нет интерфейсов в C++, хотя убей нету.. PE>Интерфейс == абстрактный класс
у тебя в idl не "class"
а именно "interface"
с++ такого не понимает..
V>>Ну как не надо то.. V>>Ты же программу кидал.. V>>Там я у тебя CComPtr видел.. PE>B ты считаешь, что это обязательное требование ? Мне влом самому расставлять AddRef и Release.
Дык если ты их ручками расставлять будешь, у тебя и получатся те самые 2000 строк кода..
Откуда я это взял?
Это слова одного из создателей OLE н апервой егойной лекции для программистов..
ПАосле этого понаписали кучу врапперов типа atl, что и облегчило ситуацию..
PE>>>Эти врапперы не нужны. Они лишь для твоего удобства. V>>Дык и для ispell врапперы не нужны.. V>>Вызывай его как процесс да и всё.. V>>wrapper-ы всякие тоже лишь для удобства.. PE>Отлично. А как мне управлять этим спелчекером, если он в отдельном процессе ?
А чего им управлять то.. он выполнил своё дело, вернул результат..
в крайнем случае запускаешь его в фоновом режиме и подаёшь что нить нр вход и читаешь с выхода..
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
V>>так что "перегонки" здесь носят весьма и весьма условный характер.. V>>насколько я в курсе пока здесь лидирует Oracle, причём с большим отрывом..
PE>Я же просил связку, а не только СУБД.
PE>Например top500.org показывает суперкомпьютеры.
PE>Какой суперкластер считается самым быстродействующим по транзакциям и тд и тд ?
что и т.д. и т.д. ?
кем считается?
по каким транзакциям..?
что ты имеешь в виду?
Oracle себя считает..
DB2 себя..
про eweek я тебе кидал..
у всех у них это самое "и т.д.", "и т.д." своё..
ты конкретнее опиши..
а то не хочется отвечать на вопрос, кто сильнее, слон или касатка..
с одной стороны, если слон разбежится, и прыгнет на мелководье на касатку, то он её наверно убъёт сразу..
с другой стороны, если он полезет убивать её в воду, она его нахрен закусает..
правильный же ответ — они просто никогда не встретятся..
так же, как и проги написанные на Oracle, и использующие его специфичные функции (например нестандартные индексы),
будет работать бестрее и выдавать трензакции (и т.д. и т.д.) быстрее MSSQL, таких индексов не имеющих..
точно также как и проги на MSSQL, которые скажем используют какие специфичные нить UDF, которых нет в Oracle, будет быстрее его..
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
V>>Ничего не перекомпилируем, не ставим.. V>>просто в свой ~/bin V>>кладём новый вариант ispell.. V>>(ну конечно path должен туда сначала укащывать, что в большинстве систем и делается)
PE>Отлично. PE>Вот я создал процесс. Как мне передать параметры и получить результаты ?
Здравствуйте, vvaizh, Вы писали:
PE>>У нас не используется явно спелчекер, но используются другие. V>Какие? речь шла о spellcheck-ере.. Я вс. ду говорил про него.. V>По полочкам если всё разложить, то видно будет, где COM имеет преимущество, а где нет..
Если только спелчекер, то можно и без COM обойтись. COM — способ организации программы из разных модулей.
Готовых.
V>>>Ага... ты мне кинул утилиту, которая каким то образом бешает по файлам пректа pyton-а V>>>собирает все необходимые для него и упаковывает в один zip-файл.. V>>>И вся эта избыточная по твоему часть кода занимается только этим.. V>>>Т.е. не использованием zlib, а сугубо своими личными делами, типа заголовков пакетов (питоновских) и т.д. V>>>Ну и в чём проблема? PE>>Этот же код есть и в C, С++ и тд
V>код ZLib? его нет в том что ты мне кинул на питоне (нет самого алгоритма) V>код того, чтобы понять что именно нужно упаковать на питоне есть.. V>но его нет на c++.. V>нет там дублирования.. V>ты мне кинул не аналог zlib.. V>и не wrapper..
Это паковалка не совсем ZLib. Она с файлами работает.
Но юзает ZLib.
Тот код, что я бросил — класс ZipFile. Такой же есть и в C++.
zlib.pyd — вот он. Это как я понял, хитрая дллка
Для него есть еще файл zlib.lib
Сишной либе нужны или исходники или h-файл
COM предлагет ничего этого не распространять а толкать только zlib.pyd
Просекаешь ?
PE>>MFC это не аналог KDE. Qt — возможно. Но не KDE. Как для KDE писать на питоне например ? V>1. как на питоне писать на MFC V>2. KDE — надстройка над QT
MFC я могу заюзать следующим образом.
Пишется объектная модель с поддержкой COM.
Python работает чз COM с моими объектами. И не надо дополнительных процессов и тд.
Но MFC — это надстройка над WinAPI.
KDE — это надстройка над QT, которая надстройка над X Windows. QT не напрямую юзает X сервер, насколько помню.
Большинство классов в MFC наследуется от CCmdTarget.
PE>>
PE>>ATL uses this class and the CComQIPtr class to manage COM interface pointers
V>Ну.. опять слово COM.. V>Это специальный аналог указателя ___для_COM___.. V>Т.е. wrapper над COM.
Wrapper над указателем для COM interface pointer.
Указатель — это далеко не COM.
V>>>>>>>2. библиотека на C++ для него PE>>>>>>Что такое библиотека С++ для него ? V>>>>>Представляющая для удобства "чистый" C-OLE в виде классов PE>>>>Не надо такое. Есть интерфейсы и все. V>>>Нет интерфейсов в C++, хотя убей нету.. PE>>Интерфейс == абстрактный класс V>у тебя в idl не "class" V>а именно "interface" V>с++ такого не понимает..
Естественно. По IDL или TLB генерируется h файл. И нет смылсла распространять.
Для VBS, JS, J#, С# и генерировать не надо — они tlb понимают.
Для паскаля надо генерировать паскалевский unit.
V>Откуда я это взял? V>Это слова одного из создателей OLE н апервой егойной лекции для программистов.. V>ПАосле этого понаписали кучу врапперов типа atl, что и облегчило ситуацию..
Ситуацию не сильно то и облегчило. Я в половине случаев не пользовался никакими вспомогалками вроде CComPtr.
И при этом все равно имеешь ООП.
PE>>Отлично. А как мне управлять этим спелчекером, если он в отдельном процессе ? V>А чего им управлять то.. он выполнил своё дело, вернул результат.. V>в крайнем случае запускаешь его в фоновом режиме и подаёшь что нить нр вход и читаешь с выхода..
И это ООП ? Весь твой спеллчекер можно заменить одной фунцыей
char* spellcheck(const char *input);
А мне вот надо, что бы
1. результат выбирал пользователь
2. Он же словари подключал
3. Мне нужен callback для управления ГУИ спелчекера
4. ГУИ спелчекера должен быть встроен в мою аппликацию. Например это панелька отдельная, которую вызывает пользователь.
5. Еще нужна такая возможность — ты пишешь текст, а спеллчекер автоматом корректирует слова или завершает их правильно
На примере — больше всего GFlops дает NEC — это позиция 1 в top500.
V>так же, как и проги написанные на Oracle, и использующие его специфичные функции (например нестандартные индексы), V>будет работать бестрее и выдавать трензакции (и т.д. и т.д.) быстрее MSSQL, таких индексов не имеющих.. V>точно также как и проги на MSSQL, которые скажем используют какие специфичные нить UDF, которых нет в Oracle, будет быстрее его..
Меня вот интересует, на какой системе можно доиться самой большой производительности ?
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Здравствуйте, vvaizh, Вы писали:
PE>>>Отлично. PE>>>Вот я создал процесс. Как мне передать параметры и получить результаты ?
V>>http://www.opennet.ru/man.shtml?topic=ispell&category=1&russian=2
V>>ты мне кстати, про то как это на OLE выглядит так и не написал..
PE>Я тебе написал на другом примере. И требования к спелчекеру тож предъявил. У тебя ни одно не удовлетворяется.
какое именно требование не удовлетворяется?
как компонент на свой заменить, я тебе написал..
и вообще, не нужно мне других примеров..
щас ты мне какие нить ещё серверные придумаешь..
и для твоего примера аналог дал, для которого без OLE удобнее..
Здравствуйте, vvaizh, Вы писали:
PE>>Я тебе написал на другом примере. И требования к спелчекеру тож предъявил. У тебя ни одно не удовлетворяется.
V>какое именно требование не удовлетворяется? V>как компонент на свой заменить, я тебе написал..
V>и вообще, не нужно мне других примеров.. V>щас ты мне какие нить ещё серверные придумаешь..
V>и для твоего примера аналог дал, для которого без OLE удобнее..
Я привел штук 5 треобваний.
Если в самом простом случае не нужен COM, это значит, он вообще не нужен ?