Представлены (http://php.net/index.php#id2013-06-06-2) корректирующие выпуски интерпретатора языка программирования PHP - 5.4.16 и 5.3.26 в которых устранено 15 ошибок (http://php.net/ChangeLog-5.php), в том числе устранением уязвимости CVE-2013-2110, связанной с возможностью переполнения буфера в реализации функции quoted_printable_encode. Связанные с уязвимостью подробности пока не разглашаются (https://bugs.php.net/bug.php?id=64879), но об опасности проблемы можно судить по рекомендации срочного обновления систем.URL: http://php.net/index.php#id2013-06-06-2
Новость: http://www.opennet.me/opennews/art.shtml?num=37117
> Связанные с уязвимостью подробности пока не разглашаются"Мы не будем скрывать проблемы" // Debian Social Contract #3
PHP исключат из Debian? :)
врядли, это сильно снизит его процент на серверах;)
его - это php или debian? :)
О, два местных самородка нашли друг друга. Рыбак рыбака видит издалека.
> его - это php или debian? :)вполне ж очевидно, и троллинг толстым получается, если это попытка троллить:-)
ну нету нормальных блогодвижков (например) открытых не на пхп. таких, чтобы дятел купивший вэпээс у фашистов, в 5-10 кликов мышки смог развернуть и изливать в туда свои ценнейшие мысли. по сути, что из себя представляет "сервер" сейчас? это либо субд, либо какая-нибудь сетевая хреновина либо тупо вебня, на которой таки прочно укоренился пхп.
Так что в social contract писать? Исключение для php? :)> ну нету нормальных блогодвижков (например) открытых не на пхп. таких, чтобы дятел купивший вэпээс у фашистов, в 5-10 кликов мышки смог развернуть и изливать в туда свои ценнейшие мысли.
Перечисляй функции, а я их буду реализовывать.
social contract относится к Debian, а не к PHP
> social contract относится к Debian, а не к PHPА php - к debian. Случалось, проекты за меньшее удаляли или в non-free отправляли, именно такая принципиальность позволила Debian стать лидером.
И тишина. Вокруг "на python ничего не пишут", а как спросишь, так тишина.Так и будет продолжаться, все будут тянуть php только потому, что думают, что все будут тянуть php. Это тупик. И лок на технологии, которая развивается не из-за своих преимуществ, а из-за того, что в неё когда-то имели несчастье "вляпаться".
Есть проблемы с python, с реализацией, с деплойментом? Ну я предлагаю, давайте пройдём их шаг за шагом, чтобы сделать хоть немного приличные типовые реализации, имеющие простой деплой на разных сервисах (а заодно и список таких сервисов). Обсуждать такое всё равно полезнее, чем выяснять, кто кого куда.
> Есть проблемы с python, с реализацией, с деплойментом? Ну я предлагаю, давайте
> пройдём их шаг за шагом...Есть популярный дистр. Как одной командой установить все необходимые пакеты, второй создать файлик с кодом и получить в браузере "Hello world"? Для php это возможно сделать. Возможно ли для python?
> Есть популярный дистр. Как одной командой установить все необходимые пакеты, второй создать
> файлик с кодом и получить в браузере "Hello world"? Для php
> это возможно сделать. Возможно ли для python?В принципе - да, а что в реальности - мы сейчас и выясняем.
Вообще, есть gae.
Но опять же, подходы разные - php это "что вижу, то и пою", когда всякие файлы могут запускаться (и не факт, что именно эти вы хотели бы запустить), а приложения на python - это полноценные, запущенные приложения, которые при желании и без внешнего веб-сервера могут исполняться.Например, чтобы запустить php - скрипт прямо сейчас, мне нужно поставить apache (а я не могу, там nginx, нужно перенастраивать или менять сервер), поставить php, сформировать окружение, заполнить его файлами, и только потом запускать.
Чтобы запустить nz на любом компьютере, с любой ос, где есть python 2.7, мне нужно два действия:
hg clone http://hg.51t.ru/nz/ (или просто скачать соответствующий тарболл)
python run.pyи всё, приложение уже доступнго в браузере, можно пользоваться, можно дальше дописывать/переписывать, ничего другого не нужно, ни запущенного сервера, ни сформированного окружения. В принципе, это же самое можно сделать и на сервере, если это сервер одного приложения, просто поменять порт на 80, и запустить приложение в фоне.
> Есть популярный дистр. Как одной командой установить все необходимые пакеты, второй создать файлик с кодом и получить в браузере "Hello world"? Для php это возможно сделать. Возможно ли для python?Да, возможно.
(yum|apt-get) install python (обычно не нужно, т. к. во всех современных дистрибутивах питон есть из коробки).
cat << EOF > helloworld.py
#!/usr/bin/python
import sockets = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('0.0.0.0', 80))
s.listen(5)
while True:
(conn, addr) = s.accept()
a = conn.recv(1000)
hdrs = a.split('\r\n')
if hdrs[0] == "GET / HTTP/1.1":
conn.send("HTTP/1.1 200 Ok\r\nContent-length: 12\r\n\r\nhello world!")
else:
conn.send("HTTP/1.1 400 Bad request\r\n")
conn.close()EOF
Барахло, конечно, но условиям задачи соответствует.
> Так что в social contract писать? Исключение для php? :)без понятия. а кто их читает, кстати?:-)
>> ну нету нормальных блогодвижков (например) открытых не на пхп. таких, чтобы дятел купивший вэпээс у фашистов, в 5-10 кликов мышки смог развернуть и изливать в туда свои ценнейшие мысли.
> Перечисляй функции, а я их буду реализовывать.берешь любой движок (да тот же wordpress, если не самый популярный, то точно один из), смотришь features и лабаешь. думаю, что пхп-хейтеры тебе памятник поставят, и донейтить будут горы бабла в итоге. мой процент от этого - 0, все тебе:-)
будет что-то готовое, работающее _не хуже_ я даже это поставлю кому-нибудь, если попросят бложик поднять.
под не хуже имею ввиду "не требует 100500 памяти и столько же ядер для хотябы 10000 уников в сутки"
>> Так что в social contract писать? Исключение для php? :)
> без понятия. а кто их читает, кстати?:-)Все читают. Но некоторые признаться стесняются. :)
>> Перечисляй функции, а я их буду реализовывать.
> берешь любой движок (да тот же wordpress, если не самый популярный, то точно один из),Вордпрессу - вордпрессово.
Во-первых, когда я взял вордпресс, я вообще не понял, как там делать простейшие вещи. Проще даже на C написать реализацию с нуля, чем лично мне в этом разобраться. Зато тормозило - ужас.
Во-вторых, мы говорим о том, чтобы "за минуту развернуть, и давать-давать-давать". Вот меня и интересует, что давать. Я думал, вы знаете, раз вы конкретное сравнение озвучили.
Всё просто - берётся список задач и в реальном времени решается, с бубликацией всех действий, а потом смотрится, что получилось, и как получалось. Не знаю, как вам, а мне - уже интересно. :)
> смотришь features и лабаешь. думаю, что пхп-хейтеры тебе
> памятник поставят, и донейтить будут горы бабла в итоге. мой процент
> от этого - 0, все тебе:-)Меня это не интересует. Меня интересует возрождение любительского программирования, и простые релизации простых вещей для этого будут весьма кстати.
> будет что-то готовое, работающее _не хуже_ я даже это поставлю кому-нибудь, если попросят бложик поднять.Просят? Что именно просят, как мотивируют? Может, у вас и киллер-фичи в запасе имеются? :)
> под не хуже имею ввиду "не требует 100500 памяти и столько же
> ядер для хотябы 10000 уников в сутки"Ну, то, что работает сейчас, согласно ab показывает 150 запросов в секунду. Данные - все в памяти, поэтому требует столько памяти, сколько данных. Но тот же mysql-демон тоже требует не меньше 100 мб, наверное. А 100 мб - это не один десяток "Братьев Карамазовых". :)
>>> Так что в social contract писать? Исключение для php? :)
>> без понятия. а кто их читает, кстати?:-)
> Все читают. Но некоторые признаться стесняются. :)ну я под "все" не попадаю, кроме того, изначально шла речь о "вынесут из репо/не вынесут". и, сдается мне, что выбор ос/дистрибутива мало где зависит от религиозных предпочтений авторов, людям нужно пыщь-пыщь^Wчтобы оно работало.
> Во-первых, когда я взял вордпресс, я вообще не понял, как там делать
> простейшие вещи. Проще даже на C написать реализацию с нуля, чем
> лично мне в этом разобраться. Зато тормозило - ужас.главное, чтобы те кому оно нужно поняли. и судя по кол-ву инсталляций этого движка их таки много, понявших. про "томозило" сложно рассуждать, те инсталляции которые видел я не тормозили.
> Во-вторых, мы говорим о том, чтобы "за минуту развернуть, и давать-давать-давать". Вот
> меня и интересует, что давать. Я думал, вы знаете, раз вы
> конкретное сравнение озвучили.очевидно же, давать движок не на пхп, а на "рассово-верном" python(?) с возможностями аналогичными тому же wp.
> Меня это не интересует. Меня интересует возрождение любительского программирования, и
> простые релизации простых вещей для этого будут весьма кстати.ну вот же в прошлых комментах и подбросил тебе зарядку для мозга - перепиши wp не на пхп, чем не "возрождение любительского программирования"?
> Просят? Что именно просят, как мотивируют? Может, у вас и киллер-фичи в
> запасе имеются? :)просят иногда стра[шн]ное. например на центоз виртуалку поднять, в ней vnc, rtorrent, браузерамы и еще куча разной херни, странных людей много в мире есть ;)
> Ну, то, что работает сейчас, согласно ab показывает 150 запросов в секунду.
> Данные - все в памяти, поэтому требует столько памяти, сколько данных.эм.. это крутится на intel pentium 100 ? 150 rps это победа, да..
> Но тот же mysql-демон тоже требует не меньше 100 мб, наверное.
> А 100 мб - это не один десяток "Братьев Карамазовых". :)у тебя ж все в памяти, откуда mysqld взялся, да еще и с таким дичайшим потреблением ram ?:)
> "вынесут из репо/не вынесут". и, сдается мне, что выбор ос/дистрибутива мало
> где зависит от религиозных предпочтений авторов, людям нужно пыщь-пыщь^Wчтобы оно работало.Debian и есть "религиозная организация", если говорить вашими терминами. И благодаря её принципиальности, она сегодня - лидер. Debian-у надо, чтобы оно гарантировало, иначе никакого будущего у Debian не будет, поиграют и забудут, перейдут в другое место, где сегодня теплее, и Debian потеряет пользователей. Он не может себе позволить "лишь бы сегодня работало, а там - трава не расти".
> главное, чтобы те кому оно нужно поняли.Я не буду делать вордпресс в одну итерацию. Спокойно разобью на этапы, этапы на задачи, и буду исполнять один за одним. Всё. Это же python. :)
Вот меня и интересует, как непонявшего, первый список задач, чтобы исполнить хотя бы один, начальный этап, а дальше смотреть, как оно повернётся.
>> конкретное сравнение озвучили.
> очевидно же, давать движок не на пхп, а на "рассово-верном" python(?) с
> возможностями аналогичными тому же wp.Во-первых, зачем нам два wordpress. Во-вторых, wordpress не образец удобства, люди привыкают к wordpress, потому что им его дали, а не мечтают о wordpress. Речь же была о бедных людях, которым кроме wordpress, и податься некуда, а они хотят что-то делать. Вот я и пытаюсь уяснить, что хотят делать эти бедные люди?
>> простые релизации простых вещей для этого будут весьма кстати.
> ну вот же в прошлых комментах и подбросил тебе зарядку для мозга
> - перепиши wp не на пхп, чем не "возрождение любительского программирования"?Переписывать я не буду - это раз. В одну итерацию делать - тоже, спокойно и поэтапно, нужно отделить важное от не так важного, чтобы сделать хоть что-то реальное, а не абстрактное "как wordpress, только на python". Я всё равно такое медленное написать не смогу. :)
>> Ну, то, что работает сейчас, согласно ab показывает 150 запросов в секунду.
>> Данные - все в памяти, поэтому требует столько памяти, сколько данных.
> эм.. это крутится на intel pentium 100 ? 150 rps это победа, да..Нет, на amd e350. Вопрос был, в том, сколько оно выдерживать должно, по-моему, этого хватит с избытком для озвученных задач. Wordpress и Mediawiki при установке "как есть" в своё время показывали мне 1 страницу за 5 секунд. :)
>> Но тот же mysql-демон тоже требует не меньше 100 мб, наверное.
>> А 100 мб - это не один десяток "Братьев Карамазовых". :)
> у тебя ж все в памяти, откуда mysqld взялся, да еще и
> с таким дичайшим потреблением ram ?:)У меня нет mysql-демона, поэтому я не знаю, сколько он занимает (в пике, а не в простое, чтобы не отваливаться на копеечных виртуалках), я просто предположил.
вордпресс, столь нелюбимый вами, медленный потому, что целая куча фрилансеров и покрупнее кормятся на его оптимизации, взять хотя бы сервис wordpress vip (можете цены ради интереса глянуть)Requests per second: 164.67 [#/sec] (mean)
Time per request: 121.452 [ms] (mean)
Time per request: 6.073 [ms] (mean, across all concurrent requests)
Transfer rate: 11478.81 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 3 5 17.3 4 1004
Processing: 29 116 66.8 97 495
Waiting: 3 13 13.4 7 225
Total: 33 121 69.0 102 1102а так его вполне можно "вылизать" так что он выдаст даже больше 150 rps, если сеть позволит... а так вон 100 мбит забились полностью почти :)
> вордпресс, столь нелюбимый вами, медленный потому, что целая куча фрилансеров и покрупнее кормятся на его оптимизации, взять хотя бы сервис wordpress vip (можетеЛюбая оптимизация в какой-то момент доходит до того, чтобы отдать у ж е с ф о р м и р о в а н н у ю страницу, из какого-либо кэша. Вопрос только в том, как её получить, какими усилиями, и насколько она будет актуальна.
У меня же - только первый этап. И превращать это в статику - не проблема, но если кто-то хочет кормиться, я могу и предельно усложнить.
> цены ради интереса глянуть)А можно ради интереса, с теми же параметрами ab-ирования, сделать http://nz.51t.ru/gl-13-13.html ? Чтобы сравнить этот-vip и самый дешёвый тариф на fastvps :)
у вас там документ на 742 байта, в отличие от выхлопа вордпресса в 70 кб )
так не интересно, а кеширование важно для любой cms, не лазить же каждый раз в файлы/субдRequests per second: 321.25 [#/sec] (mean)
Time per request: 793.773 [ms] (mean)
Time per request: 3.113 [ms] (mean, across all concurrent requests)
Transfer rate: 284.54 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 37 41 41.3 38 1038
Processing: 38 652 985.0 405 9460
Waiting: 38 649 983.1 403 9460
Total: 77 693 987.7 443 9498-с 255
> у вас там документ на 742 байта, в отличие от выхлопа вордпресса
> в 70 кб )на 14 кб.
есть ещё http://nz.51t.ru/quote.html на 75 кб, с кучей разнородных запросов (когда это было на sql, на это было невозможно смотреть без кэширования "в лоб"). с не самым оптимальным кодом (чтобы было проще менять текст):
20 @route('/quote.html')
21 def index_quot():
22 return template ('quote.html', r=local.r, qu=[quo_sep(n) for n in open('quot.txt').readlines()])http://hg.51t.ru/nz/file/tip/run.py
> так не интересно, а кеширование важно для любой cms, не лазить же
> каждый раз в файлы/субдЯ уже говорил, что так живёт только php. Вон, у меня выше код, весь сайт (упрощённый) в 66 строк (без шаблонов), и данные, или хотя бы важные данные, можно всегда крутить в памяти.
wordpress же нужно именно обвешивать кэшами, и это точно задача не на "поставил vps и в 5 кликов поднял".
ps. Может быть, хоть вы скажете какие-нибудь полезные функции, от которых можно начать плясать в сторону "убийцы wordpress", как его уже тут прозвали?
>> в 70 кб )
>на 14 кб.значит я померила скорость редиректов вашего nginx
>так живёт только php
так живет любая cms
>данные, или хотя бы важные данные, можно всегда крутить в памяти.
в том числе и на php , если память девать больше некуда
>wordpress же нужно именно обвешивать кэшами
это не так уж и сложно, в типовом варианте хватит w3 total cache, хотя лично мне он не нравится
> "поставил vps и в 5 кликов поднял".
в таком варианте получится поставить только LAMP, в лучшем случае с nginx перед ним,
это не самый оптимальный вариант, хотя конечно быстро, просто и шаблонно>какие-нибудь полезные функции, от которых можно начать плясать в сторону "убийцы wordpress"
наверное не скажу, я играюсь с чужими вордпрессами, причем с наикорявейшими темами жручими по 200 sql запросов на страничку, кучей запросов на внешку и прочими тормозными ужасами, так что изкоробочный вордпресс это как глоток свежего воздуха )
<!-- 44 0.1774 4157 -->
поэтому получить 44 запроса к mysqld и 177 мс времени генерации с 4.1 Мб расходуемой памяти, для "жудкого" PHP это очень хороший результат
> значит я померила скорость редиректов вашего nginxТам нет редиректов. Скорее, скорость 500-й ошибки, там не так, как в hg, а через gevent.
>>так живёт только php
> так живет любая cmsЕсли данные уже в памяти процесса, их можно просто вставить в шаблон, безо всяких запросов.
>>данные, или хотя бы важные данные, можно всегда крутить в памяти.
> в том числе и на php , если память девать больше некудаИ не требуется никаких запросов. Там сверху код nz. Я верю, что он понятный. Разве в php можно сделать так, просто, немногословно и даже, я бы сказал, элегантно?
>>wordpress же нужно именно обвешивать кэшами
> это не так уж и сложно, в типовом варианте хватит w3 total cache, хотя лично мне он не нравитсяЕсли это какое-то простое решение, то почему оно не включено в ворпресс? Если его нужно долго и мучительно устанавливать, то как с этим справиться.
>> "поставил vps и в 5 кликов поднял".
> в таком варианте получится поставить только LAMP, в лучшем случае с nginx
> перед ним, это не самый оптимальный вариант, хотя конечно быстро, просто и шаблонноТак с этого и началось соревнование. Что в php это есть, а в python - нет. Вот я и надеюсь, что общее opennet-овское мнение сможет сформировать требование к этому "за пять минут", чтобы можно было попробовать догнать и перегнать.
>>какие-нибудь полезные функции, от которых можно начать плясать в сторону "убийцы wordpress"
> наверное не скажу, я играюсь с чужими вордпрессами, причем с наикорявейшими темами
> жручими по 200 sql запросов на страничку, кучей запросов на внешку
> и прочими тормозными ужасами, так что изкоробочный вордпресс это как глоток
> свежего воздуха )
> <!-- 44 0.1774 4157 -->
> поэтому получить 44 запроса к mysqld и 177 мс времени генерации с
> 4.1 Мб расходуемой памяти, для "жудкого" PHP это очень хороший результатМы исходим из того, что у нас 5-копеечная виртуалка с сотней другой mb ram и мизерными лимитами. Боюсь, там таких цифр не увидать. Я, кстати, вообще никогда не видел таких цифр, видимо, вокруг меня одни непрофессионалы. Тем важнее сделать решение, имеющее достаточную скорость сразу (и без sql).
Но я спросил именно о фишках. Что-то из серии "мне бы понравилось решение Opennet.Имярек, если бы там было то, то и то".
>> так живет любая cms
> Если данные уже в памяти процесса, их можно просто вставить в шаблон,
> безо всяких запросов.чтобы они там были - надо сделать запрос и так или иначе считать это с ФС, или из файлов или через субд. В php все тоже можно покрутить в памяти, у меня вот больше 60% данных крутятся в variable cache Xcache (почему XCache? потому что он быстрее чем memcache, если данных не сильно много, то лучше apc varcache/xcache varcache)
> И не требуется никаких запросов. Там сверху код nz. Я верю, что
> он понятный. Разве в php можно сделать так, просто, немногословно и
> даже, я бы сказал, элегантно?извините, не в курсе, любые данные должны быть откуда то считаны и куда то сохранены
> Если это какое-то простое решение, то почему оно не включено в ворпресс?
> Если его нужно долго и мучительно устанавливать, то как с этим
> справиться.в случае quickcache надо просто поставить плагин и активировать, 2 клика мышкой )
а не включено, потому что см выше,фрилансеры-оптимизаторы тоже кушать хотят,
я тут три дня посидела на английском форуме поддержки ВП, там вопросы часто задают очень глупые фрилансерам-эникейщикам там всегда работа найдется.> Так с этого и началось соревнование. Что в php это есть, а
> в python - нет. Вот я и надеюсь, что общее opennet-овское
> мнение сможет сформировать требование к этому "за пять минут", чтобы можно
> было попробовать догнать и перегнать.http://w3techs.com/technologies/overview/programming_languag...
статистика беспощадна, я не стану спорить что лучше или что хуже, но я не стану заниматься установкой того, что занимает всего 0.2%, по простой причине того, что меня об этом скорее всего не попросят, разве что ради общего развития потыкаю и удалю.> Мы исходим из того, что у нас 5-копеечная виртуалка с сотней другой
> mb ram и мизерными лимитами. Боюсь, там таких цифр не увидать.
> Я, кстати, вообще никогда не видел таких цифр, видимо, вокруг меня
> одни непрофессионалы. Тем важнее сделать решение, имеющее достаточную скорость сразу (и
> без sql).мой результат тоже с самой дешевой виртуалки 512Mb/ram
> Но я спросил именно о фишках. Что-то из серии "мне бы понравилось
> решение Opennet.Имярек, если бы там было то, то и то".решения выбираю не я, сабжевый сайт моего друга на вп крутится уже 8 лет (при том что самому вп - 10 лет)
> чтобы они там были - надо сделать запрос и так или иначе
> считать это с ФС, или из файлов или через субд.При запуске, один раз. Пусть даже запуск будет 30 секунд длиться, это не критично (кстати, что будет, если обновлять php-файлы "на лету", когда половина файлов уже обновилась, а половина - нет? вероятно, там тоже используют какие-то механизмы блокировки)
> В php все тоже можно покрутить в памяти, у меня вот больше
> 60% данных крутятся в variable cache XcacheКак это выглядит технически? И, как я понимаю, wordpress должен это поддерживать?
>> Если это какое-то простое решение, то почему оно не включено в ворпресс?
>> Если его нужно долго и мучительно устанавливать, то как с этим
>> справиться.
> в случае quickcache надо просто поставить плагин и активировать, 2 клика мышкой )И что оно делает? Генерирует статику по динамике? А если там какой-нибудь динамический элемент, типа "крыжик дня, часа, минуты", который постоянно обновляется. Вообще, мне кажется, wordpress достаточно негибкое решение в плане "выйти за околицу", а такие штуки только сужают возможности. И он используется или типично, или с большими проблемами. Это так, или мне это только кажется?
> а не включено, потому что см выше,фрилансеры-оптимизаторы тоже кушать хотят,
> я тут три дня посидела на английском форуме поддержки ВП, там вопросы
> часто задают очень глупые фрилансерам-эникейщикам там всегда работа найдется.Хватит это терпеть! :)
> http://w3techs.com/technologies/overview/programming_languag...
> статистика беспощадна, я не стану спорить что лучше или что хуже, но
> я не стану заниматься установкой того, что занимает всего 0.2%, по
> простой причине того, что меня об этом скорее всего не попросят,
> разве что ради общего развития потыкаю и удалю.Во-первых, статистика сомнительна (вот как определить, что nz.51t.ru на python?), во-вторых, если нужное решение только на python, то какая разница, на каком языке это написано? Вот чем заменить rhodecode, если нужно hg (а если нужно git, то тоже альтернатив немного, и на php что-то приличное я и не вспомню)? А это вполне конкретная и широкая область деятельности - разработка. Есть и другие области, где php
> мой результат тоже с самой дешевой виртуалки 512Mb/ramtotal used free shared buffers cached
Mem: 400 232 167 0 0 0Моя статика быстрее вашей статики, так получилось? Вы же иногда какие-то свои, самостоятельные тесты делаете? Включайте в такие, грамотные и правильные, сравнения и тот же bottle.py, чтобы набраться впечатлений. Если нет hello.world-а, можете что-либо из hg выше взять. Вот это очень интересно будет посмотреть.
> решения выбираю не я, сабжевый сайт моего друга на вп крутится уже
> 8 лет (при том что самому вп - 10 лет)Я прямо в лоб спрошу: Почему wordpress? Какие задачи выполняет, какими функциями он подкупил, чем пользуются ежедневно (и мож даж чего не хватает)?
>> чтобы они там были - надо сделать запрос и так или иначе
>> считать это с ФС, или из файлов или через субд.
> При запуске, один раз. Пусть даже запуск будет 30 секунд длиться, это
> не критично (кстати, что будет, если обновлять php-файлы "на лету", когда
> половина файлов уже обновилась, а половина - нет? вероятно, там тоже
> используют какие-то механизмы блокировки)php файлы как раз обновляются как правило только вместе с приложением, хотя smarty например может делать это чаще, если все же обновлять "на лету" то opcode cache это не понравится, т.к. проверку файлов там обычно делают не на каждый запуск а через некоторое время, чтобы убрать дорогие обращения к диску. Де-факто стандартный в новой PHP5.5 ZendOpCache в принципе проблем с "на лету" не вызывает, на крайний случай там есть черные списки для кеширования, естественно постоянно изменяемые файлы придется гонять по полной программе через интерпретатор.
>> В php все тоже можно покрутить в памяти, у меня вот больше
>> 60% данных крутятся в variable cache Xcache
> Как это выглядит технически? И, как я понимаю, wordpress должен это поддерживать?wordpress transient api позволяет кешировать переменные,
если нет ничего - то в sql
если есть object-cache - то в нем, object-cache.php нужно положить в wp-content/
файлик специфичен для каждой системы, хотя есть вариант (tribe cache/w3total cache), который автоматически определяет что есть и кладет нужный object-cache.php для apc/apcu, xcache, memcache, про кеширование переменных в eaccelerator всем лучше уже забыть ;)>>> Если это какое-то простое решение, то почему оно не включено в ворпресс?
1) фрилансер хочет кушать, 2) на ужасных шаред хостингах обычно не бывает ... ничего
3) на vps/dedicated тоже нет конкретики 4) wordpress ориентирован на то что из коробки только базовая система, опции ставятся отдельно, самое популярное и нужное и не подлежащее сомнению впрочем (очень) медленно но верно включают в базовый функционал>>> Если его нужно долго и мучительно устанавливать, то как с этим
>>> справиться.не спорю, скачать и положить 1 файл бывает тяжело :)
>> в случае quickcache надо просто поставить плагин и активировать, 2 клика мышкой )
> И что оно делает? Генерирует статику по динамике? А если там какой-нибудь
> динамический элемент, типа "крыжик дня, часа, минуты", который постоянно обновляется.
> Вообще, мне кажется, wordpress достаточно негибкое решение в плане "выйти за
> околицу", а такие штуки только сужают возможности. И он используется или
> типично, или с большими проблемами. Это так, или мне это
> только кажется?это так, так что придется что то выдумывать на JS, в предыдущих версиях wp-super-cache можно было использовать блоки <!--mclude--> для выделения кусков динамического кода,
к чему это привело, можно найти тут же на опеннете в том числе, так что этот "функционал" убран, вообще все зависит от того, насколько важно чтобы блок действительно обновлялся _на сервере_ а не клиентом через js
>> а не включено, потому что см выше,фрилансеры-оптимизаторы тоже кушать хотят,
>> я тут три дня посидела на английском форуме поддержки ВП, там вопросы
>> часто задают очень глупые фрилансерам-эникейщикам там всегда работа найдется.
> Хватит это терпеть! :)а я что сделаю? ) мне тамошних модераторов жалко )
> Во-первых, статистика сомнительна (вот как определить, что nz.51t.ru на python?), во-вторых,
> если нужное решение только на python, то какая разница, на каком
> языке это написано?у них где то было указание на то, что они не смогли определить, PHP даже при expose_php=off все равно палится по наличию .php или типичным "отпечаткам" cms'ок, например те же /wp-content/ /wp-include/ в html
на debian.org определяется только Apache :) хотя вроде оно на питоне и работает>Вот чем заменить rhodecode, если нужно hg (а
> если нужно git, то тоже альтернатив немного, и на php что-то
> приличное я и не вспомню)?если ничего лучше нет , то придется ставить это :)
>[оверквотинг удален]
>
> total used
> free shared
> buffers cached
> Mem: 400
> 232
> 167
> 0
> 0
> 0free -m не показатель, свободную память держать неразумно, ее лучше скинуть в кеши, какие угодно, mysql query cache, tmpfs, итд итп...
это добавит производительности, остатки сьест кеш диска, а результат можно посмотреть в iotop, чем меньше нагрузка на диск - тем лучше и уж особенно на виртуалке, где "соседи" иногда дают себя знать> Моя статика быстрее вашей статики, так получилось? Вы же иногда какие-то свои,
> самостоятельные тесты делаете? Включайте в такие, грамотные и правильные, сравнения и
> тот же bottle.py, чтобы набраться впечатлений. Если нет hello.world-а, можете что-либо
> из hg выше взять. Вот это очень интересно будет посмотреть.ab не показатель, тестировать мелкую статику мне не интересно, важнее то что backend с фронтэндом способны генерить и выдавать на полную ширину канала (проверяла с cписком url по sitemap.xml), это и есть показатель эффективности при возможных пиках посещаемости digg/reddit итп, тем более на виртуалке, где нет постоянной производительности, сейчас она одна, через час кто-то начнет грузить сеть/процессор/disk io...
> Я прямо в лоб спрошу: Почему wordpress? Какие задачи выполняет, какими функциями
> он подкупил, чем пользуются ежедневно (и мож даж чего не хватает)?сложно сказать, но товарищ капризный, за все эти годы он поменял несколько доменов, раделил блог на два.. не говоря уже о несчетной количестве всякой поставленной и снесенной рано или поздно фигни и метаний от минималистичности до аццкой перегруженности сайта всякой ерундой
> это так, так что придется что то выдумывать на JS, в предыдущих
> версиях wp-super-cache можно было использовать блоки <!--mclude--> для выделения кусков
> динамического кода,
> к чему это привело, можно найти тут же на опеннете в том
> числе, так что этот "функционал" убран, вообще все зависит от того,
> насколько важно чтобы блок действительно обновлялся _на сервере_ а не клиентом
> через jsНу самые простые варианты - это количество комментариев, последние комментарии, товар дня-месяца-года. Если будет 50 js, тогда тормозить уже будет не сервер, а браузер клиента, в который будут впихивать невпихуемое.
Да и в качестве рабочего прототипа проще делать на сервере. Например, по http://hg.51t.ru/nz/file/tip/run.py создаётся контекст-локал, и к нему цепляется r, на неё навешивается всё, что можно, и она потом передаётся шаблону, и я в любом месте шаблона могу получить любые данные, не мучая логику и не создавая дополнительных запросов. Поэтому весь nz - это 66 строк, включая переносы. :)
Кроме того, у меня каждая страничка сейчас генерирует и саму html-страницу по шаблону, и json-файл на неё:
например (эксперимент) http://future.51t.ru/h/show/aaa и http://future.51t.ru/j/show/aaa
поэтому можно писать js-странички сразу, без подготовки данных на неё.
А статику, как мне кажется, должен генерировать веб-сервер и его кеш. А когда в wordpress впихивают все функции, которые могут быть... ну, не знаю.> free -m не показатель, свободную память держать неразумно, ее лучше скинуть в
> кеши, какие угодно, mysql query cache, tmpfs, итд итп...openvz по-своему память читает. и работает оно тоже по-своему. что продали, на том и езжу, мне хватает с запасом. у меня при желании и более реальные сервера под рукой есть, но домашняя страничка - это домашняя страничка, и будет родная даже на narod.ru :)
> ab не показатель, тестировать мелкую статику мне не интересно, важнее то что
> backend с фронтэндом способны генерить и выдавать на полную ширину канала
> (проверяла с cписком url по sitemap.xml), это и есть показатель эффективности
> при возможных пиках посещаемости digg/reddit итп, тем более на виртуалке, где
> нет постоянной производительности, сейчас она одна, через час кто-то начнет грузить
> сеть/процессор/disk io...Я тестировал только бэкенд, без веб-сервера, поэтому разницы в том, что запрашивать, нет, архитектурно запросы идентичны. А кешировать и прочее - это уже должно что-то уровнем выше, или отдельная прослойка. Добавлять подобную функциональность в приложение я не буду, надеюсь, никогда.
> сложно сказать, но товарищ капризный, за все эти годы он поменял несколько
> доменов, раделил блог на два.. не говоря уже о несчетной количестве
> всякой поставленной и снесенной рано или поздно фигни и метаний от
> минималистичности до аццкой перегруженности сайта всякой ерундойНу делает он там что - политпроект продвигает, макароны продаёт? Какая функциональность бы его удовлетворила?
>Ну самые простые варианты - это количество комментариев, последние комментарии, товар дня-месяца-года.тут уже упирается в то, насколько важно держать актуальность оных.. и общий трафик,
короткоживущий кеш обычно выполняет и функции кеша и является достаточно актуальным для динамического контента, бэкэнд вполне справится с перегенерацией страничек и в то же время кеширование (пусть даже если кешируется всего на минуту) снизит нагрузку.
для кеширования fastcgi через nginx можно использовать SSI (хотя тут тоже есть нюансы)> статику, как мне кажется, должен генерировать веб-сервер и его кеш. А когда в wordpress впихивают все функции, которые могут быть
сервероспецифично, плагины вордпресса работают на любом вебсервере, втч и без поддержки правилами rewrite
В ВП как раз не пихают... все на откуп пользователю, все в плагинах.>openvz по-своему память читает. и работает оно тоже по-своему. что продали, на том и езжу, мне хватает с запасом
да я в курсе, предыдущий хостинг был на virtuozzo, сейчас kvm, там все более "реально", но заставляет иногда подумать чтобы поменьше "ходить" на диск
>Ну делает он там что - политпроект продвигает, макароны продаёт? Какая функциональность бы его удовлетворила?
"Вот я купил Макбук, вот фоточки.. коробка, вот я ее открыл, вот шнур, вот сам макбук" 12 фоток..
"Cотовый оператор моей деревни подключил LTE, другие хлопают ушами" (какая нибудь таблица сравнения тарифов..)
"Вот я меняю жесткий диск в своем МакбукЭйр на SSD" (15 фоток)
"А вы слышали новые слухи про выход iPhone 5S?"ну естественно немного рекламы, комментарии, SEO..
> тут уже упирается в то, насколько важно держать актуальность оных.. и общий
> трафик,
> короткоживущий кеш обычно выполняет и функции кеша и является достаточно актуальным для
> динамического контента, бэкэнд вполне справится с перегенерацией страничек и в то
> же время кеширование (пусть даже если кешируется всего на минуту) снизит
> нагрузку.
> для кеширования fastcgi через nginx можно использовать SSI (хотя тут тоже есть
> нюансы)В том-то и дело, что даже для минутного кеша пиковая нагрузка становится не такой принципиальной, потому что кеш отдаёт данные, и там минутная актуальность - не вопрос. И тут уже решает скорость генерации конкретной страницы.
Если генерировать статику для "всего", то зачем вообще вордпресс (кроме того, как генерировать её там, где постоянно растут комментарии), а если нет - то опять всё упрётся в тяжёлые запросы на генерацию.
А если долбят не в одну страницу, а в разные.
В общем, всё равно, скорость генерации - это очень важно.
> сервероспецифично, плагины вордпресса работают на любом вебсервере, втч и без поддержки
> правилами rewriteПлагины вордпресса не заработают на моём веб-сервере. Как и сам вордпресс. У меня там нет php. Кстати, а через внутренний сервер php вордпресс заработает?
> В ВП как раз не пихают... все на откуп пользователю, все в плагинах.Это не выход. Если оно сильно влияет на логику, то должно иметь много полномочий. А это уже небезопасно. Кроме того, отладка усложняется, развитие усложняется, в любом случае, если в схеме много неочевидного, то без разницы, где это, в системе или в плагинах.
Кроме того, это дополнительная нагрузка на пользователей. Я, как невнимательный мальчик, не люблю плагины, люблю всё и сразу. В firefox у меня один плагин, в gnome-shell - 0.
Логика такая - я в этом не понимаю, эти люди там понимают тонкости работы гораздо лучше меня, и если это решение, дающее радость даром, то почему оно не включено изначально, если это требует спец.знаний, то у меня их нет.
Плагины не дают единой конфигурации, и опять же - у одного работает, у другого нет, у одного тормозит, у другого не тормозит. И непонятно, кто виноват.
Плагины должны быть на фигню всякую, приятные и понятные, чисто для пользователя. Системные вещи в плагинах - это и переусложнение и небезопасность самой системы плагинов, и сомнительная работа.
Я не верю в такие плагины.
>>Ну делает он там что - политпроект продвигает, макароны продаёт? Какая функциональность бы его удовлетворила?
> "Вот я купил Макбук, вот фоточки.. коробка, вот я ее открыл, вот
> шнур, вот сам макбук" 12 фоток..
> "Cотовый оператор моей деревни подключил LTE, другие хлопают ушами" (какая нибудь таблица
> сравнения тарифов..)
> "Вот я меняю жесткий диск в своем МакбукЭйр на SSD" (15 фоток)
> "А вы слышали новые слухи про выход iPhone 5S?"
> ну естественно немного рекламы, комментарии, SEO..Зачем вы мне сейчас веру в людей убили?
Таблица в wordpress как рисуется?
>В том-то и дело, что даже для минутного кеша пиковая нагрузка становится не такой принципиальной, потому что кеш отдаёт данные, и там минутная актуальность - не вопрос. И тут уже решает скорость генерации конкретной страницы.1 раз сгенерировать и за минуту отдать 1-N раз, лучше чем генерировать N раз :)
а скорость генерации важна в том числе и для SEO, гугля любит быстрые сервера, так что тут time-to-first-byte очень важно, так что кешировать имеет смысл не только постранично но и пообьектно и повиджетно (простите за варварские термины) вот тут как раз начинают рулить memcached (xcache/apc), и wordpress transient api который является "оберткой" над остальными кешами, хотя есть и менее гуманные варианты - например сохранять ответы от mysqld в файл на диск на минуту или более (такой вариант хуже, т.к. кеширует все ответы и данные иногда косячит..)>Если генерировать статику для "всего", то зачем вообще вордпресс (кроме того, как генерировать её там, где постоянно растут комментарии), а если нет - то опять всё упрётся в тяжёлые запросы на генерацию.
ну да, конечно, можно вернуться к написанию сайтов в приложении-редакторе и их загрузке в виде пачки html на сервер ) есть куча мелких cms'ок, которые перегенерируют все в статику, тем не менее они cms, и позволяют вебмастеру работать с контентом из браузера, втч и с смартфона, кстати есть wordpress приложения для iOS и андроид
"тяжелые" запросы надо облегчать) комментарии опять же сильно не тормозят,
альтернативно сейчас disqus практически общепринят... они (disqus) тут недавно отрапортовали 2.5 миллиона одновременых подключений и использование 5 Gbps (во время бостонских терактов)
Знаете в чем их основная фишка ? Зайдя на сайт с discus вы можете сразу оставлять комментарии, без необходимости регистрации или указания своих данных.. вполне достаточно иметь facebook/twitter/google+ (хотя можно и зарегистрироваться в самой системе 1 раз и для кучи сайтов сразу) Опять же disqus пофик на то, на чем сайт, пусть даже статические html-ки (вот уж год назад я точно не думала что стану рекламировать "disgust")
>Кстати, а через внутренний сервер php вордпресс заработает?должен, его даже в phar заворачивали и запускали, работал быстрее
>Если оно сильно влияет на логику, то должно иметь много полномочий. А это уже >небезопасно. Кроме того, отладка усложняется, развитие усложняется, в любом случае, если >в схеме много неочевидного, то без разницы, где это, в системе или в плагинах.
wordpress это framework со своим API, можно менять любой функционал через хуки... отчасти это минус, отчасти это плюс, причем тот что вордпрессу и дал его популярность
>дополнительная нагрузка на пользователей. Я, как невнимательный мальчик, не люблю плагины
(..)wp-content/plugins #ls |wc -l
30
ну вот примерно где-то так для уровня "комфорта">Плагины не дают единой конфигурации, и опять же - у одного работает, у другого нет, у одного тормозит, у другого не тормозит. И непонятно, кто виноват.
для наиболее популярных и широко используемых плагинов эти проблемы решаемы достаточно быстро, а если в "помойке" рыться... зачем жаловаться что живот болит?
>Зачем вы мне сейчас веру в людей убили?
а чего собственно ожидали? я его с детства знаю и не помогать ему просто не могу )
>Таблица в wordpress как рисуется?
там tinymce, так что в нем и рисуется, хотя есть поддержка тем для разных красивых вкладочек и прочего через shortcodes тэги
> 1 раз сгенерировать и за минуту отдать 1-N раз, лучше чем генерировать N раз :)
> а скорость генерации важна в том числе и для SEO, гугля любит
> быстрые сервера, так что тут time-to-first-byte очень важно, так что кешировать
> имеет смысл не только постранично но и пообьектно и повиджетно (простите
> за варварские термины) вот тут как раз начинают рулить memcached (xcache/apc),
> и wordpress transient api который является "оберткой" над остальными кешами, хотя
> есть и менее гуманные варианты - например сохранять ответы от mysqld
> в файл на диск на минуту или более (такой вариант хуже,
> т.к. кеширует все ответы и данные иногда косячит..)Но мы всё-таки надеемся, что bublik.opennet будет и быстрым, и простым в развёртывании, без всех этих страшных нюансов. Поэтому быстрая отдача должна быть чем-то реальным. Я, может быть, и понял бы когда-нибудь wordpress, но запустив его дома, на домашнем компьютере, я просто не хотел дожидаться отклика и пить чай между каждыми переходами страниц.
Поэтому я и нацеливаюсь на то, что прежде всего оно должно работать везде, где есть только стандартная библиотека python 2.7, и всё. И запускаться в одно движение, чтобы пользователи даже принимая решение "брать или не брать", могли поиграться на достаточной скорости и простом запуске.
И плагины - это хорошо, но пока, на первое время, мне ближе цель "бутстрап", когда всё просто и понятно, насколько возможно. Чтобы использовать, как основу. И только потом, на следующих этапах, уже взрослость и развитие.
Да, это может отпугнуть пользователей, которые "i like to plugin it", но пока никаких пользователей нет. Есть полено, и из него можно сделать и бейсбольную биту, и буратину. И если устройство будет простое и понятное, то можно "допилить лобзиком" (а если не будет - то оно вообще не нужно ни в каком виде, никому, включая меня). Если фреймворки предоставляют api, которое дёргают, полено представляет возможность крутить всё до последнего байтика. Да, это не для пользователей, но на этапе роста это сможет дать много полезных патчей для ядра. Чем больше папакарл, тем длиннее у буратины нос.
Да, это против правил, но это не самое бесполезное, что можно делать. Самое бесполезное - это сделать клон вордпресса. Зачем нам два вордпресса?
> Знаете в чем их основная фишка ? Зайдя на сайт с discus
> вы можете сразу оставлять комментарии, без необходимости регистрации или указания своих
> данных.. вполне достаточно иметь facebook/twitter/google+я - не могу. но суть понятна. у меня для своих сайтов тоже был подобный api, фактически работающий, но сейчас там мешанина жкверей, кофескриптов. но мне нужно было, чтобы вообще не требовалось никакой регистрации, а просто упрощение добавление комментариев для везде. я и логины-то не люблю, предпочитаю генерировать мордашки по ip-адресу. всё для ленивых.
> (хотя можно и зарегистрироваться
> в самой системе 1 раз и для кучи сайтов сразу) Опять
> же disqus пофик на то, на чем сайт, пусть даже статические
> html-ки (вот уж год назад я точно не думала что стану
> рекламировать "disgust")Вчера нашёл в репозитори Debian:
http://nikola.ralsina.com.ar/
> wordpress это framework со своим API, можно менять любой функционал через хуки...
> отчасти это минус, отчасти это плюс, причем тот что вордпрессу и
> дал его популярность
> для наиболее популярных и широко используемых плагинов эти проблемы решаемы достаточно
> быстро, а если в "помойке" рыться... зачем жаловаться что живот болит?Так. Мы тут пишем систему для универсальной бубликации, назовём это так.
Давайте считать конкурентные преимущества перед вордпрессом:
1. Скорость генерации
2. Безопасностькакие ещё (оставим в покое факт несчастного php)?
Если их не будет, то останется только один вопрос, в переводе с русского матерного он звучит как "зачем?".
Если в системе или в плагине wordpress обнаружится ошибка или уязвимость, пользователь будет сидеть и разбираться, что случилось и как это исправить.Если же в том, что мы тут изобретаем, появится аналогичное, пользователь пойдёт в свой блог на wordpress и напишет "ну и отстой же этот бублик", и перерепостит везде, где можно. А google быстро отиндексирует и запомнит.
Поэтому качество, простота и прозрачность должны стать не только нормой жизни, но и жизненной необходимостью.И ведь это действительно больные места wordpress. :) Я не знаю, чем хорош водрпресс, не пользовался, но даже я знаю, чем он плох.
> а чего собственно ожидали?Да много чего может быть. Начиная с новостного сайта под названием opennet, где разные люди пишут тематические новости. Убийцу opennet и писать приятнее.
Чего ожидал? Выборов в ЧегоНибудьДуму, торговли пирожками со склада производителя, ну или хотя бы цветочков-зайчиков. Но тащить из года в год вот это. У меня даже не вопрос "зачем пишут", у меня более наивный вопрос - "а что, это читают?"
В убийстве вордпресса у меня больше моральных вопросов, чем технических. Может быть пусть "подобное тянется к подобному"?
и да, отдавать все что просит ab с одного айпишника... неправильноу вас там nginx
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 24;
что-нибудь такое нарисовать очень просто и разумно...
> и да, отдавать все что просит ab с одного айпишника... неправильноМне не жалко.
Я не особо разбираюсь в highload-ах, и рассуждаем мы исключительно о бэкенде, который должен быть достаточно быстр и достаточно функционален. Когда понадобится кэширование и лимитирование - это будет примерно одинаковым что для вордпресса, что для новой системы бубликации, что для старой.
И я не думаю, что все сейчас бросятся тестить ab на бедном сайтике.
> у вас там nginx
> limit_conn_zone $binary_remote_addr zone=perip:10m;
> limit_conn perip 24;
> что-нибудь такое нарисовать очень просто и разумно..."Я не настоящий сварщик, я эту маску на стройке нашёл."
Я в конфиге nginx знаю две опции, и в администрировании не особо разбираюсь. :( Для python есть gae, где умные люди на умных фермах вырастили умные серверы, а у меня - песочница для моего удовольствия. Даже если сломают, не страшно, пока от этого никто жизненно-важно не зависит, а если будет зависеть - тогда уже будет другой разговор. За строчку спасибо, но я даже не знаю, в какую секцию её применить.
> Я не особо разбираюсь в highload-ах, и рассуждаем мы исключительно о бэкенде,
> который должен быть достаточно быстр и достаточно функционален. Когда понадобится кэшированиеab и highload это смешно ) тупая долбежка в один uri и живые клиенты вещи абсолютно разные, по сути хаба-хаба.. тфу ab сводится к тому, что мерится эффективность кеша, и скорость обработки запросов веб сервером а также лимитирование сетевого i/o со стороны хостинг провайдера согласно стоимости аренды сервера
>> limit_conn_zone $binary_remote_addr zone=perip:10m;
>> limit_conn perip 24;
> За строчку спасибо, но я даже не знаю, в какую
> секцию её применить.первую в http, вторую куда угодно, я ставлю в server чтобы лимитировать на виртуальный хост
>> Я не особо разбираюсь в highload-ах, и рассуждаем мы исключительно о бэкенде,
>> который должен быть достаточно быстр и достаточно функционален. Когда понадобится кэширование
> ab и highload это смешно ) тупая долбежка в один uri и
> живые клиенты вещи абсолютно разные, по сути хаба-хаба.. тфу ab сводится
> к тому, что мерится эффективность кеша, и скорость обработки запросов веб
> сервером а также лимитирование сетевого i/o со стороны хостинг провайдера согласно
> стоимости аренды сервераДа, кеширование хорошо тем, что грамотное кеширование даже скорость вордпресса делает равным скорости статики (но организация такого кеширования - это чистое искусство). А хорошая скорость "из коробки" хороша тем, что позволяет не вникать в такие тонкости длительное время. Я надеюсь.
>>> limit_conn_zone $binary_remote_addr zone=perip:10m;
>>> limit_conn perip 24;
>> За строчку спасибо, но я даже не знаю, в какую
>> секцию её применить.
> первую в http, вторую куда угодно, я ставлю в server чтобы лимитировать
> на виртуальный хостУ меня Debian, у меня нет http в той секции, где мои записи.
Да и конфиги стандартные я не меняю, чтобы обновление не ругалось. Я не знаю nginx, и не хочу сейчас в эти тонкости лезть, потому что мне ещё вордпресс писать.
> Да, кеширование хорошо тем, что грамотное кеширование даже скорость вордпресса делает равным
> скорости статики (но организация такого кеширования - это чистое искусство). А
> хорошая скорость "из коробки" хороша тем, что позволяет не вникать в
> такие тонкости длительное время. Я надеюсь.тсс, никому не говорите, любой плагин как раз это и делает, quick cache, wp supercache, w3total cache, если брать вариант посложнее - кеш выкидывается в tmpfs, для nginx'a есть вариант кеширования fastcgi, хотя тут уже не совсем все просто и на nginx патчик хорошо бы накинуть с поддержкой очистки кеша
> У меня Debian, у меня нет http в той секции, где мои
> записи.http это секция в самом начале nginx.conf
> Да и конфиги стандартные я не меняю, чтобы обновление не ругалось. Я
> не знаю nginx, и не хочу сейчас в эти тонкости лезть,
> потому что мне ещё вордпресс писать.кому-то лениво разбираться с конфигами nginx, кому-то с тем что статистически имеет меньше 1% в веб :)
> тсс, никому не говорите, любой плагин как раз это и делает,что делает? генерит страницу по запросу? а если там разные данные (скажем, у меня на nz плашка внизу, всегда разная, хотя у меня есть и полностью статический вариант nz.51t.ru. А voice.51t.ru и complex.51t.ru - чисто статические, там реально на диске лежат html-файлы, один раз написал на python, и сгенерировал. а nz нельзя и из-за плашки, хотя и это не принципиально, и из-за запросов с промежутками (если бы без промежутков - то вариантов было бы конечное число, и можно было бы сгенерировать), и из-за поиска (хотя и поиск можно сделать отдельно). Но по факту, скорость динамики меня вполне устраивает, в памяти хранится не так много, и работает быстро, и удобно добавлять разное, нужное и не очень (чисто для проверки).
>> У меня Debian, у меня нет http в той секции, где мои записи.
> http это секция в самом начале nginx.confnginx.conf я не меняю, а то обновление ругаться будет, только файлы в conf.enable или как его там...
> кому-то лениво разбираться с конфигами nginx, кому-то с тем что статистически имеет
> меньше 1% в веб :)Про 1% я бы поспорил, один youtube сколько веба занимает. И причём здесь разбираться, речь и шла о том, чтобы сделать реализацию, которая была бы функциональна для пользования, и удобна для деплоя. Какая лично вам разница, что деплоить?
>речь и шла о том, чтобы сделать реализацию, которая была бы функциональна для пользования, и удобна для деплоя. Какая лично вам разница, что деплоить?на что будет спрос, то и буду ставить )
> на что будет спрос, то и буду ставить )вы же не даёте убийце вордпрессов ни единого шанса
так покажите своего убийцу вордпрессов - люди попробуют, если понравится - потянутся
а пока что видно только "либо шах, либо ишак"
и да раз уж зашло дело о сравнении... можно задать несколько глупых вопросов по части питона (и ruby бы кстати тоже) в веб?1) насколько просто там реализован запуск процессов от пользователя
например нужно реализовать работу 1 виртуального хоста от user1, 2 - от user22) поддержка chroot ?
> и да раз уж зашло дело о сравнении... можно задать несколько глупых
> вопросов по части питона (и ruby бы кстати тоже) в веб?
> 1) насколько просто там реализован запуск процессов от пользователя
> например нужно реализовать работу 1 виртуального хоста от user1, 2 - от
> user2
> 2) поддержка chroot ?Да и майку сварщика я тоже на стройке нашёл, если честно.
1. запуск процессов ОТКУДА?
2. что значит "поддержка chroot"? можно обстоятельнее?
ну если на примере того как у меня работает phpnginx -> сокеты fastcgi php-fpm с пулами работающими от разных пользователей, php-fpm работает в chroot (директива chroot php-fpm.conf для каждого пула)
в результате для каждого location в nginx можно использовать fastcgi_pass на сокет нужного пула php-fpm, соответственно каждый сайт работает в chroot и от своего uid/gidпохожее можно реализовать для ruby, python с использованием nginx?
> похожее можно реализовать для ruby, python с использованием nginx?независимо от того, кто и как запускает (wsgi-сервер-адаптер-иликто или ещё как), в любом случае каждое приложение сначала запускается, с вполне конкретным environment и от вполне конкретного пользователя.
Самый простой, примитивный, лобовой вариант:
server {
server_name .nzzzzzz.51t.ru;
location / {
proxy_pass http://127.0.0.1:40044;
}
}и запустить python myapp.py от нужного юзера нужным способом, используя всё, что придумали для запуска, безопасного или не очень, для приложений за последние десятилетия.
А php работает в режиме "что вижу, то и пою", подбирает файлики, и если сервер разрешает - кормит ими интерпретатор.
> 1) насколько просто там реализован запуск процессов от пользователя
> например нужно реализовать работу 1 виртуального хоста от user1, 2 - от user2Кстати, а чем просто не нравится
sudo -u user1 python run.py?
sudo -u user2 python run2.py?Я так и запускаю. И у меня hg.51t.ru и nz.51t.ru от разных пользователей, насколько я помню.
upd: нет, не от разных. но раньше были от разных, и hg вообще жил внутри chroot, потому что боязно было.
> sudo -u user1 python run.py?
> sudo -u user2 python run2.py?хорошо, спасибо
> hg вообще жил внутри chroot
насколько был "заселен" этот chroot?
php-fpm chroot может быть заселен минимально:
/bin/sh
/usr/bin/sendmail (враппер, отсылающий письма на localhost:25)
/etc: group host.conf hostname hosts localtime networks nsswitch.conf passwd protocols resolv.conf services
/dev: null urandom zero
/lib: libc libnss_dns ну и по мелочи чтобы sendmail запускалсявообщем чтобы имена хостов разрешались php приложениями и внутренняя функция mail работала, хотя для того же wp есть плагин чтобы отсылать почту не через php mail а на сторонний smtp втч с авторизацией
>> hg вообще жил внутри chroot
> насколько был "заселен" этот chroot?Через debootstrap. Это единственный chroot, который я знаю.
По большому счёту, работает всё то же, что и для запуска обычного приложения. Вообще, это и есть обычное приложение, которое общается или через порт, или через сокет. При этом приложения могут прозрачно наслаиваться друг на друга и на сервер.
Если приложения можно запускать как-то иначе, значит и это можно запускать как-то иначе. Хоть через тот же lxc.
http://ru.wikipedia.org/wiki/WSGI
если сделать hg clone nz, а затем просто запустить run.py, то оно гордо представится "я wsgi-сервер, слушаю порт 40044".
ну я использую минимальный вариант, и файлы копирую в chroot вручную, чтобы _ничего лишнего_ не было, и уж тем более suid бинарников
ладно, спасибо, может быть если нечего делать будет поставлю что нибудь для python/ruby напосмотреть..
> ну я использую минимальный вариант, и файлы копирую в chroot вручную, чтобы
> _ничего лишнего_ не было, и уж тем более suid бинарников
> ладно, спасибо, может быть если нечего делать будет поставлю что нибудь для
> python/ruby напосмотреть..Приложения можно хоть стихийно на разных компьютерах запускать и вызывать через proxy_pass, у каждого приложения своя жизнь.
Я рад, что у вас нашёлся новый досуг, но опять же про нужные функции мне никто ничего так и не ответил. Я уже завёл репозиторий, завёл трекер на http://dev.on.51t.ru/ , и уже приготовился к решительным шагам, но оказывается, что нужно от wordpress не только я не знаю, а вообще никто не знает.
> что нужно от wordpress не только я
> не знаю, а вообще никто не знает.ну для начала неплохо бы реализовать базовый функционал cms с упором на blog
написание статей,
разные шаблоны и темы оформления
загрузка медиафайлов на сервер и их использование, в "коробочном" вп например нет своей приличной галереи и слайдшоу
комментарии (+ защита от спама), поддержка альтернативных систем напр. disqus
ну и всякие социальные плюшки.. pingbacks, reblogging, commentluv...
> ну для начала неплохо бы реализовать базовый функционал cms с упором на blog написание статей,
> разные шаблоны и темы оформления
> загрузка медиафайлов на сервер и их использование, в "коробочном" вп например нет
> своей приличной галереи и слайдшоу
> комментарии (+ защита от спама), поддержка альтернативных систем напр. disqus
> ну и всякие социальные плюшки.. pingbacks, reblogging, commentluv...Действительно, для начала бы неплохо. Спасибо, что поставили на место :) В смысле, спасибо за советы, открыл много незнакомых слов, попробую всё это сделать, легко и не напрягаясь, да поможет мне python.
А что такое pingbacks, reblogging, commentluv?
>легко и не напрягаясь, да поможет мне python.несомневаюсь, WP продукт сильно разрозненный, зачастую конфликтующий между компонентами различных плагинов, с другой стороны сложно сделать что-то что можно изменять под разные требования, хотя можно сделать то, что могло бы устроить всех в базовой поставке,
еще раз повторюсь про галерею, например красиво выложить набор фоточек в базовом вордпрессе получится не очень.>А что такое pingbacks, reblogging, commentluv?
попробую обьяснить на пальцах, хотя все намного хитрее и чтобы это реализовать придется изучать гораздо больше
pingback - если статья ссылается (или упоминает что-то) на другую статью то другая статья оповещается о том, что на нее сослались, это может быть как в пределах одного блога, так и можно ссылаться на другой
commentluv - возможность для комментариев, показ названия и ссылки на последнюю статью в блоге комментатора (реализуется через rss)
Reblogging (or, in Twitter parlance, retweeting) is the mechanism in blogging which allows users to repost the content of another user's post with an indication that the content of the repost is a "reblog" from another user.
(а это кусок википедии..), вообщем реблог это вариант "плагиата" со ссылкой на автора,
впрочем часто используется и в вариантах когда автор имеет несколько блогов в разных системах (фейсбук, тумблер, блоггер итп) и использует reblogging на свой основной блог
>>легко и не напрягаясь, да поможет мне python.
> несомневаюсь, WP продукт сильно разрозненный, зачастую конфликтующий между компонентами
> различных плагинов, с другой стороны сложно сделать что-то что можно изменять
> под разные требования, хотя можно сделать то, что могло бы устроить
> всех в базовой поставке,
> еще раз повторюсь про галерею, например красиво выложить набор фоточек в базовом
> вордпрессе получится не очень.Я всё-таки попробую разбить на этапы, и если на первых мне будет стыдно и в меня будут показывать пальцами, то когда-нибудь потом оно, становясь лучше от шага к шагу, вырастет. Я никуда не тороплюсь, пусть бедняжка wordpress поживёт. Да и трекер, если там будет хорошая цепь записей, тоже можно будет когда-нибудь как учебное пособие использовать.
>>А что такое pingbacks, reblogging, commentluv?
> попробую обьяснить на пальцах, хотя все намного хитрее и чтобы это реализовать
> придется изучать гораздо большеЭтап 18-й, не раньше. А этим реально пользуются, оно приносит реальную пользу?
> pingback - если статья ссылается (или упоминает что-то) на другую статью то
> другая статья оповещается о том, что на нее сослались, это может
> быть как в пределах одного блога, так и можно ссылаться на другойКто оповещается, как оповещается? Или нужно ходить по реферерам и потихоньку их парсить? И нужно ли ходить, если другие не ходят. И нужно ли оно вообще?
> commentluv - возможность для комментариев, показ названия и ссылки на последнюю статью
> в блоге комментатора (реализуется через rss)Каком блоге комментатора? Отказ от sql-представления конечно позволит мне на каждый объект иметь произвольное число записей, и впихивать туда всё, что душеньке угодно, а потом это обрабатывать хоть клиентом, хоть сервером, хоть ещё чем-то, но не хочется перегружать сам экран пользователя лишней информацией. Неужели оно действительно нужно для самих пользователей?
> Reblogging (or, in Twitter parlance, retweeting) is the mechanism in blogging which
> allows users to repost the content of another user's post with
> an indication that the content of the repost is a "reblog"
> from another user.
> (а это кусок википедии..), вообщем реблог это вариант "плагиата" со ссылкой на
> автора,
> впрочем часто используется и в вариантах когда автор имеет несколько блогов в
> разных системах (фейсбук, тумблер, блоггер итп) и использует reblogging на свой
> основной блогИ как это выглядит? Ну плагиат. Ну со ссылкой. Что произошло, чтобы плагиат со ссылкой стал называться "reblogging".
>>А что такое pingbacks, reblogging, commentluv?
>А этим реально пользуются, оно приносит реальную пользу?к этому привыкли, отсутствие этого вызовет некоторое недоумение
>Кто оповещается, как оповещается? Или нужно ходить по реферерам и потихоньку их парсить? >И нужно ли ходить, если другие не ходят. И нужно ли оно вообще?
сохраняется статья, (отложенно) запускается процесс перестроения sitemap, функционал pingback проверяет ссылочки упомянутые в статье на предмет <link rel="pingback" href="URL" /> ну и оповещает, нагрузка не большая на сервер, если конечно статья не состоит из одних только ссылок кучей.. но это уже проблемы дорвейщиков ) в нормальном блоге в статье ссылок обычно не так много
>> commentluv
>Отказ от sql-представления конечно позволит мне на каждый объект иметь произвольное число >записей, и впихивать туда всё, что душеньке угодно, а потом это обрабатывать хоть >клиентом, хоть сервером, хоть ещё чем-то, но не хочется перегружать сам экран >пользователя лишней информацией. Неужели оно действительно нужно для самих пользователей?это стимулирует написание комментариев, обмен ссылками, SEO
особенно если ссылки будут dofollow>> Reblogging
>И как это выглядиткак перепост статьи или ее части в другой блог
Вообще, у меня есть свои мысли, что бы хотелось сделать мне, в первую очередь, поверх ядра со статьями, новостями, комментариями и тэгами."Топики". Т.е. общая тема для нескольких записей, которая делает соответствующую плашку, позволяя объединять цикл статей одной темой.
"Ссылки". Возможность ко всему привязать любой объект, будь то статья, комментарий, картинка или что-то ещё, чтобы эти ссылки учитывались. В идеале - не делать никаких вставок объектов, а всё делать через парсинг таких ссылок. Усложнит это или упростит - я не знаю, но количество элементов и абстракций уменьшит.
(сделал реблоггинг на dev.on.51t.ru)
в WP таксономия строится на категориях и тэгах, вроде как этого хватает
> в WP таксономия строится на категориях и тэгах, вроде как этого хватает(что такое таксономия, даже знать не хочу)
Мне это, как пользователю, не хватает. Иной раз найдёшь в поиске или по ссылкам "третья часть марлезонского балета", и непонятно, где другие части. Статья может быть 2007 года, и с тех пор и тэги, и категории, забиты другими статьями.
(Последний такой случай был у меня позавчера. И, что характерно, не нашёл. Может быть, не т а к с и л ь н о хотел, но я не могу всё время так сильно хотеть.)
>Мне это, как пользователю, не хватает. Иной раз найдёшь в поиске или по ссылкам "третья часть марлезонского балета", и непонятно, где другие части. Статья может быть 2007 года, и с тех пор и тэги, и категории, забиты другими статьямиYet Another Related Post Plugin
самый удобный вариант...
+ опять же тэги и ... поиск по сайту )
также вышла и PHP 5.5.0-RC3 , тоже с исправлением
Допустим есть необходимость запустить небольшой блог.
Назовите хотя-бы одну причину зачем мне может понадобится WP, если можно потратить немного времени и сил на изучение bootstrap и с его помощью реализовать задуманное и наслаждаться преимуществани отказа от WP и php.
Проще говоря плюсы отказа от WP гораздо очевиднее плюсов самого WP.
> Назовите хотя-бы одну причину зачем мне может понадобится WP,Те же самые, почему бабушкам для бега по интернету ставят cracked windows xp tuned by vasya. Незнание и поклонение.
В принципе - понятно. Появился инструмент для быстрого клепания сайтов (WP,drupal, подставьте нужное) и появились своего рода CMS-еникейщики которые предпочитают изучать то какие модули WP с какими конфликтуют, нежели основы HTML, CSS javascript...
В общем картина ясна.
вэпэкапэц: начало
смотрите в 3dпервый процент пройден
Ну ёж я. коды, планы. для УВ главное - НАЗВАНИЕ. Бублик - слишком сухо, Катя - слишком много, УВ - слишком УВ... Всё, вот на что силы и средствы бросать надо.
второй процент. добавлена загрузка картинок.
о, статейка"PHP создан, чтобы умирать"
http://habrahabr.ru/post/179399/
и ещё, и это очень важно на будущее.попадая на разные форумы и обсуждения, я встречал такую вещь, как 'pythonic'. Новички именно так и пишут, "вот код, тут 5 строк, он работает, но он не pythonic". Люди, которые понимают базовые аксиомы, уже могут чувствовать, какой код pythonic, а какой не pythonic. И такой код потом приятно будет читать, всем кто с 'python in mind'.
Можно такое представить в php? Что такое php-стиль? php-стиль - это швабода, каждый хочет, как пишет, есть 37 способов сделать то-то и разные люди используют все 37, каждый - свой. И php поощряет писать лапшу "лишь бы работало здесь и сейчас, а поддержка и развитие - не важно". Поэтому на большинство php-кода смотреть больно.
А синтаксис? Дело даже не в том, какими функциями то или иное обладает. Жигули тоже может ездить, но я никогда не сяду за жигули, даже если мне будут сильно приплачивать. Я ездил на жигулях, и знаю, что оно может... Функции одни, но в одном этим пользоваться легко и приятно, реализовывать свои мысли - удобно, а в другом - не совсем.
На python легко писать правильно, сложно писать неправильно, и легко читать правильное. На php писать муторно (и с творческим процессом разработки это не имеет ничего общего, это именно механический процесс кодирования, от забора до обеда), и читать сложно. Потому что у php нет пути, а есть "ща по быстрому на пишем, а там - трава не расти". Поэтому в индустрии вебдева очень много мусора, от такого подхода. И работает там всё не благодаря, а вопреки.
>[оверквотинг удален]
> и знаю, что оно может... Функции одни, но в одном этим
> пользоваться легко и приятно, реализовывать свои мысли - удобно, а в
> другом - не совсем.
> На python легко писать правильно, сложно писать неправильно, и легко читать правильное.
> На php писать муторно (и с творческим процессом разработки это не
> имеет ничего общего, это именно механический процесс кодирования, от забора до
> обеда), и читать сложно. Потому что у php нет пути, а
> есть "ща по быстрому на пишем, а там - трава не
> расти". Поэтому в индустрии вебдева очень много мусора, от такого подхода.
> И работает там всё не благодаря, а вопреки.Ну ты и трепло.... Слушай, а когда ты, собственно, думаешь и работаешь?
> Ну ты и трепло....стараюсь
А вообще - php навязывает свой стиль, называемый "отсутствие стиля", и сильно привязывает к нему. Хорошо не только то средство, к которому легко привязаться, но и то, от которого легко отвязаться.
Вопрос на засыпку: а какая сейчас наиболее актуальная и мейнстримовая версия php, которой пользуются массы? 5.4? 5.3? 5.2?
> Вопрос на засыпку: а какая сейчас наиболее актуальная и мейнстримовая версия php,
> которой пользуются массы? 5.4? 5.3? 5.2?Однозначного ответа нет. В основном - 5.2 и 5.3, с тихим переползанием на 5.4. Мейнстримом можно считать 5.3. 5.2 держится только за счет слоупочных хостеров. У 5.4 есть вкусные плюшки, но переползание слегка сдерживается стандартным циклом жизни инфраструктур.
> Однозначного ответа нет. В основном - 5.2 и 5.3, с тихим переползанием
> на 5.4. Мейнстримом можно считать 5.3. 5.2 держится только за счет
> слоупочных хостеров. У 5.4 есть вкусные плюшки, но переползание слегка сдерживается
> стандартным циклом жизни инфраструктур.А что основное, 5.2 или 5.3?
Под что ориентированы основные проекты, те же вордпрессы и друпалы?
> А что основное, 5.2 или 5.3?
> Под что ориентированы основные проекты, те же вордпрессы и друпалы?Насчет вордпрессов и друпалов не скажу - но основная масса кода сейчас под 5.3, 5.2 близится к EOL. В любом случае - совместимость достаточно высока, и очень много кода работает почти бесшовно под версиями от 5.2 до 5.4.
Думаю, не совру, если назову мейнстримом именно 5.3 - он присутствует в большинстве серверных дистрибутивов.
> Думаю, не совру, если назову мейнстримом именно 5.3 - он присутствует в большинстве серверных дистрибутивов.Ага, спасибо.
http://wordpress.org/about/stats/
5.2
затем 5.3
попутно с вэпэкапцом также готовятся:викикапец:
исходники http://hg.51t.ru/t2twiki
пример (без записи) http://wiki.51t.ru
и
незнаючемукапец, просто удобно:
исходники http://hg.51t.ru/twi-json
пример (без записи) http://bug.51t.ru
и ещё 5 копеек:a=a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined'5' + 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects'5' == 5
False[] == 0
False
[] == ''
False
'' == 0
False
<?php
print ('5'+5) . "\n";
print ('0'==0) . "\n";
$a=$a+5;
print $a . "\n";
print empty('0');
?>10
1
PHP Notice: Undefined variable: a in /tmp/test.php on line 4
5
1
> и ещё 5 копеек:Переоценил, польстил себе.
А в чем дело-то, собственно? У языка нестрогая типизация.
'0' == 0 - если хотите строгую - надо писать '0' === 0
$a = $a + 5 - тоже ок, выводит warning, и инициализируется в null. null + 5 = 5
> А в чем дело-то, собственно? У языка нестрогая типизация.
> '0' == 0 - если хотите строгую - надо писать '0' ===
> 0
> $a = $a + 5 - тоже ок, выводит warning, и инициализируется
> в null. null + 5 = 5а я всё думал, откуда ноги у страха за register_globals растут. а оказывается, бери да пользуйся :)
это не очень хорошо, не могу придумать ни одного случая, когда бы это понадобилось, и много случаев, когда это источник потенциальных проблем. хотя и в python 2 не всё ладно.
'a' > 5
True
'a' < 5
Falseв python 3 исправили:
'a' < 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
но самое смешное - это ruby и js, вот в этом ролике:
http://www.youtube.com/watch?v=kXEgk1Hdze0
> это не очень хорошо, не могу придумать ни одного случая, когда бы
> это понадобилосьОчень часто удобно, чтобы не лепить везде (int), .toString() или подобия оных.
Вообще нестрогая типизация - вещь очень удобная, и очень специфичная, её всегда надо брать в расчёт, чтобы не делать ошибок.