• Обзор SSL-сертификатов: типы, выбор, приемущества.

      Многие задавали себе вопрос, чем различаются разные SSL-сертификаты, зачем его получать и почему нельзя использовать самоподписанный.

      Здесь я попытаюсь ответить на эти вопросы, рассмотрев:

      • Причемущества от наличия SSL вообще, и подписанного сертификата в частности.
      • Типы SSL-сертификатов.
      • Пути их получения.


      Я не претендую за 100% верность данной статьи, она основана только на моем мнении и личном опыте :)
      Подробности
    • nginx + apache. Кеширование

        Привет, %username%
        Тут я хочу рассказать о том, как я настраивал кеширование на одном сервере, точнее VDS. Характеристики сервера: 2000MHz, 2GB RAM, 80Gb HDD, технология виртуализации — OpenVZ.
        Было решено использовать Nginx версии 0.7.64. На сервере находилось около 200 сайтов. И несколько высоко нагруженных проектов. Вот эти самые проекты и давали ощутимые тормоза и нагрузку на сервер. Мы будем рассматривать DLE в этом примере.
        Читать дальше →
      • Немного советов начинающим и не очень

          image

          Немного воды
          Разрешите представиться — фрилансер-дизайнер с опытом работы чистым фрилансером всего полтора месяца.
          Профессиональный опыт работы в вебе — более 6 лет. Именно эти шесть лет позволили мне сейчас стать тем, кем являюсь и окончательно выбрать вектор своего движения.

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

          Но, как оказалось, я ошибался. Потому-то как минимум 50% фрилансеров просто не понимают каких-то прописных истин, о которых я и хочу поведать далее.
          Читать дальше →
        • Дарю код игры для программистов и клонирую Хабр

            Без всяких условий выкладываю исходники, но не обольщайтесь, это даже заготовкой назвать трудно. Просто проба пера многолетней давности, когда только учился писать. Качество явно не коммерческое, но дома поиграться можно. Внешне уже скомпилённое выглядит так (кликабельно):




            Жанр этот, игры для программистов, из-за довольно высокого порога вхождения никогда не был популярен. А жаль. Потому что, как учил дядько Суворов, тяжело в учении — легко в бою. Я не милитарист и не оракул, но здравый смысл подсказывает, что довольно скоро некоторым из нас придётся писать ПО для «гаджетов» типа этого (кликабельно):
            Читать дальше →
          • 17 usability tips to make your CMS rock

              image
              К вашему вниманию перевод статьи Патрика Кеннеди о том, какой должна быть удобная система управления контентом.

              Более чем вероятно, что в вашей CMS будет множество проблем с юзабилити, если вы будете использовать ее в сыром виде. Участвуя в проектах, в которых на меня было возложено внедрение таких систем — систем управления веб-сайтами, интранет-порталами и вики, я заметил, что в их пользовательских интерфейсах есть ряд ключевых областей, требующих исправления с точки зрения удобства использования.
              Читать дальше →
            • PHP модуль — это всё ещё просто. Часть вторая

                Пока nerezus сочиняет статью о встраивании PHP, я постараюсь продолжить его рассказ о написании расширений. Рассказано будет далеко не всё, поскольку я считаю, что сложность наращивать надо постепенно, иначе материал будет трудноусвояемым и совсем не питательным. В связи с этим я всё-таки не расскажу в этот раз, как подменить операторы в классе, кто захочет, может почитать исходники модуля Operator от Сары Големон — основного автора какой бы то ни было информации о разработке расширений PHP.
                Поскольку разработку я веду исключительно в линуксе, то писать мы будем без всяких хитрых аддонов к Visual Studio, ручками, с нуля :) А что, лучше сразу разобраться, а потом уже упрощать свой труд.
                Поехали?
              • SignalsyMQ — простая и быстрая очередь сообщений на PHP+Redis (и немножко Zend Framework)


                  Приветствую читателей. Сейчас я веду разработку собственного фреймворка, основанного, в противовес главенствующей сейчас модели MVC, на базе сигнальной архитектуры (signal/slot). Пока он проходит боевую обкатку в нашем стартапе, и за это время я понял, что просто библиотеки мало — реальные задачи и виденье будущего показывает, что необходим разный функционал, но объединенный одной темой — обработка и доставка информации множеству клиентов в реальном времени (да, в чем-то схоже с Comet-ом, он там тоже есть). Поэтому решено было попробовать реализовать основной компонент — очередь сообщений, которая бы стала основной для следующих проектов, быстрой, гибкой и масштабируемой.

                  Что получилось? Альфа-версия SignalsyMQ — очередь сообщений на базе PHP/Redis/Zend Framework.
                  Читать дальше →
                • phpUnderControl 0.5.0

                  • Перевод
                  phpUnderControl нацелен упростить интеграцию CruiseControl и PHP сделав ее как можно проще. Он объединяет лучшие инструменты в сочетании с простой установкой. Так же позволяет просматривать отчеты от РНРunit, PHP_CodeSniffer и PHPDocumentor. ©

                  Если ваш опыт работы с PHP менее года или же если вы при отладке программ используете var_dump() / printr() и считаете что это единственно верный вариант — проходите мимо, все оскорбленные могут смело идти прямо в профиль и вымещать злобу на карме. Если вы действительно хотите узнать что это такое и для чего это нужно, то советую начать с установки phpUnderControl по этой статье желательно не на Windows платформе и параллельного изучения соответствующей статьи. Надеюсь что в ближайшем будущем на PHP будут создаваться более качественные и технологичные разработки благодаря популяризации современных методов разработки ПО.

                  После довольно продолжительного времени автор phpUnderControl выпустил очередную версию 0.5.0. Кроме незначительных изменений, исправлений и улучшений в этой версии содержится одна новая важная особенность: PHP_CodeBrowser (обзор на англ.).

                  phpUnderControl 0.5.0

                  Читать дальше →
                • Триграммный индекс или «Поиск с опечатками»

                    Как-то по долгу службы появилась необходимость добавить к поиску на сайте всем известную фичу, сервис «Возможно вы имели в виду…» или «Поиск с опечатками». Стали думать как реализовывать. Сторонние сервисы и api использовать не хотелось, ибо время до чужого сервера и назад, да и в целом не очень хорошо. Как раз кстати пришелся модуль pg_trgm, который ищет близкие к запросу слову на основе триграммного индекса.

                    Итак, идея есть, надо реализовывать.
                  • Выполнение поставленных задач

                      image Я часто читаю Хабр и другие ресурсы о том, как управлять временем, эффективно планировать, ставить задачи и т.д. и т.п. Но вот в реальной жизни, как-то трудно все идет. Казалось бы утром выходя в свой офис я знаю, что мне предстоит сотворить, и даже знаю каким образом и с какой очередностью это нужно бы сделать, и все вроде, как хорошо. Но после нескольких часов «усердной работы» прихожу к выводу, что и 20% от намеченного не сделано. Как же так?

                      Думая над тем, почему так происходит я наблюдал за своим поведением несколько недель (ну наблюдение весьма условное, т.к. мне кажется себя пронаблюдать полностью невозможно) и выяснил, что мешает мне именно многозадачность и распараллеливание выполнения этих задач. Что я имею ввиду? Казалось бы совсем логично по возможности выполнять одновременно две и более задачи, так кажется, что экономится время. Например, я знаю, что мне необходимо отыскать рисунки на заданную тематику, отправить смс трем людям, написать пост на хабр, сделать несколько звонков, составить доп.соглашение и акты к договору №n. На первый, беглый взгляд можно объединить некоторые задачи и сделать одновременно. Например, если звонки не официальные можно их сделать во время приготовления чая для брейка, зачем тратить отдельно время для звонков и смс, времени и так нет – в результате когда приходит время брейка в уме другая доминанта и никакие звонки не сделаны. Отыскать рисунки тоже просто, заодно и почту гляну, пока рисунки открываются. О-о-о, новый пост на Хабре (форуме и т.д.) о том, как правильно составилять доп. соглашения – как раз то, что мне нужно. А в дополнение к статье идет несколько примеров и ссылки на другие ресурсы – но мне же нужно написать доп.соглашения, нужно все хорошенько разузнать – и так далее. Думаю, что для многих знакомая ситуация. А поиск рисунков где-то болтается в открытой вкладке и загрузился уже миллион раз. В конце дня обнаруживается, что хотя задачи и супер легкие и времени для выполнения нужно не так уж и много, часть из них все-таки остается не сделаной.
                      Читать дальше →
                    • Поиск по сайту на основе Yandex.XML

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

                        Чаще всего прибегают к готовому решению от Google, с помощью которого можно еще и подзаработать на контекстной рекламе. Но для рунета я бы посоветовал сделать поиск при помощи сервиса Yandex.XML, потому что такой поиск больше адаптирован под морфологию русского языка. К тому же вы можете получить шанс получить самые жирные биды для контекста, если будете использовать поисковый директ.

                        В этом посте я хочу подробно показать вам, что подобный поиск организовать совсем не сложно. Это займет всего несколько минут и выльется в десяток строк на PHP.
                        Читать дальше →
                      • Запускаем софтверный бизнес в России

                          Много было в последнее время топиков о стартапах, организации команд, разработке ПО и некоторых других вещах, неразрывно связанных с софтверным или интернет-бизнесом. В этой статье я хочу рассказать, что сейчас будет вас ждать, пожелай вы открыть свою компанию по продаже программного обеспечения (ПО, далее софта). Ибо пока полноценных топиков на эту тему я не видел.

                          Зачем нужен этот топик? Чтобы после прочтения можно было однозначно ответить на вопросы «А оно мне надо?», «Стоит ли переводить проект в разряд стартапа (или наоборот)?», «Как заработать на своем труде в России?» и на ряд других более конкретно. И это только касательно России (если все будет хорошо, то выложу аналогичный топик и относительно международного софтверного бизнеса).

                          Внимание: вся нижеприведенная информация изложена с позиций минимизации затраченного времени (и увеличения надежности мероприятия) и с учетом отсутствия прописки в городе регистрации юр. лица (и отсутствия рабочего офиса).

                          Продукт и команда


                          Перед стартом обязательно имейте хотя бы что-нибудь. Что-нибудь, что приносит деньги. Без денежного потока (пусть даже в 10-20 тысяч рублей) затевать все это бессмысленно (далее будет понятно, почему, но первичные расходы на оформление всей волокиты составляют порядка 30к рублей). Естественно, открывать свое юридическое лицо и оформлять бизнес стоит в том случае, если вы собираетесь расти. И не просто расти, а очень сильно расти. Иметь оборот в 20-30 тысяч рублей можно и не имея никакого юридического лица, а при «нелегальном» обороте в районе 100 тысяч уже могут начаться различные проблемы с государством (и красиво оформить это может уже не получиться).

                          Итак, в самом начале у нас должен быть продукт. В принципе, все равно какой (если речь идет про бизнес, заключающийся в продаже софта и смежных услуг). Если к этому продукту «прилагается» команда, то поднять всю схему будет значительно проще: пока вы будете бегать по инстанциям с пакетами документов, продажи могут сильно просесть, потому что их некому будет обслуживать. Или просядет разработка. Или еше что-нибудь. Но обязательно просядет. Имейте это в виду.

                          Ладно, вроде у нас есть, что продавать (будь это хоть утилита «Time Machine для Windows»). У нас есть пара человек, которые разделяют ответственность за компанию и готовы работать во имя ее успешности. Что дальше?

                          Дальше самое интересное.
                          Читать дальше →
                        • Свободный WYSIWYG редактор для сайтов и CMS + файловый менеджер для него

                            Хочу представить на суд общественности один наш продукт, выпущенный под open source лицензией.
                            elRTE и elFinder — это свободный WYSIWYG редактор для сайтов и систем управления контентом (CMS) и файловый менеджер для него.

                            Сайт проекта: elrte.ru | Проект на sourceforge: sourceforge.net/projects/elrte

                            Расскажу, в общих чертах, почему мы за это взялись и, что у нас получилось. В нашей CMS мы пользовали FCKEditor. Почему же решили написать свой редактор? Сложно сказать. Решение вызревало довольно долго. Немаловажную роль оказала любовь разработчиков начинать проекты с нуля и изобретать велосипеды. Но это так — эмоции.
                            Читать дальше →
                          • 7 шагов для систематизации процесса дизайна и разработки

                            • Перевод
                            Систематизация означает создание процессов или предопределенного набора мер, которые предназначены для ускорения выполнения трудоемких и повторяющихся задач.

                            Итак, как же можно систематизировать процесс создания дизайна и веб-сайтов в целом? Ниже приведены 7 шагов, которым вы должны будете следовать для создания системы, для выполнения повторяющихся и скучных задач, тем самым сэкономив время для креативной работы.
                            Читаем дальше...
                          • QML — новый подход к построению GUI

                              Традиционно все десктопные приложения пишутся на императивных языках программирования, этот подход прост и понятен, куда проще описать последовательность действий для решения той или иной задачи, нежели поставить задачу в понятной для машины форме, но когда речь заходит о проектировании внешнего вида и поведения, возникают сложности.
                              Веб дизайнеры же привыкли описывать, как должно выглядеть веб приложение, то есть ставить задачу, а не по пунктам описывать её решение, такой подход называется декларативным, он удобен, но к сожалению в традиционных приложениях до сих пор господствует именно императивный подход. Есть конечно дизайнеры форм, но они лишь позволяют в общих чертах обрисовать внешний вид приложения, но совершенно не способны описать его поведение. Для решения это проблемы в Qt Software был предложен новый проект Declarative User Interface и в рамках него новый язык разметки:

                              Встречаем QML


                              Это новый язык разметки, позволяющий описывать не только внешний вид, но и поведение ваших приложений. Он очень прост и обладает json образным синтаксисом, немного сближающим его html5, что думаю очень придется по душе веб-дизайнерам, да и программистам тоже. А в перспективе это наконец позволит полностью разделить внутреннюю логику работы приложения и его внешнее поведение, в результате чего будет наконец решена извечная проблема, когда программист занимается ещё и внешним видом приложения, потому, как дизайнерам слишком сложно было вникнуть в программирование.
                              Хотите прикоснуться?
                            • Особенности настройки git под windows

                                Проблемы с русскими символами в git

                                Когда вы начнете работать с версией git под windows в командной строке, вы столкнётесь со следующей проблемой — все сообщения git, в которых фигурируют русские символы будут нечитаемы. Имена файлов, на русском языке, будут выглядеть так — "\362\345\361\362", а тексты коммитов примерно так — <C8><ED><E8><F6><E8><E0><EB><E8><E7><E0><F6><E8><FF> <EF><F0><EE><E5><EA><F2><E0>. Т.е. исходная строка преобразуется в utf8 в соответствии с кодировкой latin1.

                                далее...
                              • Делаем правильную платформу или Как повторить Google

                                  Введение
                                  Сегодня я расскажу о проектировании высоко-нагруженных отказоустойчивых систем. Акцент будет поставлен практическую разработку и жареные факты, а не на сухую теорию. После прочтения вы не испугаетесь разработки сервиса с миллиардом пользователей, если у вас будет достаточное количество серверов. Тема весьма обширна, но я постараюсь быть кратким и лаконичным.
                                  Читать дальше →
                                • MongoDB или как разлюбить SQL

                                    Введение

                                    Коллеги, при разработке приложений, мы каждый день сталкиваемся с потребностью в гибком хранении информации (обновлении, поиске по ней, и т.д.). Класс продуктов, которые решают этот круг задач, как все мы знаем — Базы данных. Но что это такое в нашем понимании? У многих «база данных» твердо ассоциируется с MySQL, таблицами и SQL-запросами. И это устраивает до определенного момента. Действительно, реляционные базы данных дают массу преимуществ в работе: поскольку данные имеют сильную связанность, не нужно контролировать целостность базы данных. Используя простой под-запрос можно выбрать количество комментариев к каждому посту в блоге. Используя JOIN нетрудно делать сложные связанные выборки и получать данные сразу о нескольких сущностях.
                                    Читать дальше →
                                  • PHP-AMQP Что нового у Друзей?

                                      При построении социальной сети по типу шардинга встает проблема обмена данными между шардами. Традиционная репликация в данном случае не подходит по разным причинам. Тема шардинга — это отельная большая тема и не является предметом данной статьи.
                                      В данной архитектуре для реализации «ленты Друзей» или «Новостной ленты» лучше использовать сервер очередей используя систему: Подписка-Уведомление. В качестве брокера обмена предлагается использовать сервер очередей RabbitMQ, реализующий протокол AMQP, который был выбран по причине хорошей масштабируемости. Серверная часть реализована на PHP, используя расширение php-rabbit (описание АПИ).
                                      Читать дальше →