LINUX.ORG.RU
ФорумTalks

Как написать приложение для GNOME

 ,


1

1

Задолго до персонажа из Рунета с именем евангелиста существовал (и продолжает существовать, хоть и в гораздо более унылом виде) Linux Hater, который ненавидит Линукс и убеждает остальных делать то же самое. На самом деле его, по всей видимости, несколько человек, но это неважно. Я решил запостить перевод одного из его ранних постов.

Это баян 2008 года, то есть времён GNOME 2, но он большей частью ещё актуален. Или, возможно, стал ещё более актуален, чем раньше.

Больше я его переводить не буду, разве что про KDE, может быть, переведу. Или нет.

Итак: «Как написать приложение для GNOME».


  • Возьмите за образец какое-нибудь нормальное приложение для другой платформы (Windows, Mac, KDE — лучше всего Mac). Самый шик — повторить функционал, который реализован уже в трёх приложениях на GTK+, но которые не хотят интегрироваться в Gnome.
  • В гназвании должна быть буква «g». А ещё лучше «gn». Если получится сочетание «gno», «gna» или «gnu», это просто гносхитительно, такую программу стоит установить уже за одно гназвание. Убедитесь, что из названия вообще не понятно, что эта программа делает. Пользователи не должны знать, как произносить «g»: как [г], как [дж] или никак.
  • Пусть программа использует не менее двух объектных фреймворков. Лучше три. Помните: «O» в слове «GNOME» значит «объектный» (от переводчика: GNU Network Object Model Environment). Выбирайте: Corba, Orbit, Bonobo, D-Bus. Один из выбранных фреймворков обязательно должен уметь работать через сеть, только ни в коем случае не используйте его через сеть.
  • Напомните себе, что объектно-ориентированное программирование на чистом C — это не так уж и плохо. assert(gtk_no_really_its_not_so_bad). Еще вспомните, что GTK+ намного лучше Qt, потому что код GTK+, в отличие от кода Qt, не пишется никаким жадным коммерческим предприятием. Так что у GTK+ свободность повышена, а потом, там в названии «+».
  • Наделайте врапперов под все существующие языки программирования, только убедитесь, что они все кривые. Настаивайте, чтобы в дистрибутивах каждый враппер запаковывали в отдельный пакет.
  • Объясните не менее, чем трём другим программистам, что glib не имеет прямого отношения к GNOME. Потому что им интересно.
  • Не забудьте иконку из Tango!
  • Ваша программа должна собираться под Windows, но выглядеть там как ЖОПА.
  • Сделайте список всех фич, которые хотите реализовать.
  • Выкиньте 90% из них. Потому что их кодить слишком сложно. Но только никому этого не говорите, а объясняйте, что они нормальным пользователям не нужны.
  • Из оставшихся реализуйте 2%. Ещё 8% спрячьте в gconf. Хорошенько спрячьте.
  • В интерфейсе программы должно быть не больше четырёх кнопок.
  • Приложение должно зависеть не менее чем от четырёх библиотек с «g» в названии. От этого у него гномовость повышается.
  • Не пользуйтесь Mono — это сифилис, убиващий Gnome, и нельзя заражать им других пользователей. Нет, стоп, писать на Mono можно и нужно, от этого подуктивность вашей работы повысится в несколько раз. Нет, стоп, не надо писать на Mono, а то какой-нибудь свободоё... свободолюбивый дистрибутив, который никому не нужен, никогда не примет вашего софта.
  • Воспользуйтесь модулем, который в скором времени устареет. Тогда его авторы передумают и объявят, что к концу президентства Обамы они почти договорятся, когда этот модуль начнёт устаревать.
  • Если получилось говно, ничего страшного — по крайней мере, Human Interface Guidelines вы соблюли.

    Кстати, я знаю, что вы все блокируете мою сраную рекламу AdBlock'ом (или подписываетесь по RSS, так как я не могу туда рекламу запихнуть). Так хоть плюсаните меня на Digg, козлы мелочные.

    >>> Оригинал
    >>> Как написать приложение для KDE (англ.)
    >>> Как сделать сайт свободного софта — руководство для чайников (перевод)
★★★★★

Последнее исправление: CYB3R (всего исправлений: 3)

Неофициальный спонсор поста: JB. И неважно, что сам автор сначала предыдущий вброс свой удалил по причине его унылости, а потом пересоздал снова. Теперь вторая серия :}

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

пруф или не было

Предлагаю рекурсивную саморасшифровывающуюся расшифровку:
GNOME — GNOME

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

пруф или не было

На Википедии написано, что отменили, но дркгих пруфов нет, так что отредактировал

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

Почему не повысил актуальность с помощью s/gconf/dconf/g :-)?

Тогда бы кто-нибудь пришел и спросил, почему упоминания Bonobo не выкинул.

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

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

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

Про кеды неинтересно, я рассчитывал на что-то лучшее.

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

Для Ъ

  1. Find semi-successful open source app
  2. Convince yourself that writing C++ is the ultimate form of masturbation, and that learning Qt is better than spending time with your girlfriend, because it's so beautiful
  3. Remind yourself why MOC doesn't suck.
  4. Take the name of the app, sed /[cg]/k/, check that you didn't end up with three k's in a row. If there are no k's, stick a k on the front.
  5. Think of every user-facing function your app could provide
  6. Foreach function: create an abstraction layer that supports at least 3 other backends poorly
  7. Foreach function: create toolbar button
  8. Foreach function: create menu item
  9. Make sure it has split windows and tabbing and support for KParts. If you can't figure out a UI, 8]just mimic a Windows one.
  10. Make sure it uses Phonon, and KAddressBook. And a dockable Terminal.
  11. NEVER use a library with a g in the name. EVER.
  12. Publish on KDE-Look.org
  13. Promise everyone that you're going to port to Windows, then don't
  14. Once every few years, use your toolkit rev'ing as an excuse to start over from scratch.
proud_anon ★★★★★
() автор топика
Ответ на: Для Ъ от proud_anon

Спасибо.

Zhbert ★★★★★
()

ну так гоном3 ж полностью по этим советам делали!

thunar ★★★★★
()

Как написать приложение для Windows.

* Решите актуальную проблему, которой нет в стандартном функционале. Например, cd ejector. Или любую другую, на которую есть контрол от delphi, обязательно пиратский.

* Если вы прочитали одну книжку по delphi, поставьте цену в 10 долларов. Если две книжки - 20 долларов. Если вы ничего не понимаете в программировании, но читаете журнал forbes - поставьте цену в 790 долларов.

* Никогда не используйте стандартные темы шрифтов, и цвета. Высший шик - использовать шрифты, которых нет ни у кого, и комбинировать темы цветов так, чтобы все, использующие инверсные цветовые схемы видели чёрный цвет на чёрном фоне, или белый на белом.

* С помощью спамеров оповестите о выходе вашего приложения 25000 форумов.

* Никогда не проверяйте, как ваша программа работает в локали, отличной от latin1. 127 символов хватит на всех! Если программа падает при установке в каталог с русскими буквами, вы сразу становитесь в один ряд с такими грандами как Adobe, и другими пользователями InstallShield.

* Не добавляйте все .dll файлы. Оставьте один какой-нибудь на откуп пользователю, пусть немного развлёчётся в его поиске.

* Сделайте программу удаления так, чтобы удаляла ещё и некоторые нужные библиотеки и файлы. Если они не оценили ваш шедевр - пусть мучаются!

feofil
()

Да, фигня вопрос. Что, трудно скиптом написать? Можно на перле, можно на баше, при большом желании можно и на пых-пыхе, хотя это слишком сурово.

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

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

Может быть, это был тег ALT?

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

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

а я все больше поражаюсь количеству обитающих здесь дартаньянов..

Может быть, это был тег ALT?

теперь все исчезло (блджд), но что интересно в истории сохранилось - см. скриншот

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

Это, видимо, и был тэг alt. Потому что отгружается пустая картинка. И она не отгрузилась, оставив только тэг.

feofil
()

GNOME 3 на дворе.

  • Напишите приложение на JavaScript. Это повысит вашу продуктивность. Но ни в коем случае не пользуйтесь продуктивностью. Максимум 4 кнопки. В релиз разрешается добавить одну кнопку и две удалить.
  • Если есть приложение на Gtk+ 2, оставьте, пользователи гнома не бросают своих героев. Ведь есть одна или две темы которые выглядят одинаково.
  • Новый гном лишь маскируется под DE для домохозяек. По настоящему это десктоп настоящего линуксоида, который вооружен vim и знанием CSS
  • Для локализации названий приложений выберите самое смешное слово.
  • А вообще лучше напишите расширение для гнома. Всем очень нужно передвинуть часы вправо на 2 сантиметра, а такого расширения нет. Нет, уже есть... Тода напиши расширение чтобы двигать часы влево.
  • 21 век на дворе. Интегрируй приложение с Google и Facebook. Достаточно добавить поле ввода для имени пользователя и пароля. Нигде больше в приложении Google и Facebook упоминаться не должны.
  • В каждом приложении должна быть изюминка. Лучше всего если виджет активируется несколькими движениями. Любой пианист на планшете это сделает легко и непринужденно всего тремя аккордами.
  • Приложение должно поддерживать планшеты. Н тестировать на планшете не надо, все равно там не Gnome 3, а Android
vertexua ★★★★★
()
Ответ на: Для Ъ от proud_anon

KDE

Где прыгающий курсор и системные звуки через каждые две секунды? А как же меню из восьми пунктов, которое выезжает с мерцанием при наведении на каждый пиксель?

vertexua ★★★★★
()

Как написать операционную систему

  • Придумайте название. Помните, что броское название - половина успеха. Желательно, чтобы название содержало одну или несколько букв «Х» (икс) и намёки на сверхновейшие технологии.
  • Потыкайте курсором мыши во все известные ОС (ну или те, что сможете поставить в Virtualbox) чтобы убедиться, что они не соответствуют вашим грандиозным замыслам. Те ОС, что встретят вас голой консолью, тыкать не нужно, ибо ОС двадцать первого века не должна встречать пользователя голой консолью.
  • Откройте текстовый редактор и наберите большими жирными буквами слово «Концепция». Задумайтесь на несколько минут.
  • Наберите пафосный текст, описывающий, чем именно ваша ОС будет отличаться от остальных. Используйте как можно больше слов типа «нейро*», «ИИ», «3D», «интеграция», «кибер*» и так далее.
  • С этой минуты загадочно смотрите на окружающих с плохо скрываемым ощущением собственного превосходства. Перед сном обязательно уделяйте пару минут проектированию вашей ОС в вашем воображении.
  • Спустя пару недель счастливых размышлений начните осторожно подбираться к её практическому воплощению.
  • Откройте книгу по языку программирования «ассемблер». Ваша ОС просто должна быть написана на ассемблере, потому что С, не говоря уж об остальных языках - тормозное дерьмо, неэффективно расходующее ресурсы. Ваша ОС должна быть сверхбыстрой, поэтому - только ассемблер.
  • Спустя десять минут бессмысленного проговаривания в уме текста книги ощутите холодок, ползущий по спине. Закройте книгу по языку программирования «ассемблер».
  • Откройте дискуссию с самим собой, по итогам которой примите резолюцию, допускающую использование языка С в создании вашей ОС. Ведь большинство ОС написано на С и они работают довольно быстро.
  • Вспомните, как вы неоднократно читали презрительные отзывы программистов о так называемых «быдлокодерах», не знающих элементарных математических аспектов программирования. Усмехнитесь и скачайте несколько книг по математической логике, теории множеств, теории автоматов, комбинаторике. Чем больше книг вы скачаете, тем увереннее вы будете себя ощущать.
  • Откройте первую попавшуюся из скачанного книгу. Вдумчиво читайте её, пытаясь применить свои полученные на неделе глубокие познания тригонометрии к материалу книги. Не дожидаясь появления неприятного холодка, ползущего по спине, закройте книгу. Быстро просмотрите оставшиеся книги и оставьте их до лучших времён. Ведь вам нужно создавать ОС, а не изучать какую-то теорию ради поднятия ЧСВ.
  • Твердя о том, что в программировании всё решает практика, сядьте сразу за написание ядра вашей ОС. Но сначала вам нужно найти самый удобный и навороченный текстовый редактор для этих целей. Зарегистрируйтесь на крупном программистском форуме и разведите флейм о Лучшем Редакторе Для Программирования. Поставьте всё, что там упоминалось и сразу лезьте в настройки - такое тонкое дело, как создание ОС, не должно прерываться на устранение банальных неудобств. Приведя посредством настраивания все эти редакторы к неработоспособному виду, удалите их и откройте Блокнот.
  • Неожиданно обнаружьте, что не знаете, с чего начинать написание своей ОС. Вспомнив что-то про Танненбаума, быстро скачайте его книгу. Откройте, прочитайте несколько абзацев, заскулите, закройте книгу.
  • Несколько дней проведите в депрессии.
  • Вам приходит в голову гениальная мысль: создать свою ОС на базе Linux. Вы слышали, что ядро Linux (вы уже знаете, что Linux - всего лишь ядро, а это значительный успех для создателя ОС, можно уже говорить о том, что вы знаете устройство операционных систем) довольное гибкое и из него можно слепить всё, что угодно. Примеры: изделия всяких корпораций типа Cannonical. Но они идут по неправильному пути, лепя систему на ходу. Потому что у них нет Концепции.
  • Поставьте себе Ubuntu. Так как вам не нужны эти убогие Unity с гномами, удалите Unity с гномами. После перезагрузки тоскливо посмотрите на чёрный экран и переустановите Ubuntu.
  • Зарегистрируйтесь на linux.org.ru и задайте вопрос в Development (ведь вы создаёте свою ОС, а не просто пользуетесь Ubuntu) как настроить шрифты. С плохими шрифтами вы рискуете потерять зрение раньше, чем напишете свою ОС.
  • После трёхстраничной ругани матом обнаружьте, что вы забанены.
  • Несколько дней проведите в депрессии, читая linux.org.ru из-под анонимуса.
  • Из неоднократных заявлений лоровских регистрантов про мощь сообщества сделайте согревающий вас вывод: ваша ОС может быть создана сообществом, стоит только раскрыть им тайну Концепции. Спешно подготовьте pdf с уже набранным ранее текстом и быстро и качественно переработанными из скриншотов иллюстрациями.
  • Зарегистрируйтесь на linux.org.ru и создайте тему в Development, скопипастив в неё содержание текстового файла по имени «КОНЦЕПЦИЯ» и дав ссылку на созданный pdf.
  • Предельно корректно и с оттенком превосходства отвечайте на издевательские вопросы, не смущаясь при виде насмешек над вашими грамматическими ошибками.
  • В перерывах между постингом на linux.org.ru потихоньку собирайте свою сборку Ubuntu с Уникальным Набором Софта и потрясающим артворком в виде трёхмерного названия вашей будущей ОС на обоях. Помните: эта сборка - прообраз вашей будущей операционной системы!
Kindly_Cat
()
Ответ на: комментарий от Kosyak

Потому что над KDE нормально посмеяться не получается, вот и приходится высасывать из пальца :)

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