На ресурсе часто можно встретить вопросы из разряда «А нужна ли статья про..» и, по моим наблюдениям, на такие вопросы всегда отвечают, что да, нужна, делайте. Зачем тогда такие бесполезные вопросы? Если можете сделать хорошую статью о чем-то, то просто сделайте.
Также для Ростова в студии Информа сделали департамент недвижимости, я на него наткнулся в линче Лебедева. С одной стороны симпатично, с другой стороны конечно не без некоторых недостатков.
Почему бы не использовать вместо слова «стартап» слово «бизнес» или «дело»? Вместо «стартапер» — «бизнесмен» или «предприниматель»? Мне кажется, тогда все встало бы на свои места.
Да, только не стоит путать Symfony и Symphony. Спутать можно с одной опенсорсной Symphony CMS и, на сколько мне известно, она не имеет отношения к фреймворкам.
Мое понимание фреймворков таково: сообщество опытных и серьезных программистов продумали многие часто возникающие в процессе создания сайтов задачи и предоставили удобные и крепкие инструменты для их решения. Эти инструменты достаточно безопасны, актуальны и не являются говнокодом. Их использование не ограничивает гибкости разработки, позволяет добиться её большей скорости.
Значит у вас есть опыт использования JavaScript фреймворка. В таком случае, можно представить, что представляют из себя PHP фреймворки.
Перечислю некоторые распространенные: Yii framework, русскоязычное сообщество Symfony2 Codeigniter Kohana (форк Codeigniter), на русском
Конечно, для изучения все же желательно пустить в ход свое знание английского. Но для некоторых фреймворков есть множество информации и переведенная документация. Я привел известные мне ресурсы выше.
Сам нахожусь в начале пути изучения PHP фреймворков, хочется посмотреть на каждый и попробовать попрактиковаться.
Как можно оценить показатель цинизма с помощью автоматического семантического анализа? В чем состоит разница между агрессией и враждебностью на примере общения в соц. сети?
Получается «мы провели какие-то там свои исследования с анализом, и, поверьте нам на слово, во вконтакте все ругаются, а в facebook сплошные циники».
Да, если строка со значениями начинается с нуля, то при распаковке получим неверные значения.
Тогда нужно всегда добавлять дополнительную единицу в начало запаковываемой строки и после распаковки убирать ее.
Правильно, Base64 — система счисления с основанием 64. Если попробовать использовать ее (передаем методу toString значение 64) в описываемом случае получим RangeError. Можно использовать до Base36 включительно.
Или предполагается использование Base64 каким-то другим образом?
Реального примера с тысячей значений в куках я привести, к сожалению, не могу.
Но автор оригинала Lea Verou приводит другой пример, натолкнувший ее на исследование этой темы: Christian Heilmann показал ей свое новое HTML5 приложение для проведения презентаций. Там есть интересный функционал: рядом с каждым слайдом стоит галочка, если ее снять, то слайд не будет показан в презентации. (Для тех, кто хочет протестировать — на странице нужно нажать Start Presentation, клавиша N показывает комментарии к слайду, стрелки на клавиатуре осуществляют навигацию). Соответственно мы имеем большой список значений checked/unchecked.
С этим приложением есть проблема — если обновить страницу, то все отметки сбросятся. Поэтому хорошо бы хранить значения об отметках в cookie или localStorage. При этом способ хранения можно оптимизировать, в случае base36 это всего 2 строки несложного кода.
Да, количество значений в этом примере вряд ли достигнет тысячи.
Отмечу, что интерес в статье скорее теоретический, одна из целей статьи — дать пищу для размышлений, об этом говорится в абзаце под заголовком "«Мне кажется, мы зашли слишком далеко»".
На практике, помоему, вообще редко возникает потребность хранения такого большого списка булевых значений. Но если, например, захочется поместить тысячу таких значений в один cookie (который ограничен 4мя килобайтами), то без сжатия не обойтись.
Я сделал вот такой тест: jsperf.com/habr-long-list-of-boolean-values
Там можно протестировать код на своем браузере. Со временем соберется статистика от browserscope, чем больше людей будут тестировать у себя, тем быстрее соберется, как я понял.
Цель этих оптимизаций — уменьшить в первую очередь объем данных, а не скорость обработки. Но действительно, нужно отметить, что, например, если размер несжатых данных требует 250мс на передачу и 250мс на обработку, то в итоге затрачивается 500 мс. Если сжатые данные будут передаваться за 50мс и обрабатываться 450мс, то мы получим те же 500мс и ничего не выиграем по времени, поэтому за этим стоит следить.
работает!
Мое понимание фреймворков таково: сообщество опытных и серьезных программистов продумали многие часто возникающие в процессе создания сайтов задачи и предоставили удобные и крепкие инструменты для их решения. Эти инструменты достаточно безопасны, актуальны и не являются говнокодом. Их использование не ограничивает гибкости разработки, позволяет добиться её большей скорости.
Перечислю некоторые распространенные:
Yii framework, русскоязычное сообщество
Symfony2
Codeigniter
Kohana (форк Codeigniter), на русском
Конечно, для изучения все же желательно пустить в ход свое знание английского. Но для некоторых фреймворков есть множество информации и переведенная документация. Я привел известные мне ресурсы выше.
Сам нахожусь в начале пути изучения PHP фреймворков, хочется посмотреть на каждый и попробовать попрактиковаться.
Получается «мы провели какие-то там свои исследования с анализом, и, поверьте нам на слово, во вконтакте все ругаются, а в facebook сплошные циники».
Тогда нужно всегда добавлять дополнительную единицу в начало запаковываемой строки и после распаковки убирать ее.
Или предполагается использование Base64 каким-то другим образом?
или я вас не правильно понял?
Если правильно, то такое решение вернет
RangeError
, что указано в статье.Но автор оригинала Lea Verou приводит другой пример, натолкнувший ее на исследование этой темы: Christian Heilmann показал ей свое новое HTML5 приложение для проведения презентаций. Там есть интересный функционал: рядом с каждым слайдом стоит галочка, если ее снять, то слайд не будет показан в презентации. (Для тех, кто хочет протестировать — на странице нужно нажать Start Presentation, клавиша N показывает комментарии к слайду, стрелки на клавиатуре осуществляют навигацию). Соответственно мы имеем большой список значений checked/unchecked.
С этим приложением есть проблема — если обновить страницу, то все отметки сбросятся. Поэтому хорошо бы хранить значения об отметках в cookie или localStorage. При этом способ хранения можно оптимизировать, в случае base36 это всего 2 строки несложного кода.
Да, количество значений в этом примере вряд ли достигнет тысячи.
Отмечу, что интерес в статье скорее теоретический, одна из целей статьи — дать пищу для размышлений, об этом говорится в абзаце под заголовком "«Мне кажется, мы зашли слишком далеко»".
Там можно протестировать код на своем браузере. Со временем соберется статистика от browserscope, чем больше людей будут тестировать у себя, тем быстрее соберется, как я понял.
Цель этих оптимизаций — уменьшить в первую очередь объем данных, а не скорость обработки. Но действительно, нужно отметить, что, например, если размер несжатых данных требует 250мс на передачу и 250мс на обработку, то в итоге затрачивается 500 мс. Если сжатые данные будут передаваться за 50мс и обрабатываться 450мс, то мы получим те же 500мс и ничего не выиграем по времени, поэтому за этим стоит следить.