• Flash +.РФ. Что делать?

      Собственно, проблема.
      Флэш-ролик не может обратиться к ресурсам на сервере, если размещен на сайте с международным именем (в частности, РФ). Замечено в браузере Firefox под Windows.
      Не очень приятный глюк, особенно с учетом распространенности данного браузера и данной платформы… Беглый взгляд по форумам не принес желаемых результатов, и пришлось взяться за исследования. Итак, подробности…
      Читать дальше →
    • Самые быстрые настройки для PHP-скриптов

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

        Так как серверные PHP-скрипты выполняются, бывает, много раз в секунду, скорость загрузки конфигов — достаточно важный параметр. Хотя ему, порой, уделяется не очень много внимания. Давайте сравним различные варианты хранения настроек для PHP-скриптов с точки зрения скорости их работы. Ну и коснемся вкратце их удобства.
        Читать дальше →
      • «Чашка чая» на разных языках

          Какой язык программирования Вы предпочитаете? C++? Или чистый C? Или Вы поклонник скриптовых языков — Python или PHP?
          Конечно, Вы ответите, что это зависит от задач, которые перед Вами стоят.
          Хорошо. Давайте попробуем реализовать простой алгоритм — приготовить чашку чая — на разных языках программирования.
          Можете посмотреть, что получилось у меня. Реализации не претендуют на право быть идеальными, да и результаты отличаются. Но ведь дело не в чае — дело в языке! Итак...
          Читать дальше →
        • Скажи разработчику, что ты думаешь!

            О существовании сервиса Яндекс.Метрика мы знали достаточно давно, но неожиданно нам в голову пришла одна интересная идея.

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

            О чем мы и расскажем.
            Читать дальше →
          • Свой Web-PDF принтер за 10 минут



              Как потратить совсем немного времени и сделать что-нибудь простое и оригинальное, поражающее своей глобальностью — но абсолютно бесполезное? Очень просто. Давайте сделаем свой принтер.

              Нам понадобится (кроме головы и рук) только работающий web-сервер с поддержкой cgi-bin, к которому у нас есть доступ по FTP. Есть такой? Поехали!

              Читать дальше →
            • «Не отображается сайт»

                Статья в помощь людям, у которых совсем не отображается их сайт.

                Именно с такой проблемой я столкнулся, работая с сайтами клиентов. После того, как поступило еще несколько звонков в техническую поддержку, стало понятно, что «у меня не открывается сайт» — это результат не плохого интернета, и не кривых рук, а чего-то более глобального.

                Симптомы проблемы выглядели следующим образом. Компьютер в интернет ходит, Хабрахабр и Google открываются нормально. Сайт клиента — нет. Сервер не «пингуется». Что странно — с других компьютеров в этой же сети сайт открывается, никаких проблем…
                Читать дальше →
              • Печать из Vista на сетевом Linux-принтере

                  Переведя компьютеры в нашей организации на лицензионное программное обеспечение, мы обнаружили проблему с ораганизацией печати документов. Компьютер под управлением Windows Vista Business не стал печататать на сетевом принтере, подключенном к Linux-компьютеру. Причем не работал ни один из принтеров, которые мы пробовали.
                  Читать дальше →
                • Nginx + серверный Javascript

                    … или как перейти с PHP + JavaScript на JavaScript + JavaScript


                    Идея реализовать проект на сервер-сайд JavaScript была уже давно. Проблема была в отсутствии подходящего серверного программного обеспечения. Существующие открытые проекты не устраивали по разным причинам. Устанавливать дополнительный модуль для Apache было не самой хорошей идеей, потому что производительность и оптимизация использования памяти при этом были бы не на высоте. С помощью jslibs можно настроить FastCGI, но очень не хотелось оставлять ни малейших шансов «502 Bad Gateway», проект ngx_http_js_module так и остался в зачаточной стадии, а ngxv8 недостаточно развит для реализации реальных приложений. Поэтому я решил сделать собственную реализацию серверного javascript. Причем постараться сразу запрограммировать всю базовую функциональность, чтобы можно было ее тестировать в условиях, близких к реальности.

                    В качестве основного веб-сервера было решено использовать nginx, в качестве «движка» javascript — TraceMonkey (javascript-движок из Mozilla Firefox, бывший SpiderMonkey), и написать модуль для nginx, который бы их «склеил». Ничего сложного, на первый взгляд, но очень хотелось иметь определенную функциональность (и это получилось!), чтобы можно было нормально работать дальше. Большинство идей заимствованы, кстати, из PHP.
                    • Корректная работа в multi-thread условиях
                    • Возможность выполнять скрипт, указанный в URL, а не настраивать отдельно скрипт-обработчик и функцию-обработчик для каждого location
                    • Возможность вызывать include(), sleep(), alert() из скрипта, использовать __FILE__ и __LINE__
                    • Ограничение памяти, выделяемой каждому скрипту, и времени работы скрипта
                    • Защита открываемых скриптом файлов, указав в настройках список разрешенных папок. Примерно как open_basedir в PHP
                    • Автоматический разбор данных запроса (параметров GET, POST, и, конечно же, cookies), чтобы не писать обработку данных на javascript
                    • Поддержка запросов application/x-www-form-urlencoded и multipart/form-data
                    • Поддержка basic-авторизации
                    • Работа с базами данных (в первую очередь, MySQL и SQLite)
                    • Работа с файловой системой: чтение и запись файлов, проверка существования файлов, и т.п.
                    • Кэширование байт-кода скриптов, как, например, в eAccelerator
                    Плюс некоторые другие возможности (инструменты для шаблонизации, для создания конфигурационных файлов, и т.п.), но их в основной список я не включил — их позволяют сделать языковые возможности TraceMonkey.

                    От слов — к делу! Как скомпилировать и настроить, как протестировать и сравнить...

                    Читать дальше →