подайте на пропитание бывшему стороннику Eclipse RCP

Hеожиданно попросили описать платформу Eclipse RCP, так как не большой из меня техникал врайтер, напишу пару историй их жизни :)

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

Ситуация была классическая для ентерпрайза, вот вам иксэмэли-дээсэли выдайте юай. Тут на помощь приходят плагины-бандлы -- набираем по всему миру компонентов, презентейшен уровень - перспективы, вьюхи-едиторы, менюшки и тулбары, екстеншн поинты с кучей полезностей -- команды, хендлеры, темы и такое прочее. Все что нужно для построения богатого гуями ... Eсlipse IDE :)

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

Вот из командировки по миру возвращается юзабилити експерт, привезя багаж данных собраных от гей-директоров рекламных агенств до лесников в норвежских лесах он выдает что чекбоксы должны иметь по 3-4 состояния, текстовые поля по мгновению ока превращатся в набор радиобаттонов, комбобоксы содержать большие таблицы и показывать леснику дерево, а арт-директору хуй, таблицы должны быть расширены всеми этими компонентами и еще могли превращатся в красивую радугу. Так как нативной виндо-макось радуги еще не придумали, вы переходите на лоулевел рисования не gc. Благодяря этому все известные методы тестировани юай компонентов тоже переходят, в другой мир. красим точку х,у в красный, ведем туды мышь, и проверям действительно ли там красный. Полезно.

Но все-таки стандартные то компоненты есть, они красивы и отзывчивы ибо нативны. А вы круто нафигачив лейаутик через 2 дня получаете 10 багов от адептов макоси, и после высушивания за написание говна, жава-врайт-ванс-ран-везде-программист обращается к платформе с вопросом Platform.getOS(). Доходит до нерабочей связки update-redraw и мак начинает переририсовывать при каждом update, коих напедалено тысячи, свойства постоянно меняются, а вы уходите в многомесячный дебаг и придумывание перерисовок попиксельно, проект растет, компонеты в бандлах становятся значимее и вообще смысл бандла пропадает, потому что без него у вас ничего не будет работать, а никому другому он больше не нужен.

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

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

Плавно переходя к екстеншен поинтам, которые очень круты по дизайну, но получается что там темы не годятся, ненадобно вашему юзеру такое как в IDE, там анимация квадратиками не та, и в радугу ниче не превратишь, нужно расширить. А весь код в интернал пакетах, причем 2 реализации для кода и для декларативных изменений в XML. XML могут найти только несколько человек, а остальные не верят в это и пишут в коде, и уже ваша команда быстро размазывает все по бандлам, которые потом естественно никому кроме вас не нужны, а вы опять же без них никуда.

Каждый подход еще идет в комплекте с двумя реализациями, текущая и легаси. Легаси несут потому что по новому то написали, но не все. Большое комунити пишет гавнокод с такой скоростью, что пакеты становятся легаси еще до того как их кто-то использовал. Весь богатый UI идет в крутой связке jface, который толкает вас адоптить свои модели в его модели, и вы обретаете прекрастный набор фекторей по адаптации, прячете эти маркеры и фектори где-то в хмлях где их больше никто не найдет :)

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

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

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

Тестирование этого богатства, чистый АДЪ. Пришлось переписать swtbot, нанять и обучить специальных людей для саппорта тестов и все равно не получилось выйти на уровень мальенкого набора тестов, которые бы на 100% работали и сигнализировали о регрессиях. Тесты сами по себе выросли в систему аналогичною тестируемой и так же не работали  :) В далеком 2002м в интеле мне удалось недельку пописать тесты для автоматического юай тестера на с++, свтботу до того внутреннего интеловского не дотянуться никогда. 10 лет прошло.

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

Есть свободные 3-4 года? попробуйте написать богатый клиент, не похожий на IDE в котором будете писать. А потом можете попробовать устроится куда-то на работу и на собеседовании объяснить чем вы занимались :)

Стал бы я писать рич клиент на этой платформе или вообще на яве? Нет. Писать за свои деньги псевдо кросс-платформенные приложения - это безтолково дорого, писать за чьи-то - его же и обманывать. Наябувать непедагогічно. Макарєнко казав: "Якщо не можеш - то так і скажи, а не наябуй."

быстрый кроль

Либа для кроля https://github.com/kakaranet/white_rabbit.

Таймеры


  1. Время инциализации для пользователя
  {T, _}= timer:tc(nsm_users,init_mq, [Me#user.username, Groups]),
  ?INFO("Init:  ~p~n", [T])
  
      1.1 Время открытия 
         {T1,{ok, Channel}} = timer:tc(nsm_mq,open, [[]]),
        ?INFO("Opened: ~p", [T1])
      1.2 Время создания ексченжа
         {T3, ok} =timer:tc(nsm_mq_channel,create_exchange, [Channel, UserExchange,ExchangeOptions]),
         ?INFO("Created OK, ~p", [T3])
  
      1.3 Время бинда по ключам 
         [begin
             {T2,_} = timer:tc(nsm_users, bind_user_exchange, [Channel, User, RK]),
             ?INFO("Exchange binded: ~p ~p", [T2, RK])
          end 
        || RK <- [rk([feed, delete, User])|Relations]]

 2. Общее время создания 2048 юзеров
  {Time, _} = timer:tc(nsm_db, create_tour_users , [1,2048,["kakaranet"]]),
  ?INFO("Total: ~p~n", [Time])

Копипаста лога для среднестатистического юзера:

{rabbit,"RabbitMQ","2.7.1"}


INIT MQ: "ezgi_mestafa" ["kakaranet"]
Read more...Collapse )

Init: 43264 (0.043264 секунды)

Тotal: 175781200 (2.93 минуты)

{rabbit,"RabbitMQ","3.0.0"}

INIT MQ: "yusuf_yazici"["kakaranet"]

Read more...Collapse )

Init: 3342401 (3.34 секунды)
Total: не дождался. хватило минут на 40.

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

Видно что на 2.8-3.0 каждый ключик имеет значение, время его бинда приблизительно такое же как всех ~40 ключей на 2.7.1

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

опять с synrc.com

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

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

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

Сел в самолет начав новый этап прямо в свой день рождения. synrc.com кардинально изменился со времени его открытия, нужно менять и себя.

Попав из мира СВТ контролов-трансформеров и заклинаний в плагин.хмль в кучу новых названий и сокращений сразу подумал что это можно и ниасилить. Но так как есть доска и на ней можно нарисовать квадраты, все прояснилось практически сразу. Зафоркав себе каких-то проектов на гитхабе и прочитал весь кот за час. В эрланге писать многобукв оказалось западло и мне это понравилось.
Болеее того в ОТП уже вообще все написано, нужно просто включить это себе в релиз. Но можно и не включать, там тоже написано по 3 строчки которые от нехер делать и что-бы не забыть буквы можно переписать себе в модуль. Вообщем пост выше про маленький фейсбук родилась именно в попытке рассказать мне че на квадратах нарисовано.

2 недели читал жжшечку, постил в г+ фоточки со стамбульскими котиками и написал 1 строку кода, которая джойнит ноды райаяка в кластер. За эту строчку был выставлен и заапрувлен счет 1000 баксов и можно было дальше спокойно лежать на балконе и хавать пахлаву.

Строка кода в эрланге - 1000 долларов.

synrc.com организация спецефическая и большую часть времени не делаем мы нихера. Нихера не делание в Стамбуле, это как тренировка перед нихеранеделанием в Калифорнии. Тренировки очень нужны, потому что иногда начинается паника, и пол проекта переписывается с нуля. эрланг жеж. изи-пизи. но ведь можно было и ничего не делать, паника она быстро проходит если ее не кормить.

Как-то делать было настолько нечего, что решили развлечься мониторингом системы. По олдскульному начали писать на ASN.1 и траверсить СНМП таблицы. Сделать это функционально изи-пизи, 1-на функция на 3 строки, снмп реализована в ОТП как агент так и монитор, пишешь условия в list comprehension и оно работает. Как подумал так и записал, и оно работает! простой вебсервер 3 строки и все завелось и в интернетик вещает, и не зайдет на эту систему столько человек что-бы этого вебсервера не хватило, даже если вы все сейчас туда поломитесь смотреть на квадраты.
тут Макс пол дня убил на то чтобы поставить какой-то дебильный миб браузер, и написать пост в жж. Работаем, если работаем, только ради постов в жж, если про сделанное нельзя написать хотябы скромный пост - нахуй! :) для теста там было наструячено еще немного жаваскрипта с таймерами, но это уныло. нужно взять вебсокет семпл, написаный Джо в качестве небрежной записи в бложик и тогда и вебсервер будет не нужен.

Вообщем приехал домой написав всего пару строк, поемши пахлавы и нафоткавшись с котиками. Нужно думать как сдавать отчеты тем, у кого доходов нет :) А ну да обещанный сверху жавашный полугодичный бонус - купил вайо З, не густо, в строках эргланга даже считать не хочу.

Но тем не менее у нас море работы. Заходите в synrc.com - поработаем :)

there is no gravity - the world sucks

анкеты 21-го века. а я на пункте 3 завалился



пока не найдецо нормальный андроид клиент жежешечьке, буду писать в твитер. люто бешено заебует фотку сливать в пикасу заходить потом в этот нихуя не m. интерфейс и редактировать меседжи. azadorozhnii :)

купил безсмысленный домен, теперь думаю хуйли с ним делать :)

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

очень похоже на трансформер. и главного тест пилота загубил..



а меня сбил хуй на прокатных 20 долларовых лыжах :)










в жжшечку за 5 евро

вроде и без инета в горах хорошо, но почему-то пошел срыв :)
сам факт того что в домиге в горах находяться 2 вайфаечки конечно плюсует французам в карму наверное поинтов 100, ну а то что парольчик 5 евро 24 часа должно было бы минусовать, но хуй их знает - тысячелетние традиции.

парочку мобильных фоток выложил, с зеркалки заебусь разгребать, а когда разгребу, будет не актуально, деньги на ветер эта ваша фотокамера :)

правда мобильность подтверждает фото пальца в левом верхнем углу, кто придумал размещать так камеру на смартфонах тоже не известно :)

на ковре на чемоданах



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

для спуска с особо стремных горок доска оказываеться не особо нужна, главное развивать ягодицы :)

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

заметили на стоянке 3 новых i35тых, подумал что единщики поумнели, поднялись и зашибли кучу бабла.
оказалось все банальнее, просто сто банков мира стали выдавать кредит "без прописки при условии работы в Киеве"

овощь 2.0 DOHC, 2WD, 5-мех. вообще без нифига, только с ремкомплектом на случай прокола колеса - 213 000.

самая дешевая ставка 9,45% при условии кредита на год и 20 процентного взноса.
тихонько как бонус обязаловка в УСГ на 2,99% и 7,03%, итого 19,47.

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

а от 3 до 5ти лет вообще страшные цифры в 20-22 процента, за 5 лет овощь обходиться владельцу в 630 000 грн., люди на кайенах вообще нищеброды по сравнению с ботанами на и35 :)

а если 2.0 CRDi VGT / 4WD / 6-авт. то это 314 000 + вся ебаная математика выше :)

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

по немногу идем к успеху

Если собрать 2.2.1 со штуками выдранными из 2.3 и из аштисишного сенса, то можно жить. Но стоит это недели жизни как минимум :)
но с батареей полный фейл и решить не получиться никак, объективно 2 сутки протянет если все отключить и вообще к нему не подходить. желание включить жпс минут на 20 сокращает время на сутки моментально, как можно это признать фоном года? пресса как всегда в своем желтом репертуаре :)

с новым годом

на дискавери-сайенс идет работа не смотря на все сопли, хороший канал, есть что посмотреть

быдло жпс :)

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

дезайер - фейл

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

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

писец



по ссылке куча соплей в коментах, да и сам пост переполнен соплей, а фотографии можно посмотреть.
gorshkov-sergey.livejournal.com/12783.html

повод купить ойфон

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

ондроед

чет я не увидел смысла в том что оно опенсорс. нахуя? чтобы тысячи индусов скачали себе сорц и делая вид что что-то понимают пытались напарить всем свою сборку в которой вообще нихуя не работает?

какой смысл в роме если к нему прилагаеться километровая портянка expected to not work. я наверное дибил, но я не понимаю нахуя это вообще предлагать устанавливать людям, оно ж бля не работает (not work) :)

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

Жорж

Знатно побегал что-бы сфотографировать Жоржа. Человек вообще не останавливается ни на секунду.


назад