Windows vs Linux - Как десктоп
, и игровая станция.
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.217.169] |
|
|
Правила раздела:
| Страницы: (1182) « Первая ... 315 316 [317] 318 319 ... 1181 1182 ( Перейти к последнему сообщению ) |
Windows vs Linux - Как десктоп
, и игровая станция.
|
Сообщ.
#4741
,
|
|
|
|
Нет ничего не мешает Это часто встречающаяся проблема библиотека одна а название у нее разное вот игрушки и не заводятся. Цитата Smike @ Я уже спрашивал у иделога Питона best_lamer-а, как написать компонент уровня VirtualTreeView на Питоне. Он мне предложил сделать из компонента библиотеку и подключать в Питоне. И это весь RAD? Зачем изобретать велосипед? У тебя Python и тебе до зеленых соплей нужен именнно VirtualTreeView? Сделай библиотеку/dll- ку с нужным тебе VirtualTreeView и прицепи ее к своей проге на Python! В чем проблема? Самое важное выделенно! Или это только я читать умею? Это для тех кому из исходников компилить лень. Там же гдето рядом должно быть "download sources of VLC project" |
|
Сообщ.
#4742
,
|
|
|
|
А оно под последней cedega не работает? Цитата Smike @ Я уже спрашивал у иделога Питона best_lamer-а, как написать компонент уровня VirtualTreeView на Питоне. Он мне предложил сделать из компонента библиотеку и подключать в Питоне. И это весь RAD? А по-твоему весь RAD сводится к созданию GUI? Не весь. Во-вторых, во всех нормальных графических тулкитах подход к расположению виджетов на форме реализован так, чтобы минимально утруждать человека: вместо абсолютного позиционирования (которое, конечно, всегда можно использовать) предлагаются layout менеджеры. Посмотри на Swing в Java, на Qt, на GTK. Все эти среды предлагают визуальный конструктор UI (в случае со Swing не совсем верно, т. к. он идет отдельно от тулкита) + layout менеджеры упрощают создание форм, которые содержат контролы, но должны уметь изменять свой размер. А знаешь почему так? Не из-за бинарной несовместимости, а лишь потому что необходимые для работы vlc пакеты по-разному названы в этих системах. И вообще, неужели тебя интересует весь это зоопарк, если в большинстве случаев от тебя только требуется сказать «хочу vlc» (apt-get install vlc, emerge vlc), а обо всем остальном уже позаботятся. Даже кнопок никаких нажимать не надо. Smike, почему я заводил Xgl два дня: 1. во-первых мой день -- это интервал времени с 19:00 до 0:00 и с 6-8:00 до 9:00 2. во-вторых, я заводил Xgl на экспериментальном 32-битном chroot'е, который собирал до иксов с третьей стадии (в первый день я лег спать, к утру все было готово) 3. я невнимательно читал мануалы и не переставил nvidia драйвера после установки Xgl 4. каждый будний день у меня существует перерыв с 21:00 до 22:00, не считая того, что еще пожрать надо когда-то. Но несмотря на все это, на второй день примерно к 23:00 я уже восхитился compiz'ом. |
|
Сообщ.
#4743
,
|
|
|
|
Смайк это персонально тебе!
Smike я по своей натуре человек ленивый. В родственниках у меня Алексея Стаханова не числится. И я не собираюсь ставить трудовые рекорды портируя компоненты VCL Delphi на Python или еще хуже разрабатывая компоненты по новой только для того чтобы доказать что то кому-то... Заставить сделать ЭТО («написать компонент вроде VCL») меня может только стимул. Так как на весь ЭТОТ труд я потрачу время а время как известно это деньги. Деньги являются одним из тех стимулов который мог бы заставить меня подумать о времени на решение этой проблемы. А так как стимулов у меня нет я тебе показываю решение самое простое и элегантное на мой взгляд. И я будь у меня такая потребность поступил бы именно ТАК (если бы против этого не имел ничего заказчик): Цитата best_lamer @ Зачем изобретать велосипед? У тебя Python и тебе до зеленых соплей нужен именнно VirtualTreeView? Сделай библиотеку/dll- ку с нужным тебе VirtualTreeView и прицепи ее к своей проге на Python! В чем проблема? Поправьте меня в чем я неправ ? |
|
Сообщ.
#4744
,
|
|
|
|
Цитата best_lamer @ Зачем изобретать велосипед? У тебя Python и тебе до зеленых соплей нужен именнно VirtualTreeView? Сделай библиотеку/dll- ку с нужным тебе VirtualTreeView и прицепи ее к своей проге на Python! В чем проблема? OK, раз пошла такая пьянка, пошли до конца? 1) Какую сделать библиотеку? DLL, OCX (ActiveX)? Какие из них питон кушает? 2) Как в Питоне, если таковое возможно, легко импортировать ActiveX-компонент. А теперь давай подсчитаем накладные расходы: 1) ActiveX нужно регистрировать и он будет доступен всей системе. Корректно и нужно ли это для системы? В Линеуксе нет ActiveX, как поступить там? Даже предположим если я сделаю библиотеку/бинарник/что угодно VirtualTreeView с помощью FPC. 2) Накладные затраты на использование памяти, быстродействие. К примеру в VirtualTreeView используется виртуальный подход построения дерева. Я люблю использовать такой подход: XML-биндинг (а с этим как в питоне?) + VirtualTreeView. В OnGetText я передаю дереву значения, которые необходимо отобразить в дереве. Это событие для снижения использования памяти вызывается каждый раз, при каждой перерисовке. Представь себе, каково это будет в ActiveX? Цитата linuxfan @ А по-твоему весь RAD сводится к созданию GUI? Не весь. ОК, к чему еще? RAD-программирование практически не предусматривает разработку математических библиотек, контейнеров, парсеров. Все это уже готово и отлажено. Программисту остается реализовать конкретную задачу + интерфейс. Грубо говоря, сложить 2+2 я смогу на любом языке. А ведь еще для удобства может понадобиться разработать скажем нестандартный выпадающий список для редактирования полей таблицы, чтобы там выпадал не список строк, а скажем календарь, дерево для выбора пути или еще что-то. Добавлено А теперь отдохните и помедитируйте над статистикой: http://marketshare.hitslink.com/report.aspx?qprid=2 Linux сливает даже Win98. Добавлено А это особенно занятная таблица: http://marketshare.hitslink.com/report.aspx?qprid=5 |
|
Сообщ.
#4745
,
|
|
|
|
Цитата Smike @ OK, раз пошла такая пьянка, пошли до конца? 1) Какую сделать библиотеку? DLL, OCX (ActiveX)? Какие из них питон кушает? 2) Как в Питоне, если таковое возможно, легко импортировать ActiveX-компонент. 1) DLL ! Надо больше инфы по этому вопросу - глава "Building C and C++ Extensions on Windows" из подраздела "Extending and Embedding the Python Interpreter" проекта "Python Documentation" автора Guido van Rossum из Python Software Foundation. По поводу Delphi разницы не будет никакой с учетом того что сказано в Мане. А насчет библиотек (OCX (ActiveX)) не уверен (так как на Python for Windows не работал и расширение Python для Windows тоже не крутил) но думаю что с OCX фокус не пройдет... Цитата Smike @ Я люблю использовать такой подход: XML-биндинг (а с этим как в питоне?) + VirtualTreeView. Всмысле? C XML в Python все отлично! |
|
Сообщ.
#4746
,
|
|
|
|
Цитата best_lamer @ Всмысле? C XML в Python все отлично! А биндинги как? К примеру есть у меня XML с табличной структурой, я делаю для него биндинг, в результате получаю ряд интерфейсов. Ну например: ![]() ![]() <root> <row field1="1" field2="2" field3="3"/> </root> В результете, чтобы получить значение Field3 мне нужно будет написать: ![]() ![]() IXMLRoot[RowID].Field3 Цитата best_lamer @ 1) DLL ! Аха! Вот представляю я количество работы по переводу кода событий на использование с DLL. А также огромный overhead. С ActiveX было бы проще, практически любой VCL-компонент легко портируется в ActiveX, потому что класс компонента является интерфейсным. |
|
Сообщ.
#4747
,
|
|
|
|
Цитата Smike @ А ведь еще для удобства может понадобиться разработать скажем нестандартный выпадающий список для редактирования полей таблицы, чтобы там выпадал не список строк, а скажем календарь, дерево для выбора пути или еще что-то. Ты утверждаешь, что это можно сделать только в Delphi/легче всего сделать в Delphi? Так вот: я тебя сразу же разочарую: легче всего это сделать в Swing. Цитата Smike @ RAD-программирование практически не предусматривает разработку математических библиотек, контейнеров, парсеров. Это ты правильно заметил: RAD вообще своей целью не имеет создание библиотек ![]() Цитата Smike @ Программисту остается реализовать конкретную задачу + интерфейс. Неужели дельфисты считают, что интерфейс нужен всегда и обязательно, причем самое любопытное, что под словом "интерфейс" у них подразумевается иключительно окошечко с кнопочками. красивыми надписями, тултипами, тулбарами, статусбарами и прочей лабудой. А вот если мне надо по-быстренькому слепить web-интерфейс для, скажем, администрирования базы постгреса (чистить определенные таблицы и пр) -- мне что, тоже брать дельфю и ****ццо, пися на ней, фактически, CGI? Неужели Smike никогда не писал ничего сложнее обертки над системной функцией удаления директории/переименовывания файлов, что он не понимает, что действительно сложная задача обычно сложна в алгоритмическом плане и для скорейшего ее решения используют уже готовые отлаженные блоки, реализующие определенную функциональность? Вот это и называется RAD. А интерфейс к грамотно спроектированному приложению, пардон, любой старшеклассник напишет. Там «все уже украдено до нас». Добавлено Цитата Smike @ А биндинги как? К примеру есть у меня XML с табличной структурой, я делаю для него биндинг, в результате получаю ряд интерфейсов. Знал бы ты lisp, ты бы даже постеснялся тут о биндингах распространяться. Нашли, блин, достижения мировой цивилизации. Кстати, думаю подобный «биндинг» реализуем с помощью шаблонов на C++. |
|
Сообщ.
#4748
,
|
|
|
|
Цитата Smike @ А биндинги как? К примеру есть у меня XML с табличной структурой, я делаю для него биндинг, в результате получаю ряд интерфейсов. Источник тот же. Цитата best_lamer @ "Python Documentation" Раздел Python Library Reference подраздел Structured Markup Processing Tools Smike ты ЭТО имел в виду? Цитата 13.5.3 Example The following program defines three handlers that just print out their arguments. import xml.parsers.expat # 3 handler functions def start_element(name, attrs): print 'Start element:', name, attrs def end_element(name): print 'End element:', name def char_data(data): print 'Character data:', repr(data) p = xml.parsers.expat.ParserCreate() p.StartElementHandler = start_element p.EndElementHandler = end_element p.CharacterDataHandler = char_data p.Parse("""<?xml version="1.0"?> <parent id="top"><child1 name="paul">Text goes here</child1> <child2 name="fred">More text</child2> </parent>""", 1) The output from this program is: Start element: parent {'id': 'top'} Start element: child1 {'name': 'paul'} Character data: 'Text goes here' End element: child1 Character data: '\n' Start element: child2 {'name': 'fred'} Character data: 'More text' End element: child2 Character data: '\n' End element: parent |
|
Сообщ.
#4749
,
|
|
|
|
Цитата linuxfan @ Так вот: я тебя сразу же разочарую: легче всего это сделать в Swing. Уговорил, давай на примере. Берем задачу, делаем каждый по-своему. Цитата linuxfan @ что под словом "интерфейс" у них подразумевается иключительно окошечко с кнопочками. красивыми надписями, тултипами, тулбарами, статусбарами и прочей лабудой Сказал это ТЫ, а не Я. Кто из нас дельфист? Кстати, ты правильно заметил, в качестве интерфейса может еще подразумеваться веб-интерфейс. Может быть еще обыкновенный интерфейс, реализующийся классом, программный интерфейс компонента, библиотеки. Но к чему это тут? Раз зарыто все это где-то глубоко в коде.Цитата linuxfan @ действительно сложная задача обычно сложна в алгоритмическом плане и для скорейшего Ах вот куда ты клонишь! Так чем мне питон в данном случае поможет? Или там классы - золотые, модули - серебрянные, а переменные - бронзовы? Я же оцениваю среду программирования по совокупности факторов, начиная от алгоритмической и вычислительной мощи, учитывая объектно-ориентированную модель ну и заканчивая возможностями и простотой построения интерфейса, построения нестандартных элементов управления. Причем последний фактор только по счету последний, но место занимает чуть ли не главное. К примеру в Gnome/GTK или QT мы не видим никакого подобия VirtualTreeView, DevExpress, Tb2k/TBX, TNT, TRichView. А между прочим, раз уж речь зашла о "всем остальном кроме пользовательского интерфейса", то VirtualTreeView позволяет легко "отвязаться" от GUI, поскольку изначально является виртуальным, данные непосредственно не добавляются. Настоящая "обертка" над кодом, а не его основа, как это зачастую бывает с стандартными деревьями или списками. Я уже приводил пример с XML-биндингами.Цитата linuxfan @ А интерфейс к грамотно спроектированному приложению, пардон, любой старшеклассник напишет. Чтобы раз и навсегда прекратить спекуляции по этому поводу я последний раз повторяю: под разработкой/проектированием интерфейса мной подразумевается не кидание кнопок на форму и красивая их расстанока, а грамотно разработанные элементы управления, обеспечивающие как раз независимость основного кода от интерфейсного и в то же время упрощающие пользователю работу. Например, как вот сделана адресная строка в Висте. Очень хорошее и удобное решение из разряда "All-in-one". Ох не уверен, что старшекласник это осилит. Причем моя неуверенность основана не только на предположениях, но и на опытах проведения собеседований с выпускниками вузов. Цитата linuxfan @ Кстати, думаю подобный «биндинг» реализуем с помощью шаблонов на C++. Мы верно друг друга не поняли. Язык программирования тут не при чем практически, биндинги реализуются MSXML Parser. Да и вообще странный какой-то подход, биндинги делать на лиспе, интерфейс на жабе. Добавлено best_lamer, ты привел пример не биндинга, а парсинга. Где возможность обращаться к однотипным элементам по индексу и полям интерфейса, а не по имени? |
|
Сообщ.
#4750
,
|
|
|
|
Цитата Smike @ Язык программирования тут не при чем практически, биндинги реализуются MSXML Parser. Ну не в runtime же. Все равно тебе нужен XML файл определенной структуры, для которого тебе MSXML сгенерирует описание COM объекта, после чего ты сможешь использовать этот объект в своем приложении. Или я неправильно понимаю? Добавлено Цитата Smike @ Например, как вот сделана адресная строка в Висте. Ну так опиши хоть примерно, как же она там сделана. |
|
Сообщ.
#4751
,
|
|
|
|
Цитата linuxfan @ Ну не в runtime же. Смотря что. Биндинг генерируется/пишется во время разработки, а валидация под биндинг происходит в рантайм. Цитата linuxfan @ Или я неправильно понимаю? Вроде правильно. Причем тут тогда лисп? Цитата linuxfan @ Ну так опиши хоть примерно, как же она там сделана. http://www.samspublishing.com/articles/article.asp?p=486506&seqNum=6&rl=1 |
|
Сообщ.
#4752
,
|
|
|
|
Цитата Smike @ best_lamer, ты привел пример не биндинга, а парсинга. Где возможность обращаться к однотипным элементам по индексу и полям интерфейса, а не по имени? Smike ОНО ? |
|
Сообщ.
#4753
,
|
|
|
|
Читал года три назад, с буиаги, подпись естественно уже не помню. Речь кажется шла о поддержке новых драйверов для звуковушек. |
|
Сообщ.
#4754
,
|
|
|
|
Цитата Smike @ 2) Во-вторых свобода действий, я не привязан к конкретному инсталлятору, могу делать в нем что угодно, записывать конфигурационные файлы, создавать базы данных, регистрировать библиотеки/сервисы, чтобы не заставлять пользователя делать это все вручную. Для этого есть скрипты вроде post-install, pre-install, post-uninstall и pre-uninstall и подобные. Зачем заставлять пользователя нажимать на кнопки? Цитата Smike @ В Линуксе очень активно развиваются программы на транслируемых языках, как жаба и питон. Тоже не от хорошей жизни. Значит, есть или пишется интерпретируемый язык с виртуальной машиной, как у жабы, или транслятором. Под него пишется полезный софт. Транслятор начинают портировать/встраивать в различные дистрибутивы. Просто на них удобнее программировать. Пример уже был: Imagemagick vs Delphi в задаче об добавлении рамки к картинке, генерация OpenDocument. Подробности есть в The Art of Unix Programming, chapter about minilanguages. ЗЫ. Не от хорошей жизни в винде появился PowerShell, он же монад, он же аспен. Цитата Smike @ ОК, к чему еще? RAD-программирование практически не предусматривает разработку математических библиотек, контейнеров, парсеров. Все это уже готово и отлажено. Программисту остается реализовать конкретную задачу + интерфейс. Грубо говоря, сложить 2+2 я смогу на любом языке. А ведь еще для удобства может понадобиться разработать скажем нестандартный выпадающий список для редактирования полей таблицы, чтобы там выпадал не список строк, а скажем календарь, дерево для выбора пути или еще что-то. RAD === Rapid Application Development, а не Rapid User Interface Development. |
|
Сообщ.
#4755
,
|
|
|
|
Цитата amk @ Читал года три назад, с буиаги, подпись естественно уже не помню. Речь кажется шла о поддержке новых драйверов для звуковушек. Для буквально всех дистров под которые существует apt задача обновления системы сводится к банальным нескольким строчкам ![]() ![]() apt-get update#Получить обновлённые списки пакетов apt-get upgrade#Произвести обновление apt-get dist-upgrade#Обновление системы в целом Все! Все бооольшая и жирная точка. ЗЫ Запускать комманды надо в консоли... и скорее всего от рута... если это имеет для вас какое то значение. |