Нужен ли форум по PEAR?

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Так, господа. Я щас в pear-dev продвигаю замену модуля IT[X] на мою версию и назначение меня его maintainer'ом. Создайте пожалуйста, всенародную поддержку, кто может. :D
 

.des.

Поставил пиво кому надо ;-)
2Sad Spirit а твою версию.. где можно посмотреть ? :)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
цитирую своё письмо в pear-dev
Several months ago I wrote to this list proposing my private fork of these
template classes for merging:
http://marc.theaimsgroup.com/?l=pear-dev&m=103242445816080&w=2

Well, at that time the fork had some problems:
1) It was one file instead of IT.php/ITX.php
2) The comments were in Russian
3) Callback functions were not implemented.

This time I am back with a drop-in replacement for PEAR's HTML_Template_IT[X].
As the development of IT[X] is effectivelly stalled and its current maintainer
wasn't interested in new features back then (see the archives), I propose
replacing the current code in PEAR repository with my work. I am also willing
to become its developer (or a maintainer, if the current one resigns).
I must point out that making a patch against current sources was impractical,
as the classes are almost completely rewritten.

The classes are available for review:
http://158.250.10.119/pear/IT.phps
http://158.250.10.119/pear/ITX.phps
http://158.250.10.119/pear/ITMod.phps (my original work, don't bother if you
don't read Russian)

They also can be dowloaded with a readme file describing new
features/incompatibilities from
http://158.250.10.119/pear/IT[X]-fork.tar.gz

here is the part of this readme:
------------------
HTML_Template_IT

1) New features and improvements:
a) Transparent caching of prepared templates. You just have to pass a second
parameter to the constructor: a directory name (the directory should be
writable for PHP). After the template gets parsed for blocks and
variables, the resultant arrays are serialized and saved into files in
this directory. The next time the template file needs to be loaded, the
prepared one is loaded instead, with a cheap unserialize() instead of
very expensive RegExp matching logic.

b) Global variables. Variables set by a function setGlobalVariable() do
not get cleared after first substitution, unlike ordinary ones, and do
not trigger "block not empty" logic (block with only global variables is
still considered "empty"). Can be used for directory prefixes, session
identifiers and the stuff like that.

c) hideBlock(): an opposite of touchBlock(). It prevents block from
appearing in the result even if it is "not empty".

d) The source was cleaned, PEARified and optimised. Inline docs were updated

2) Removed features and incompatibilities:
a) $flagCacheTemplatefile and related logic was dropped in favor of a more
generic approach, see (1.a)

b) $clearCache and $clearCacheOnParse were removed (now the engine works as
if they are always false)

c) Public functions init() and free() are removed, they were unusable
unless called from setTemplate() anyway...

d) Using <!-- INCLUDE something --> in template is no more possible. If one
needs unconditional include, he should consider joining the templates
into single file, if one needs something more useful, he should use ITX
with its addBlockfile() method.

HTML_Template_ITX

3) New features and improvements:
a) Transparent caching (1.a) also works for addBlockfile() and
replaceBlockfile()

b) Error handling war PEARified. It was completely broken in stock version
as it relied on class IT_Error from file IT_Error.php which never got
included...

c) Cleanups.

2) Removed features and incompatibilities:
a) Public functions getFunctioncalls(), setFunctioncontent(),
setCallbackFuntiontable() (sic!), getBlocklist(),
getBlockvariables(), BlockvariableExists() were removed.

b) replaceBlock() implementation is somewhat different from stock version.

c) Callback functions and caching do not mix. If you pass a second parameter
to the constructor, the template WILL NOT be parsed for function calls.
If you attempt to call setCallbackFunction() of performCallback()
afterwards, an error will be thrown.

------------------
поддержка создаётся просто... пишете в pear-dev, какие это крутые классы и насколько они круче, чем исходные.
Если здесь есть PEAR разработчики (kvn?) то они могут даже проголосовать в мою пользу... Один голос "за" уже есть, нужно соответственно ещё 4.
 

kvn

programmer
мммм...даже и не знаю, что сказать...
там такое обсуждение по этому поводу...ух...

причем мысли довольно здравые, например о BC - это действительно важно, как сказал "Christian Dickmann" <[email protected]>
Remember: IT is stable and widely used.
поэтому должен сохранятся BC.

Хотя, конечно, что то очень много агрессии со стороны lead developer-a..

Нужны аргументы. + дока с примерами, потому как если твой класс делает _все_, то, что делает IT/ITX (а это не правда, см. about BC) то стремно просто взять и закоммитить вместо того, что есть..

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

+ тесты на BC, и скорость, если твой класс действительно вставляет IT/ITX - и поддерживает все ф-ции - тогда можно о чем то говорить..

А так это похоже на типа:
У меня прога круче, она делает почти то, что делала старая прога, но она новее, и делает еще что-то..

Но здесь (как для разработчика) мешает слово "почти"..:)


П.С. Попроси сделать просто еще один класс, или суб-класс, а не заменять уже существующий...
или в этом какае то проблема?

Удачи.

П.П.С. С Вашего позволения, я пока воздержусь от голосования в ту или тную сторону по поводу данного класса. Сам его использую. Хотя по функциональности мне HTML_Template_PHPLIB нравится больше, и я к нему привык..
 

kvn

programmer
о!
Stig S. Bakken появился...:))
Nobody is named "lead developer". PA is "lead", and my perception of
his role is as a maintainer. But he still needs to be "lead" for
practical reasons.

Please take that attitude of yours somewhere else. There's enough
people who can get work done _without_ acting like total jerks. If you
want to get anywhere with this, I suggest trying to cooperate rather
than pissing people off.
:)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: kvn
причем мысли довольно здравые, например о BC - это действительно важно, как сказал "Christian Dickmann" <[email protected]>
Remember: IT is stable and widely used.
поэтому должен сохранятся BC.
Тот Dickmann пропихнул слабополезную фичу, которой только он, похоже, и пользуется. :)
А сделана она так, что практически не сочетается с кэшированием. :(

Хотя, конечно, что то очень много агрессии со стороны lead developer-a..
М@дак он... Я не первый раз патчи предлагаю, не первый раз меня с ними посылают подальше :), но первый раз --- даже не проверив.

Нужны аргументы. + дока с примерами, потому как если твой класс делает _все_, то, что делает IT/ITX (а это не правда, см. about BC) то стремно просто взять и закоммитить вместо того, что есть..

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

+ тесты на BC, и скорость, если твой класс действительно вставляет IT/ITX - и поддерживает все ф-ции - тогда можно о чем то говорить..
Блин, публичное API осталось тем же. Приватное --- другое совершенно. Были бы regression тесты --- давно бы проверили, но их-то готовить как раз и должен был "lead developer".
Доку --- берешь phpdocumentor и генеришь... Там комеентарии ко всем функциям есть.

А так это похоже на типа:
У меня прога круче, она делает почти то, что делала старая прога, но она новее, и делает еще что-то..

Но здесь (как для разработчика) мешает слово "почти"..:)
Ты мой readme читал? Все несовместимости я там описал. В осоновном они из ITX, в котором на данный момент вообще бяда...

П.С. Попроси сделать просто еще один класс, или суб-класс, а не заменять уже существующий...
или в этом какае то проблема?
Смысла нет. Два разных класса с одинаковым API в одном репозитории? А субкласс в котором все функции переписаны? :)

П.П.С. С Вашего позволения, я пока воздержусь от голосования в ту или тную сторону по поводу данного класса. Сам его использую. Хотя по функциональности мне HTML_Template_PHPLIB нравится больше, и я к нему привык..
Давай голосуй, не отлынивай! Тем более что я на твой вопрос про меню ответил. :)
Там уже трое за меня, вроде бы. :) Причём один --- агрессивно. :)
 

ForJest

- свежая кровь
Хм. Я тоже вставлю свои 5 копеек. Я в IT выловил 3 бага, о чем отписал девелоперу... Ответа нет до сих пор. Я вообще не понимаю - если это типа уже официальная часть PHP, почему нет поддержки?
 

tony2001

TeaM PHPClub
я, возможно, не слишком в тему, но все же:
> 'Cause here we have a person, who is named "lead developer", yet have done
> nothing to actually develop and is now clearly saying that he will not allow
> outside contributions from persons whom he does not like.
имхо слишком сильно сказано.
верю, что это правда, но поступать как капитан Смолетт, говорить правду в лицо и за это страдать - не самый лучший вариант =(
 

kvn

programmer
А сделана она так, что практически не сочетается с кэшированием
А чем тебе далось это кеширование? Это что - основная задача темплейт движка? Есть PEAR/Cache, Cache/Function..

о чем кстати тоже говорили в листе..

Давай голосуй, не отлынивай! Тем более что я на твой вопрос про меню ответил
ок. Просто еще не проверял "ответ на вопрос". :)

Удачи.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: kvn
А чем тебе далось это кеширование? Это что - основная задача темплейт движка? Есть PEAR/Cache, Cache/Function..
Блин, задрали. Все поп#@деть горазды, а в код никто так и не заглянул. Там же не general puprose кэширование, а элементарный алгоритм: если меняется файл A, то грузим его и перегенерируем файл B, в противном случае грузим сразу B. Такую хрень проще сделать парой строк, чем тащить с собой ещё один модуль, а потом понять, что он не умеет проверять время изменения исходного файла.
 

kvn

programmer
Все поп#@деть горазды, а в код никто так и не заглянул.
Давай не будем..

а элементарный алгоритм
и из-за этого алгоритма ты бьешь BC - круто, только кому это нужно?

Мен, ты же видел, что тебе отказали в pear-dev, по одной простой причине - Backward compatibility.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: kvn
и из-за этого алгоритма ты бьешь BC - круто, только кому это нужно?
А, то есть в код ты так и не заглянул, и readme мой не прочитал? И вообще, с каких пор добавление новых фич и исправление багов называется "бьёшь BC"?
Вот в чём там основная проблема:
>>except that the first would fuck up if 'bar' contains '$1' and the >>second one would not.
>???? not enough ????
>Well, it seems both of you does not match the problem. I have >many apps
>running with IT. These apps use preg and everything to do with >preg has
>be done. Now, drop preg, what happens ?

>That's why I'm against to drop preg ***BY DEFAULT***.

>And finally, try to be pollite and everything will go fine and fast :)

Translating this into plain English: there is a well known bug in the public package I maintain. In my private applications I have some workarounds for it. Now, I don't want to bother changing my applications, so don't want anyone to fix a bug in the package.

Am I the only one having problems with this kind of attitude?
Это мой ответ на письмо "ведущего разработчика" IT[X].


Мен, ты же видел, что тебе отказали в pear-dev, по одной простой причине - Backward compatibility.
Короче, там уже поступило предложение завести мои классы отдельным пакетом. Щас я напишу туда письмо с поддержкой этого предложения, и ты тоже проголосуешь "за", ОК? :)
 

Максим Деркачев

Guest
Если кто не в курсе, подобные "голосования" в листе pear-dev обычно наказываются баном. Там сидят серьезные сформировавшиеся люди, и им давно надоели политические баталии.
Мое мнение. Ulf Wendel (автор IT/IT[X]) - достаточно грамотный, опытный и известный программист, ему можно доверять, с ним можно цивилизованно спорить, а пробовать закидать его шапками - идея дохлая. Форк, как было сказано в листе не раз, худший из способов что-то изменить. Классы на то и существуют, чтобы их наследовать в новых классах с расширенной функциональностью. И лучше иметь пару известных багов "от Ульфа" в IT[X], которому уже, дай бог памяти, года 3, чем n-ное количество неизвестных багов в новом коде от никому неизвестного Sad Spirit (ничего личного).
И еще. IT[X] - давно известный и используемый повсеместно продукт, и делать из него площадку для личного паблисити, по-моему, не совсем прилично. Тем более при помощи таких "голосований".
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Учитывая тон, которым написано это сообщение, и количество ошибок, вылезших из-за незнания предмета, тоже особо стесняться не буду.

Автор оригинала: Максим Деркачев
Если кто не в курсе, подобные "голосования" в листе pear-dev обычно наказываются баном. Там сидят серьезные сформировавшиеся люди, и им давно надоели политические баталии.
Чё ж они тогда недоумка Lemos'а так долго терпели? И главное не зря, выгнали бы сразу, не было бы щас никакого MDB.

Мое мнение. Ulf Wendel (автор IT/IT[X]) - достаточно грамотный, опытный и известный программист, ему можно доверять, с ним можно цивилизованно спорить, а пробовать закидать его шапками - идея дохлая.
Пальцем в ж@пу попал.
Ulf Wendel --- автор IT[X], но он уже год как им не занимается и вообще pear-dev не читает.
Текущий maintainer --- Pierre-Alain Joye, который к разработке IT[X] никакого отношения вообще не имеет, с ним-то я и спорил.

Форк, как было сказано в листе не раз, худший из способов что-то изменить. Классы на то и существуют, чтобы их наследовать в новых классах с расширенной функциональностью. И лучше иметь пару известных багов "от Ульфа" в IT[X], которому уже, дай бог памяти, года 3, чем n-ное количество неизвестных багов в новом коде от никому неизвестного Sad Spirit (ничего личного).
Дружок, тебе знакомо слово "рефакторинг"? Я ничего не писал с нуля, а переработал готовый код.

И еще. IT[X] - давно известный и используемый повсеместно продукт, и делать из него площадку для личного паблисити, по-моему, не совсем прилично. Тем более при помощи таких "голосований".
Если бы он был так широко используем, в нём не было бы столь тривиальных багов. Я их, между прочим, нашёл сразу как только написал unit test'ы для IT[X]. За которые мне уже даже текущий maintainer спасибо сказал, а ты вот откуда-то выполз, опомнился.
 

Максим Деркачев

Guest
Как я вижу, у господина претендента не все в порядке с языком и темпераментом, потому буду краток.
Дружок, принципы, которые тебе безуспешно пытаются втолковать в листе pear, но ты все никак до них своей ж@пой дойти не можешь, таковы:
1. Работает - не ломай. Люди давно пользуются какой-то вещью, привыкли к ее приколам и даже (удивительно, не правда ли?) могут их использовать. Это называется BC, и рефакторинг тут ни при чем. Рефактори свои поделки, а не интерфейсы, к которым уже все привыкли.
2. Форк - это плохо. Не просто плохо, а очень плохо.
3. Хочешь улучшить положение - создай новый класс, наследуй в нем старый, и будет тебе щастье.

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

tony2001

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

Максим Деркачев

Guest
Да вот я тоже по старой памяти зашел, думал "профи", а тут про голосование какое-то ... больше на детский сад смахивает :(
 

Максим Деркачев

Guest
Открывается, через hosts. Пустовато только только там :)
 
Сверху