• Автодокументация PHP в NetBeans 7.01 с использованием phpDocumentor, рассказываем, настраиваем, исправляем

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

      Итак вы узнаете:
      • Базовую информацию о том, что такое автодокументация и как она делается в PHP
      • Настройка генератора документации phpDocumentor в NetBeans 7.01
      • Ссылка на исправленную мной библиотеку phpDocumentor со списком внесенных изменений, думаю некоторым может сразу же понадобиться
      • Ссылки на почитать

      На проекте столкнулся с тем, что потребовалось создать нормальную документацию. Писать отдельно документацию не самый лучший способ, базовое описание библиотеки можно выполнить и в стиле автодокументации. Начал разбираться в вопросе и о чудо, в NetBeans 7.01 оказывается поддерживается PHPDoc, вполне достойно и удобно. Был удивлен бедностью информации по этой тематике в русском сегменте сети. Кроме того, я нашел несколько подводных камней, которые создавали проблемы при настройке под Windows.

      Если заинтересовались, то добро пожаловать под кат
      Читать дальше →
    • Настольные игры: во что играют в IT-офисах?

        В этом топике — обещанный обзор разных настольных игр.

        — Первая часть — это «портированные» версии известных компьютерных (по сюжету Starcraft, Warcraft, Civilization, Age of Empires, Master of Orion, Doom)
        — Вторая часть — игры, которые интересны многим хабражителям, судя по комментариям к прошлым топикам.
        — В комментариях предлагаю делиться информацией об интересных играх: думаю, многие смогут подсказать нечто необычное в плане поиграть или же предупредить от напрасной покупки.
        — Топик будет интересен тем, кто хочет понять, что популярно на рынке, вкратце посмотреть товар для магазина и тем, кому просто интересно, что же там вообще есть из настольных игр для себя, компании или в подарок.
        — В конце есть приятный бонус хабрачитателям.

        Читать дальше →
      • Hg Init: Часть 1. Переобучение для пользователей Subversion

        • Перевод
        Hg Init: Учебное пособие по Mercurial.


        Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

        Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

        Часть 1. Переобучение для пользователей Subversion


        В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

        Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

        Читать дальше →
      • Visual PHP для Windows

        На сегодняшний день язык PHP широко распространён, он прост в освоении и понимании, и наверное поэтому он так популярен у начинающих программистов. Без знаний PHP не поправить блок голосования на сайте, не отредактировать PHP шаблон, не вставить рекламный баннер. Многие идут дальше и изучают язык более углубленно, ведь это не только интересно, но и приносит стабильный доход, благо разнообразных предложений для PHP программистов всегда в избытке.

        Но что делать, если хочется чего-то большего? Если надоело писать однотипные классы для онлайн-казино, ковыряться в Joomla/Drupal/PHPBB очередного заказчика?
        Читать дальше →
      • Основы MPI для «чайников»

        Так вышло, что мне пришлось тесно столкнуться с изучением параллельных вычислений и в частности MPI. Пожалуй, направление это на сегодняшний день является весьма перспективным, так что хотелось бы показать хабраюзерам основы этого процесса.

        Основные принципы и пример

        В качестве примера будет использоваться расчет экспоненты (e). Один из вариантов ее нахождения — ряд Тейлора:
        e^x=∑((x^n)/n!), где суммирование происходит от n=0 до бесконечности.

        Данная формула легко поддается распараллеливанию, так как искомое число является суммой отдельных слагаемых и благодаря этому каждый отдельный процессор может заняться вычислением отдельных слагаемых.
        Читать дальше →
      • Онлайн проектная среда: постановка проблемы

        image

        Введение



        Восемь лет назад у меня была идея открыть сеть ресторанов быстрого здорового питания в городе Красноярске. Я достаточно долго проработал в сфере общепита, начиная от официанта, бармена, повара до помощника директора + было неплохое видение будущего бизнеса. При этом отсутствовали всего лишь знания и опыт в области предпринимательства и необходимые денежные средства. Мелочь :-) Но я был полон энтузиазма и намерения воплотить задуманное.
        Читать дальше →
      • Silex — микрофреймворк от создателей Symfony2

          Почти год назад я опубликовал статью о микрофреймворке под названием 'fat-free', написанном на PHP. Тогда этот фреймворк и сама статья вызвали некоторый интерес, поэтому я решил сделать обзор еще одного PHP микрофреймворка в стиле популярного Sinatra — Silex project.
          image
          Созданный в известной в РНР кругах Sensio Labs, не менее известным Fabien Potencier — автором одного из самых популярных на сегодня PHP фреймворков — Symfony, Silex является облегченной версией ожидаемого армией фанатов (к которым осмелюсь отнести и себя) Symfony2.

          Для своей работы Silex использует ключевые компоненты Symfony2 в связке с несложной реализацией шаблона проектирования “Внедрение зависимостей” в виде сервис-контейнера Pimple, который позволяет максимально просто отделить логические части кода друг от друга — сделать их независимыми.

          Как и у Symfony2 — у Silex интуитивно понятный API, что делает процесс разработки достаточно приятным и позволяет практически в несколько шагов добавлять свой функционал в сам фреймворк.
          Читать дальше →
        • Подборка 10 css3 кнопок

            С каждым днем новые стандарты css3 и html5 всё более глубоко входят в жизнь верстальщиков и web-разработчиков, а браузеры с каждым днем становятся все более совместимыми с этими стандартами.



            В связи с этим событием хотелось бы представить Вам подборку 10 css3 кнопок, которые смогут облегчить вам жизнь при верстке и создании web приложений.
            Читать дальше →
          • Собираем данные с помощью Scrapy

              Здесь уже проскакивали вскользь упоминания об этом фреймворке для сбора данных. Инструмент действительно мощный и заслуживает большего внимания. В этом обзоре я расскажу, как

              scrapy

              • создать паука, выполняющего GET запросы,
              • извлекать данные из HTML документа,
              • обрабатывать и экспортировать данные.





              Читать дальше →
            • PrestaShop 1.4 – новая версия платформы интернет-магазина

                image

                Вероятно многие знакомы с этой достаточно функциональной и удобной системой.
                На днях, а точнее говоря 16го марта, вышла новая версия.

                Было приятно прочитать вечером в твиттере:
                Here we are guys! PrestaShop v.1.4 Final is out, check it now!
                More info tomorrow ;-) Now we're gonna sleep a bit! -->


                А на следующий день, как и было обещано, выложен список основных изменений, перевод которого можно найти под катом.
                + скриншоты

                Читать дальше →
              • Обзор jQuery-плагинов для стилизации селектов

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

                  Не секрет, что стандартные селекты имеют крайне слабый уровень стилизации средствами CSS. В каком-то браузере они чуть лучше, в каком-то чуть хуже, но общая картина складывается весьма грустной. Как обычно, там, где не справляется чистый HTML+CSS, на помощь приходит jQuery.

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

                  Стандартный select



                  Достоинства:
                  • работает на всех устройствах, в том числе на мобильных телефонах
                  • автоматически подстраивает ширину
                  • без проблем контролируется с помощью jQuery
                  • открывается всегда на видимую часть страницы (так называемое «умное позиционирование»)
                  • сам определяет оптимальную высоту для выпадающего списка
                  • позволяет группировать опции
                  • позволяет выделять сразу несколько пунктов (если, конечно, прописать необходимые атрибуты)
                  • реагирует на переход Tab'ом
                  • имеет подбор по первой букве
                  • поддерживает скролл колёсиком мышки
                  Недостатки:
                  • выглядят во всех браузерах по разному
                  • не имеет возможности быть нормально стилизованным
                  Посмотрим что же могут остальные
                • Экспорт событий из email в Google-календарь в один клик — подводные камни

                    image

                    Как одну из возможностей сервиса предварительной записи клиентов zabroniruy.com реализовывали идею, чтобы клиент получал всю информацию о предстоящих события в формате, который можно легко экспортировать (желательно в один клик) в существующие планировщики задач. В ходе работы столкнулись с тем, что не все планировщики одинаково “дружелюбны” к разработчикам.
                    Читать дальше →
                  • 12 навыков создания защищенных веб-приложений

                      Данная статья не содержит никаких откровений. В первую очередь информация о типовых уязвимостях и методах их решения будет полезна начинающим. Опытные разработчики все это знают, или должны знать, если считают себя таковыми.

                      Большинство примеров кода не привязаны к какому-либо конкретному языку программирования, но для наглядности я буду использовать PHP.

                      Итак, поехали.

                      Читать дальше →
                    • Smthngs (thn.gs) — todo веб-сервис как десктопное приложение

                        Странное дело, порой кажется что каждый месяц появляется не меньше дюжины новых GTD-like таск-менеджеров. Одновременно с этим, хороших приложений для эффективного управления повседневными задачами крайне мало. Думаю, редкий читатель нашел для себя подходящий инструмент и пользуется им повседневно.
                        Мы не из ленивых, и как вы уже догадались, тоже сделали свой, с… всем что полагается.
                        Ниже я расскажу о нашей парадигме и особенностях, которые выгодно отличают нас от конкурентов. Т.к. многие уже устали от обилия постов о личной продуктивности на Хабре, в своем рассказе я сделаю упор на веб-технологии, а не на gtd-методологию. А пока картинка для привлечения внимания:
                        image
                        Читать дальше →
                      • Сборник советов и фактов по оптимизации PHP-скриптов

                          image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
                          Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
                          В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
                          Читать дальше →
                        • Входите! Вход без логина и пароля

                            Кто виноват?


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

                            Вот некоторые примеры таких ситуаций:
                            • Ссылка на активацию аккаунта только что зарегистрированным пользователем.
                            • Ссылка на восстановление пароля.
                            • Приглашение (возвращение) на сайт пользователя, который давно не заходил.

                            В каждом из этих случаев нам нужно создать для пользователя некий ключ и добавить его в URL, отправленный в письме.
                            Читать дальше →
                          • Умный экспорт из SVN при помощи TortoiseSVN

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