• Проект на PHP как локальное приложение

      Многим известен проект Denwer — быстрое разворачивание связки Apache, PHP и MySQL.
      Однако у этого комплекта в применение к определенным задачам есть свои недостатки. В частности, некоторая сложность запуска и использование проектом для обычного пользователя, у тетенек и дяденек, которые компьютер используют постольку-поскольку и многие очевидные вещи для них темный лес. Следующий недостаток — это не работоспособность данного комплекта с CD.

      Недавно нашел вот такую модификацию — Wapache это программа, которая позволяет создавать настольные приложения с использованием технологий веб-разработки. Она сочетает в себе модифицированную версию Apache 2 со встроенным интернет браузером Explorer. Wapache также позволяет управлять различными настройками браузера, такие как размер окна и наличие Javascript.

      Какие плюсы программы:

      * У встроенного IE нет меню, панели инструментов и панели адреса.
      * Работа с системным треем.
      * Работа со стандартным mod_php.
      * И многое другое

      Для реализации автономного хранения можно использовать SQLITE, хотя подключение к серверу MySQL никто не отменял.

      Какие вам видятся дополнительные дополнительные применения подобного приложения?

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

      А вообще советую скачать и попробовать — никаких дополнительных усилий не требуется, разархивировать и запустить wapache.exe

      image
      image
    • Автоматизированный приём webmoney платежей на вашем сайте.

        0. Вступление

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

        Я бы хотел рассказать вам несколько способов, как можно устроить приём оплаты за какие либо товары или услуги на вашем сайте электронной валютой webmoney. Это, кстати, не так сложно, как могло бы показаться на первый взгляд!
        Читать дальше →
      • Сайт про браузеры от Яндекса и как можно его использовать

          Привет хабражители! Странно что замечательный небольшой ресурс Яндекс.Браузеры до сих пор никак у нас не упомянут, даже в комментариях. А ведь он может пригодиться не только простым обывателям, но и разработчикам сайтов.



          На хабре уже не раз поднималась тема о том, что делать с заскорузлыми пользователями IE6. Кто-то старательно оптимизирует под них верстку и ничем себя не выдает, кто-то делает то же самое но еще и выдает грозные окошки о устаревшем браузере. А кто-то просто автоматически редиректит их на разнообразные странички, объясняющие весь ужас ситуации, со ссылками на современные альтернативы в виде Оперы, Фаерфокса и Хрома.

          Я на последних своих проектах все больше симпатизирую последней из перечисленных групп. И проект Яндекса стал той самой дорогой, по которой мои посетители идут в «светлое будущее».

          Почему сделан такой выбор?
        • Нечёткий поиск в тексте и словаре

            Введение


            Алгоритмы нечеткого поиска (также известного как поиск по сходству или fuzzy string search) являются основой систем проверки орфографии и полноценных поисковых систем вроде Google или Yandex. Например, такие алгоритмы используются для функций наподобие «Возможно вы имели в виду …» в тех же поисковых системах.

            В этой обзорной статье я рассмотрю следующие понятия, методы и алгоритмы:
            • Расстояние Левенштейна
            • Расстояние Дамерау-Левенштейна
            • Алгоритм Bitap с модификациями от Wu и Manber
            • Алгоритм расширения выборки
            • Метод N-грамм
            • Хеширование по сигнатуре
            • BK-деревья
            А также проведу сравнительное тестирование качества и производительности алгоритмов.
            Читать дальше →
          • Имена людей и интерфейс

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

              image

              Заинтересованная аудитория: авторы HTML-контента, разработчики скриптов серверных приложений (PHP, JSP и т.д.), менеджеры веб-проектов и любые другие люди, так или иначе связанные с дизайном форм ввода данных, дизайна баз данных и онтологий, которые затрагивают личные имена людей.

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

              Читать дальше →
            • Vim как IDE для веб-разработки, и не только.

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

                Рассмотрена настройка через конфигурационный файл vimrc и приведены ссылки на статьи с описанием отдельных моментов.

                Кого-то VIM оттолкнет, показавшись поначалу слишком сложным или неудобным. Однако не стоит недооценивать его гибкость и возможность настройки себя, ведь из VIM можно буквально вылепить идеальный редактор/IDE, таким, каким вы представляете его себе.

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

                Я постарался писать как можно компактней, но без потери содержательной части, но статья все-равно вышла довольно объемной. Материал логически разбит на несколько разделов и совсем не обязательно читать его по порядку. Тем не менее, прочитать сведения по установке плагинов и настройке vimrc я рекомендую настоятельно.


                Читать дальше →
              • Page Visibility API и Visibility.js

                  Кот Шрёдингера

                  Page Visibility API — новое API в JavaScript, которое позволяет узнать, видит ли пользователь ваш сайт или же он, например, открыл другой таб.

                  Каким образом это API может сделать наш Веб дружелюбнее и уютнее? Ну самое очевидное:
                  • Сделать сайт более дружелюбным к пользователю, «поднять юзабилити». Например, отключать слайдшоу или ставить видео на паузу, когда вы переключаетесь в другой таб (например, вы смотрите видео на YouTube и вам приходит срочное эл. письмо).
                  • Не потреблять лишних ресурсов. Выключать лишнюю логику, когда она не нужна, так как пользователь не видит сайт. Например, в фоновом табе отключать сложные JS-рассчёты или реже проверять новые сообщения по AJAX.
                  • Считать более точную статистику. Например, не засчитывать пользователей, которые открыли ваш сайт в новом табе и закрыли его не просматривая.
                  • Поддерживать новую технологию пререндеринга из Google Chrome, когда браузеру заранее загружает и рендерит указанную страницу, чтобы открыть её мгновенно. Например, в поиске Google первый результат выдачи будет отмечен на прередеринг.
                  • Сделать эмулятор кота Шрёдингера (на иллюстрации), который отобразит живого или мёртвого кота только тогда, когда пользователь откроет загруженный в фоне таб.

                  Чтобы сделать работу с Page Visibility API более удобной, я (во славу Злых марсиан) разработал библиотеку Visibility.js. Она позволяет забыть о вендорных префиксах и добавляет «сахара» высокоуровневых функций, чтобы писать короткий чистый код (например, Visibility.every — аналог setInterval, но работает только, если сайт в открытом табе).

                  Милый пример видео-проигрывателя, который останавливает видео, когда страница становится невидимой (открывать в Google Chrome 13).
                  Читать дальше →
                • CSS хаки

                  Браузеры и стандарты. Вечная погоня. Из-за несоответствий стандартам, из-за разных способов рендеринга страниц большая часть времени веб-дизайнера уходит на то, чтобы загладить эти несоответствия (использовать хаки). В итоге, вместо эффективной работы, дизайнер вступает в противоестественные отношения с браузерами, теряя драгоценное время.
                  Читать дальше →
                • NetworkX для удобной работы с сетевыми структурами


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



                      Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

                      В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

                      В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
                      Читать дальше →
                      • +148
                      • 1134k
                      • 51
                    • Визуализация аудио в HTML5

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



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

                        Визуализация аудио, точнее принципиальный низкоуровневый доступ к аудио-информации, находится где-то между черновыми набросками и заметками на будущее.
                        Читать дальше →
                      • Изображения без width/height

                          Хорошим тоном считается всегда указывать для изображений, которые мы используем на странице, их длину и ширину. Часто такие картинки, если мы не укажем их размеры, могут во время загрузки раскачивать нашу верстку.
                          Чтобы во время разработки было более наглядно, где мы пропустили картинки без указания размеров, ребята из 37Signals предложили небольшой, но чрезвычайно полезный сниппет:

                          img:not([width]):not([height]) {
                            border: 2px solid red !important;
                          }
                          

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

                          Оригинал статьи
                        • Написание сложных интерфейсов с Backbone.js

                            image

                            Backbone.js это каркас для создания RIA JavaScript приложений, его автором является Jeremy Ashkenas, создатель CoffeeScript, Backbone является частью компании Document Cloud ей же «принадлежит» Underscrore.js. Backbone — очень легкая библиотека, помогающая вам создавать интерфейсы. Она может работать с любыми библиотеками, к которым вы привыкли.
                            Backbone это набор классов, размером менее 4Кб, которые формируют структуру вашего кода и помогают создавать качественные MVC веб-приложения.
                            Backbone формирует структуру тяжелых JavaScript приложений, внесением моделей с key-value подобным хранилищем и своими событиями, коллекций с богатыми API, видов (ориг. views) с декларативной обработкой событий и соединяет все это в в одно приложение, поддерживающее RESTful JSON интерфейс.

                            Backbone не может работать без Underscore.js. Для поддержки REST API и работы с DOM элементами в Backbone.View настоятельно рекомендуется подключить json2.js и jQuery-подобную библиотеку: jQuery или Zepto

                            В статье будет рассмотрена структура Backbone.js, будет поэтапно создано простое Todo приложение.
                            Читать дальше →
                          • Избегаем распространенных ошибок в HTML5 разметке

                            • Translation
                            HTML5 Уважаемые хабровчане, представляю вам вольный перевод статьи Avoiding common HTML5 mistakes. Здесь мы рассмотрим частые ошибки в HTML5 разметке с точки зрения семантики, и как их избежать.
                            Читать дальше →
                          • Расширение Orchard CMS: создание контентных типов

                            • Translation
                            Это продолжение цикла статей на тему разработки собственных сайтов на базе системы управления контентом Orchard CMS. Первые статьи данного цикла вы можете найти по следующим ссылкам:В этой статье речь пойдет о расширении сайта на базе Orchard CMS через создание элементов контента известных как контентные типы.

                            Создание контентных типов


                            Хотя Orchard CMS уже включает в себя набор из нескольких контентных типов, таких как Страница (Page) и Запись Блога (Blog Post), вы можете легко создать собственный контентный тип (или даже расширить существующий тип) с помощью панели администрирования. По умолчанию, функция контентных типов в Orchard включена. Она должна быть включена для успешного создания собственных контентных типов. Если это требуется, вы можете активировать функцию на странице Modules в панели администрирования.

                            Читать дальше →
                            • +15
                            • 1.1k
                            • 3
                          • Семь смертных грехов программных систем, которых в 2011-м году стыдно не замечать

                              Я сам, как проектировщик интерфейсов и программист, с одной стороны вижу проблемы, а с другой понимаю, что одним мановением руки они не решаются, и во многих случаях у компромисса есть объективные причины. Но предлагаю не жевать сопли, а собрать волю в кулак и дружно шагать в светлое будущее. В конце концов, кто, если не мы?

                              Итак, грехи:
                              1. Медлительность
                              2. Блокирующее взаимодействие
                              3. Неуместные ограничения
                              4. Ненастроенность
                              5. Несамостоятельность
                              6. Забывчивость
                              7. Гордыня

                              Проблем, конечно, намного больше, но эти выбраны с учетом веяний моды и того, что постепенно уже осознает мейнстрим. Под катом подробнее:
                              Читать дальше →
                            • Семантика для CSS селекторов и комбинаторов

                              • Translation
                              Синтаксис CSS несложен, и для понимания его совсем не нужно иметь степень доктора в области IT. Однако, это один из немногих популярных языков, который не является логичным в самом прямом смысле этого слова. В отличие от других языков веб-программирования, таких как JavaScript и PHP, в CSS проблемы не решаются с помощью обычной логики. Алгоритмы типа «если X, то сделать Y, в противном случае сделать Z» или «выбрать все Y, затем сделать с ними X» не могут быть осуществлены в таком языке, как CSS. Проще говоря, это язык, созданный для оформления, язык для дизайнеров, а не девелоперов. Некоторые из опытных программистов, с которыми я работал, именно по этой причине тратили много усилий на то, чтобы освоить CSS.

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

                                В этой статье я расскажу об объекте jQuery.cssHooks, который по умолчанию содержится в jQuery. Расширение этого объекта позволяет добавлять новые свойства или значения, прописываемые в методе .css(), которые изначально не поддерживаются теми или иными браузерами. Возможно, для многих наличие CSS хуков не является новостью, но для меня это стало небольшим открытием.
                                Для тех, кому лень дальше читать, привожу основную мысль. Допустим, вы хотите в jQuery добавить CSS свойство chuck-norris:
                                $.cssHooks.chuckNorris = {
                                	get: function(elem) {
                                		//проводим манипуляции с узлом elem, получаем value
                                		return value;
                                	},
                                	set: function(elem, value) {
                                		//проводим манипуляции с узлом elem, устанавливаем value
                                	}
                                }
                                
                                $(el).css(‘chuck-norris’, Infinity);
                                //или $(el).css({‘chuck-norris’: Infinity});
                                alert($(el).css(‘chuck-norris’)); //Infinity
                                


                                Далее будет подробно описана «модификация» свойства background-color для поддержки rgba в старых версиях IE и добавление нового, несуществующего в спецификации свойства background-alpha для удобной установки прозрачности фонового цвета. В IE прозрачность цвета будет реализована с помощью использования свойства filter, добавляя элементу градиент, состоящий из двух одинаковых цветов.
                                Читать дальше →
                              • Свойства CSS, влияющие на рендеринг шрифта

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



                                Читать дальше →
                              • Прозрачное кэширование в nginx для всех и каждого

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

                                  С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.

                                  Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно защитить от резких всплесков посещаемости с помощью nginx с минимальными затратами сил и времени.

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