LINUX.ORG.RU

Новая (возможно) концепция универсального редактора ждет критики

 ,


0

3

Пришла такая идея: пишем оболочку редактора, которая обладает рабочей областью, механизмом масштабирования, панелью инструментов слева, деревом объектов справа, классической панелью инструментов сверху. Ну что-то типа корела какого-нибудь.

Дальше, весь код, необходимый для обработки конкретного формата данных, в т. ч. диалоги, кнопочки, ресурсы, логику кладем в динамическую библиотеку, код которой, в текстовом виде, кладем прямо в файл данных (размер не такой уж и серьезный, особенно если сверху zlib'ом пройтись)

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

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

Все бы было хорошо, но я вижу одну очень страшную проблему - вирусы (ну или вредоносное ПО) и как принципиально все спроектировать чтоб свести эту проблему на нет - я не придумал. Ну можно завести под редактора отдельного пользователя и урезать в правах, можно chroot, можно виртуалку вообще, но это все не то. Вот, выкинул концепцию сюда, вдруг кто что годное придумал...

ЗЫ: все это пьянство никто не мешает сделать кроссплатформенным, это тоже стоит учитывать. К тому же важным преимуществом является независимость от Сети, что срезает возможность централизованной борьбы с вредоносным ПО.

★★★★★

Последнее исправление: ymn (всего исправлений: 1)
Ответ на: комментарий от pihter

Во-первых, единократное.

О чем и речь. Осиль пакетный менеджер. Таскать с собой исходники — оверкилл.

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

Ты говорил, что в этих плагинах будет только логика. Не вижу проблемы.

feofan ★★★★★
()
Ответ на: комментарий от pihter

Там, где достаточно высокоуровневых - используй их, там где нужна гибкость и скорость си - используй ее.

Там, где описана логика скорость не так важна, а ЯП низкого уровня неудобен.

feofan ★★★★★
()
Ответ на: комментарий от pihter

Однако, если тебе принесли файл, использующий какое-то расширение, и у тебя нет интернета - не прокатит.

Прокатит, если принести вместе с расширением.

feofan ★★★★★
()
Ответ на: комментарий от pihter

5. исходный код библиотек, используемых в качестве «плагинов» при подготовке докумнета.

на кой хрен хранить в каждом плагине Over9000 других плагинов? Это же ППЦ: вот я загрузил документ 1, 2, 3, 4, 5, и КАЖДЫЙ из документов требует ОДИН и тот же плагин РАЗНЫХ версий! На кой хрен мне нужно хранить в памяти Over9000 ОДНИХ И ТЕХ ЖЕ so'шек? Слегка различающихся версией, одна 1.2.3.212, другая 1.2.3.213, в котором пробел вставлен после запятой,ибо,без пробелов некрасиво,увы.

все это ужато gzip'ом сверху

давай уж xz, чё уж там... WinRAR уже умеет xz...

emulek
()
Ответ на: комментарий от pihter

либо ты гордиться емаксом имеешь не больше права, чем я, не?

Я вимер до мозга костей, поэтому оценка заслуг имакса из моих уст гораздо ценнее мнения мозолееда.

Я его для себя напишу

Значит тебе должно быть насрать на безопасность и все остальные дела. Пиши уже код, мазафака. Иначе ты не более чем очередная шлюшка, привлекающая внимание.

ИЧСХ, нет ни одного реализованного проекта, который вначале обсуждался на ЛОРе, а только потом писался.

anonymous
()
Ответ на: комментарий от pihter

Однако, если тебе принесли файл, использующий какое-то расширение, и у тебя нет интернета - не прокатит.

дык нужна возможность создания «безинтернетовых» документов.

emulek
()
Ответ на: комментарий от pihter

А вот есть фри паскаль, чем плох в этом вопросе? И шустр, почти как С и платформ поддерживает - много, и язык стабильный и типизация строгая и память протечь очень сложно и динамические библиотеки умеет отлично.

это всё «фичи» только на твой взгляд. С т.з. сишника это баги.

emulek
()
Ответ на: комментарий от anonymous

ИЧСХ, нет ни одного реализованного проекта, который вначале обсуждался на ЛОРе, а только потом писался.

4.2

Есть vaapi-видеоускорение для интелов и fglrx

feofan ★★★★★
()
Ответ на: комментарий от feofan

Есть vaapi-видеоускорение для интелов и fglrx

AFAIK, работа была начата раньше. Обсуждались уже полурабочие варианты.

anonymous
()
Ответ на: комментарий от anonymous

Есть vaapi-видеоускорение для интелов и fglrx

AFAIK, работа была начата раньше. Обсуждались уже полурабочие варианты.

Возможно. Но даже альфа-версии, ЕМНИП, еще небыло. Лучше спросить у автора. i-rinat

feofan ★★★★★
()
Последнее исправление: feofan (всего исправлений: 2)

Тогда в первую очередь напиши плагин для редактирования плагинов для твоего редактора, чтобы он мог импотрировать сорцы готовой программы для редактирования определенного типа файлов. И твой редактор будет просто запускать готовую программу.

xmikex ★★★★
()
Ответ на: комментарий от anonymous

Что может быть классическее лиспа?

Фортран?

korvin_ ★★★★★
()
Ответ на: комментарий от Legioner

Для native кода - google native client. Для многих интерпретируемых языков есть возможность делать песочницу, например JavaScript. Для многих компилируемых в байткод языков есть возможность делать песочницу, например Java. Но конкретно в джаве очень много багов в этой песочнице, рекомендовать бы её я не стал.

Спасибо, но не то.

Проблема устаревания кода например в том, что в исполняемой части документа могут быть баги. Ты их можешь пофиксить, но документ уже ушёл и разошёлся по интернету.

Вот это я действительно не подумал. Однако решение есть: как только документ попадет на компьютер, имеющий доступ в сети, соответствующий старый код в документе будет заменен на обновленный из репозитория. Получается такой симбиоз независимого и репозиторного способа распространиения софта

Проблема обратной совместимости в том, что ты никак вообще не сможешь изменить однажды зарелизенное API, даже если оно впоследствии оказалось неудачным.

Могу с изменением мажорной версии и сохранением обратной совместимости.

Это реализуется продуманным расширяемым форматом документа.

А тут - не нужно продумывать каждый из ста форматов.

Это всё при желании автоматизируется.

Да, но не автоматизированно в сотне редакторов сотни разных форматов. А в моей концепции будет из коробки

pihter ★★★★★
() автор топика
Ответ на: комментарий от DonkeyHot

в то время, как человечество бороздит путь в облака и прочие

облако by design несвободно, в отличие от того, что предлагаю я

И кто нынче надеется на то, что удастся придумать неустаревающий интерфейс для плагинов?

Я тебе его только что придумал - это не плагин, код обработки будет храниться прямо в файле

Кстати, можно прицеплять к файлу не обработчик, а урлу

Предлагали. В таком случае то, что предлагаю я, точно будет ничем не лучше плагинной системы (где, поди, сто лет так уже)

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Какими известными механизмами сегодня можно так же просто решить эту задачу?

Rebol

anonymous
()

Предположим, в редакторе какого-то формата найдена уязвимость. А его код встроен в тысячи файлов по всему миру. Что делать?

xeiph
()
Ответ на: комментарий от feofan

Возможно. Но даже альфа-версии, ЕМНИП, еще небыло. Лучше спросить у автора.

Тут всё спуталось. Во-первых, VA-API для intel'а делают парни из intel OTC, а VA-API для fglrx делал Gwenole Beauchesne из Splitted-Desktop Systems, который теперь похоже тоже в intel OTC. Ещё тут проскакивала информация о встроенной поддержке VA-API для fglrx, но код закрытый и неизвестно, когда он станет доступен.

Во-вторых, писал я VDPAU-драйвер, эдакий переходник, а VA-API только использовал. Он работает, меня устраивает. Но там действительно не было версии 1.0, потому что я считаю, что версия 1.0 должна иметь все фичи реализованными, а реализовал я меньше трети (или четверти), но этой части уже достаточно для mplayer'а и Flash Player'а.

В-третьих, аноним хоть и груб, но по сути прав. И я часто повторяю похожее: если хочешь что-то сделать и ждёшь помощи других, приходить надо уже с готовым прототипом. Он может быть глюковатым, не самым быстрым, но по нему должно быть понятно, что идея работает. Я стараюсь следовать этой линии и пишу не «давайте сделаем», а «я делаю». Чего и другим советую.

i-rinat ★★★★★
()
Ответ на: комментарий от xeiph

Предположим, в редакторе какого-то формата найдена уязвимость. А его код встроен в тысячи файлов по всему миру. Что делать?

да ничего. Страдать. Вспомни времена IE5 и(чуть после) ФФ3.

emulek
()
Ответ на: комментарий от pihter

4. информация о необходимых компиляторах.

А если у получателя нет этих компиляторов, то пусть идет и скачивает в интернете, а если у него нет интернета, то пусть идет на..., хотя может компиляторы тоже в документ добавить?

anonymous
()
Ответ на: комментарий от pihter

верд

А вот и секретарша Саныча спалилась.

anonymous
()

достает сорцы из файла, компилирует, кладет себе в специальный каталог

Это называется интерпретатор, видишь как сильно развращает пхп, уже не мыслится интерпретатор без апача)) Ну а про библиотеки даже рассказывать бесполезно.. -_-

весь код, необходимый для обработки конкретного формата данных, в т. ч. диалоги, кнопочки, ресурсы
вредоносное ПО
Вот, выкинул концепцию сюда, вдруг кто что годное придумал...

Придумал. Это называется браузер))) - интерпретатор в песочнице с gui в комплекте.

special-k ★★★★
()
Ответ на: комментарий от pihter

В любом случае единственная мыслимая реализация - это песочница, и когда ты в нее полезешь, то поймешь, что изобретаешь очередной браузер/флэш/сильверлайт/т.п.

Кто сказал что мне так важно чтоб он взлетел? Я его для себя напишу

Тогда не стоит переживать за безопасность, да?)

special-k ★★★★
()
Ответ на: комментарий от yoghurt

Не, я к тому, что делать это на компилируемых ЯП - тлен.

Делать такое на ЯП, где компилятор недоступен из рантайма -тлен.

fixed

shamaz
()
Ответ на: комментарий от pihter

Пока так: текстовый файл, в котором:

1. Указана версия самого редактора.

2. в текстовом виде - любые данные, которые «плагин» захочет сохранить.

3. Информация о версии динамических библиотек, используемых при подготовки этого документа.

4. информация о необходимых компиляторах.

5. исходный код библиотек, используемых в качестве «плагинов» при подготовке докумнета.

все это ужато gzip'ом сверху

Все выглядело достаточно тонко вплоть до этого коммента. Ну нельзя же быть таким толстым.

А вообще ты просто украл идею из Microsoft Excel + VBA. Я не советую тебе где-то еще распространятся о своей «инновации», если не хочешь проблем с правообладателями.

unlog1c ★★★
()
Ответ на: комментарий от feofan

Осиль пакетный менеджер

Тогда смысла в моем поделии нет вообще никакого.

Ты говорил, что в этих плагинах будет только логика. Не вижу проблемы.

Логика может быть ресурсоемкой. А ну как в моем редакторе нужно будет что-то посчитать? Ну в том же редакторе макетных плат - посчитать автоматом дорожки. Ресурсы пригодились бы

pihter ★★★★★
() автор топика
Ответ на: комментарий от unlog1c

А вообще ты просто украл идею из Microsoft Excel + VBA.

у них это тоже NIH (не путать с HEX).

emulek
()
Ответ на: комментарий от pihter

зайка, ты весь день на ЛОРе трепишься, может хоть строчку напишешь?

emulek
()
Ответ на: комментарий от pihter

Ну в том же редакторе макетных плат - посчитать автоматом дорожки. Ресурсы пригодились бы

хватит делить на ноль — эту so'шку как раз можно и на сишечке сделать.

emulek
()
Ответ на: комментарий от feofan

Там, где описана логика скорость не так важна, а ЯП низкого уровня неудобен.

Логика может быть ресурсоемкой. Еще раз: хочешь простоты - пиши на lua, нужна скорость - пиши на С.

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

посчитать автоматом дорожки. Ресурсы пригодились бы

В большинстве интерпретируемых языков математика переложена на плечи c-библиотек

feofan ★★★★★
()
Последнее исправление: feofan (всего исправлений: 1)
Ответ на: комментарий от feofan

Прокатит, если принести вместе с расширением.

Ну тогда на моей стороне остается только легкость и дружественность интерфейса :)

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

Считается, что lua — самый быстрый скриптовый язык.

PS. Не поклонник lua. Вообше на нем ни разу не писал

feofan ★★★★★
()
Ответ на: комментарий от pihter

легкость и дружественность интерфейса :)

плагины в виде c-библиотек

/0

feofan ★★★★★
()
Ответ на: комментарий от emulek

на кой хрен хранить в каждом плагине Over9000 других плагинов?

Ты где-то меня не понял.

вот я загрузил документ 1, 2, 3, 4, 5, и КАЖДЫЙ из документов требует ОДИН и тот же плагин РАЗНЫХ версий!

При открытии документа, если окажется, что в редакторе уже имеется скомпилированная библиотека этого же «плагина», но более новой версии (обратно-совместимой) после сохранения, версия в документе обновится на более новую, а старая библиотека удалиться из коллекции редактора, за ненадобностью.

pihter ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я вимер до мозга костей, поэтому оценка заслуг имакса из моих уст гораздо ценнее мнения мозолееда.

Я польщен, че :)

Я его для себя напишу

Значит тебе должно быть насрать на безопасность и все остальные дела.

В принципе - да, только почему бы не спросить архитектурного совета, пока еще не начал? А ну как что годное присоветуют? Свои мысли в порядок приведу, отбиваясь от ваших нападок :)

Почему бы нет? Что я теряю?

Пиши уже код, мазафака

Уже пишу, тока не ругайся :)

Иначе ты не более чем очередная шлюшка, привлекающая внимание.

Ох как мне, порой, не хватает, чтоб на меня накинулась толпа злобных аналитегов и начала мне по пунктам объяснять что я тупой...

ИЧСХ, нет ни одного реализованного проекта, который вначале обсуждался на ЛОРе, а только потом писался.

Если ты считаешь что глупо обсудить архитектуру, прежде, чем начинать проектирование, то, я с тобой не согласен. Две головы - не одна, есть неслабая вероятность что мудрость какую присоветуют.

pihter ★★★★★
() автор топика
Ответ на: комментарий от pihter

есть неслабая вероятность что мудрость какую присоветуют

Мудрость: пока есть возможность писать без оглядки на чужое мнение — пиши!

anonymous
()

Сколько же идиотов на ЛОРе.

anonymous
()
Ответ на: комментарий от pihter

При открытии документа, если окажется, что в редакторе уже имеется скомпилированная библиотека этого же «плагина», но более новой версии (обратно-совместимой) после сохранения, версия в документе обновится на более новую, а старая библиотека удалиться из коллекции редактора, за ненадобностью.

а пакетный менеджер пусть в сторонке покурит? Давай определяйся:

1. каждый занимается своим делом, ты пишешь свой текстовый редактор.

ИЛИ

2. ты — Патрег Бох.

emulek
()

Тред не читал. Лисперов уже озалупили?

anonymous
()

Топикстартер - мощный мужик. Вот так с ходу придумать смесь Форта с Обероном - это надо уметь. Гений, точно.

GeoVit
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.