Ваше замечание понятно. Только эта фраза про «100 раз» – это не подсчет, а отсылка к одному широко известному в узких кругах исследованию, которое показало разброс цен в 140, кажется, раз. Не вижу в этой фразе противоречия с цифрами: давайте подумаем мозгом, если топ-50 студий показали разброс в 70 раз, то какого разброса стоит ожидать от всего рынка веб-разработки?
Вот за что люблю Хабровское сообщество – ни одну мелочь не пропустят, все досконально изучат!
Да, студий в итоге вошло 51 – так получилось. Был план охватить топ-50, но по методологии отбора (о ней читайте в отчете) получалось, что попадает или 49, или 51 – я решил взять с запасом. Данные, соответственно, не в процентах, а в штуках.
Ух, Саша, не ожидал, что твой пост меня так увлечет :-) Провел больше часа в чтении документации и исходников, нашел интересный пост (точнее, там их серия), обнаружил, что в PHP (начиная с 5.3) появился нормальный сборщик мусора.
Краткий итог таков: лучшее описание механизма references в php приведено в документации:
The closest analogy is with Unix filenames and files — variable names are directory entries, while variable content is the file itself. References can be likened to hardlinking in Unix filesystem.
References are opaque things that are like pointers, except A) smarter and B) referring to HLL objects, rather than memory addresses. PHP doesn't have references. PHP has a syntax for creating *aliases* which are multiple names for the same object. PHP has a few pieces of syntax for calling and returning «by reference», which really just means inhibiting copying. At no point in this «references» section of the manual are there any references.
В общем, теперь я вроде неплохо понял, как это работает, но принципиальное отличие в подходе PHP от многих других языков в очередной раз удивило.
Последний пример особенно позабавил, не сталкивался с этим в PHP. Оказалось, что доки про это предупреждают:
Warning Reference of a $value and the last array element remain even after the foreach loop. It is recommended to destroy it by unset().
– но все равно такая реализация пугает. Почему не $foo является ссылкой на значение элемента массива, а наоборот, элемент массива является ссылкой на $foo – это какой-то взрыв мозга. Вот то ли дело в чистом Си, или хотя бы в Perl .)
Надо бы для истории оставить коммент, что движок ghost успешно стартовал и предлагает open-source self-hosted решение или (как и wordpress) облачное за деньги – ghost.org/
Написан он на nodejs, и, кажется, получился действительно легкий и приятный.
Смотрю на vesta, нравится, но очень удивило расположение конфигов в папке пользователя.
Сами конфиги принадлежат руту, но домашняя директория принадлежит пользователю. Получается, я как пользователь могу переименовать папку conf и воссоздать новую с произвольным содержимым. Таким образом, у каждого пользователя на сервере есть возможность влиять на системные конфиги как минимум apache и nginx: можно испортить конфиг, или тайно прописать что-то для другого сайта и т.п.
Я правильно рассуждаю или чего-то не учел и такой дырки нет?
Простите, но так не бывает. Хотя бы 5% в среднем у IE должно быть. Или у вас очень небольшая выборка, или реклама так настроена, или счетчик не срабатывает в IE.
Для истории оставлю это здесь: отказались от influxdb после еще пары эпизодов полной потери данных в бою.
Influxdb в непредсказуемые моменты необъяснимо портил свои файлы данных, после чего полностью переставал запускаться. Я пообщался про это с его разработчиками, но разобраться не смогли. В итоге переехали на старый добрый mysql, разработав под него немного другую структуру данных. Все написанное относится к influxdb версии 0.8.x, на текущий момент готовится 0.9.0 (есть release candidate), но его мы не пробовали.
«писем отправленных по POP» – это сильно .) Вы про smtp? Лучше пользуйтесь IMAP и будет Вам счастье. А еще лучше – родным клиентом Mail.Ru (если речь про смартфоны-планшеты) – он быстрее.
Ну это немного разные вещи все-таки: graphite именно для графиков и измерений, а influxdb — почти база данных, с выборками разными. По фичам в influxdb пока сильно не хватает функций для обработки данных, например банальной moving average.
1. Согласен, это очень мешает
2. Удалить его и создать заново — нормально перегенеряет
3. Возможно, хотя у меня крутятся continuous query с кардинальностью группировки порядка 50к — вроде нормально работает.
Да, студий в итоге вошло 51 – так получилось. Был план охватить топ-50, но по методологии отбора (о ней читайте в отчете) получалось, что попадает или 49, или 51 – я решил взять с запасом. Данные, соответственно, не в процентах, а в штуках.
Постараемся исправить, спасибо за внимательность!
Краткий итог таков: лучшее описание механизма references в php приведено в документации:
А лучший комментарий на эту тему – там же рядом:
В общем, теперь я вроде неплохо понял, как это работает, но принципиальное отличие в подходе PHP от многих других языков в очередной раз удивило.
– но все равно такая реализация пугает. Почему не $foo является ссылкой на значение элемента массива, а наоборот, элемент массива является ссылкой на $foo – это какой-то взрыв мозга. Вот то ли дело в чистом Си, или хотя бы в Perl .)
Написан он на nodejs, и, кажется, получился действительно легкий и приятный.
Сами конфиги принадлежат руту, но домашняя директория принадлежит пользователю. Получается, я как пользователь могу переименовать папку conf и воссоздать новую с произвольным содержимым. Таким образом, у каждого пользователя на сервере есть возможность влиять на системные конфиги как минимум apache и nginx: можно испортить конфиг, или тайно прописать что-то для другого сайта и т.п.
Я правильно рассуждаю или чего-то не учел и такой дырки нет?
Простите, но так не бывает. Хотя бы 5% в среднем у IE должно быть. Или у вас очень небольшая выборка, или реклама так настроена, или счетчик не срабатывает в IE.
Influxdb в непредсказуемые моменты необъяснимо портил свои файлы данных, после чего полностью переставал запускаться. Я пообщался про это с его разработчиками, но разобраться не смогли. В итоге переехали на старый добрый mysql, разработав под него немного другую структуру данных. Все написанное относится к influxdb версии 0.8.x, на текущий момент готовится 0.9.0 (есть release candidate), но его мы не пробовали.
2. Удалить его и создать заново — нормально перегенеряет
3. Возможно, хотя у меня крутятся continuous query с кардинальностью группировки порядка 50к — вроде нормально работает.